Linux下的防火墻(firewall)從誕生到現(xiàn)在,防火墻主要經(jīng)歷了四個(gè)發(fā)展階段:第一階段:基于路由器的防火墻;第二階段用戶化的防火墻工具套;第三階段:建立在通用操作系統(tǒng)上的防火墻;第四階段:具有安全操作系統(tǒng)的防火墻。目前世界上大多數(shù)防火墻供應(yīng)商提供的都是具有安全操作系統(tǒng)的軟硬件結(jié)合的防火墻,象著名的NETEYE、NETSCREEN、TALENTIT等。在Linux操作系統(tǒng)上的防火墻軟件也很多,有些是商用版本的防火墻,有的則是完全免費(fèi)和公開(kāi)源代碼的防火墻。大多數(shù)Linux教程都提到了如何在Linux平臺(tái)中使用IPCHAINS來(lái)構(gòu)筑防火墻。設(shè)置和管理Linux操作系統(tǒng)中的防火墻是網(wǎng)絡(luò)系統(tǒng)管理員的重要工作。
有沒(méi)有能隨身攜帶的,使用方便的Linux防火墻呢?答案是有的,現(xiàn)在我就向大家介紹一種能裝在普通軟盤(pán)里面的Linux防火墻。這套名字叫floppyfw的Linux防火墻能存放在一張普通的軟盤(pán)里,并獨(dú)立的在RAM內(nèi)存中運(yùn)行。使用它能啟動(dòng)計(jì)算機(jī),利用ipchains過(guò)濾掉無(wú)用的IP包,還可以使用它來(lái)配置IP偽裝(IP masquerade),監(jiān)視端口,通過(guò)它可以使用主機(jī)對(duì)其他網(wǎng)絡(luò)中的計(jì)算機(jī)進(jìn)行遠(yuǎn)程控制。Floppyfw功能十分強(qiáng)大,但是它運(yùn)行所需要的硬件環(huán)境卻非常低,除了需要一張軟盤(pán)之外,只要8MB的內(nèi)存就足夠了。
Floppyfw需要的最的硬件設(shè)備如下: 最少8MB內(nèi)存3.5"軟驅(qū)顯示卡鍵盤(pán)顯示器
有的Linux系統(tǒng)中裝兩塊網(wǎng)卡,能使得Floppyfw正常工作,這就需要每一塊網(wǎng)卡的IRQ和內(nèi)存地址都正確無(wú)誤。在Linux系統(tǒng)中配置雙網(wǎng)卡相信很多系統(tǒng)管理員都是輕車熟路的。
Floppyfw支持以下的網(wǎng)卡。 3Com 3c509 NE2000 compatibles Tulip-based Intel EtherExpress PCI
關(guān)于軟件:
把Floppyfw做成一張可以引導(dǎo)的軟磁盤(pán)是一件非常簡(jiǎn)單的事情。不過(guò)你要首先到 把Floppyfw下載到計(jì)算機(jī)的硬盤(pán)上。Floppyfw最新的版本應(yīng)該是1.0.5或者更高,F(xiàn)loppyfw是一個(gè)鏡像文件,可以使用 # dd if=floppyfw-1.0.5.img of=http://www.3lian.com/dev/fd0 bs=72k
這個(gè)命令把鏡像文件解壓并寫(xiě)到準(zhǔn)備好的軟盤(pán)上。
關(guān)于設(shè)置:
需要注意的是,一般的軟盤(pán)格式化以后都是DOS(FAT)的格式。為了能順利的啟動(dòng)Linux系統(tǒng),我們需要在這張軟盤(pán)上作一些修改。建議使用其他的計(jì)算機(jī)來(lái)修改這張軟盤(pán),如果在Linux系統(tǒng)中使用MTOOLS工具修改則更好。
使用命令如下: $ cd /tmp$ mcopy a:config$ vi config$ mcopy config a:
如果你使用的是其他的操作系統(tǒng),我想在WINDOWS中可以使用記事本進(jìn)行修改。在軟盤(pán)中,我們可以看到floppyfw一共有5個(gè)文件: config (主配置文件) firewall.ini (過(guò)濾規(guī)則) modules.lst (附加的 ip_masq 模塊) sysLinux.cfg (內(nèi)核啟動(dòng)參量) syslog.cfg (syslog 配置, 例如/etc/syslog.conf)
在一般情況下,我們不需要修改sysLinux.cfg或者modules.lst文件。我們主要的任務(wù)就是要修改config這個(gè)文件。為了簡(jiǎn)單明了的說(shuō)明問(wèn)題,我在這里不想過(guò)多的解釋config這個(gè)文件里面的具體的配置清單,只是著重說(shuō)明config文件末尾幾個(gè)重要的事項(xiàng)。
在(/bin/ash) 找到"OPEN_SHELL controls shell"這行文字,如果您的計(jì)算機(jī)的內(nèi)存少于12MB,把ONLY_8M設(shè)置成"Y"。USE_SYSLOG能測(cè)定系統(tǒng)中syslogd是否運(yùn)行,而 SYSLOG_FLAGS則是判斷syslogd啟動(dòng)的標(biāo)志。用戶可以根據(jù)自己的實(shí)際情況進(jìn)行修改。
附錄:配置清單一,這是一個(gè)通過(guò)測(cè)試的標(biāo)準(zhǔn)配置清單。由于這個(gè)Linux系統(tǒng)中沒(méi)有提供DHCP服務(wù),使用的靜態(tài)的IP,所以僅供有相似服務(wù)的用戶提供參考。點(diǎn)擊這里下載清單一
關(guān)于過(guò)濾規(guī)則:
現(xiàn)在,讓我們?cè)賮?lái)看看firewall.ini文件。沒(méi)有修改之前的floppyfw 的firewall.ini文件默認(rèn)設(shè)置了靜態(tài)的IP偽裝和拒絕一些固定端口的訪問(wèn)。因?yàn)槲覀冃枰⒆约旱姆阑饓Γ晕覀冃枰獙?duì) firewall.ini文件進(jìn)行修改。我們需要全面的設(shè)置過(guò)濾規(guī)則,關(guān)閉一些我們認(rèn)為存在前在危險(xiǎn)的端口。
在這里因?yàn)槠年P(guān)系我就不再講解如何設(shè)置ipchains。如果您想知道更詳細(xì)的ipchains的配置方案和具體使用方法,推薦您參考以下的這個(gè)國(guó)外的Linux防火墻ipchains配置方案。
Firewall.ini 的過(guò)濾規(guī)則的具體設(shè)置可以參考配置清單二(ftp: //ftp.mfi.com/pub/sysadmin/2001/jan2001.tar.z),這是一個(gè)已經(jīng)修改好了的配置。如果你對(duì)Linux的防火墻不太熟悉,那么可以直接下載這個(gè)配置清單來(lái)進(jìn)行參考或者直接使用。
清單二可以提供最基本的DNS, SMTP, POP, NNTP, TELNET, SSH, FTP, HTTP, 和 WHOIS服務(wù),一般的客戶端計(jì)算機(jī)都可以通過(guò)安全的端口訪問(wèn)網(wǎng)絡(luò)和使用以上的服務(wù)。關(guān)于LOG
一般的Linux系統(tǒng)中的LOG文件可不少,主要是記錄系統(tǒng)運(yùn)行中的一些主要參數(shù)和記錄。上面已經(jīng)說(shuō)過(guò)了,syslog.cfg就是一個(gè)管理和記錄LOG 的文件。Floppyfw能通過(guò)這個(gè)syslog.cfg文件記錄下Linux防火墻系統(tǒng)中的控制記錄,例如鍵盤(pán)錯(cuò)誤,顯示器沒(méi)有安裝等信息也被如是的記錄下來(lái)。這為今后系統(tǒng)管理員分析和解決系統(tǒng)問(wèn)題提供了有利的依據(jù)。syslog.cfg的設(shè)置也不難,首先把syslog.cfg設(shè)置成某臺(tái)計(jì)算機(jī)的主記錄文件。例如,在Red Hat系統(tǒng)中,通過(guò)編輯/etc/rc.d/init.d/syslog可以達(dá)到目的。如果這臺(tái)計(jì)算機(jī)的IP是192.168.1.2,那么在 syslog.cfg則要配置成一致的IP。具體的配置清單可以參考"清單三"(ftp: //ftp.mfi.com/pub/sysadmin/2001/jan2001.tar.z)
一旦你把前面三個(gè)主要的文件配置好了以后,那么你就可以通過(guò)這張軟盤(pán)啟動(dòng)Linux系統(tǒng)進(jìn)行測(cè)試了。
如果你在配置和測(cè)試防火墻中還遇到其他的問(wèn)題,可以參考以下網(wǎng)址: Floppyfw by Thomas Lundquist: Firewalls by Robert L. Ziegler:
最后,我在這里還要特別介紹一個(gè)也是相當(dāng)不錯(cuò)的Linux防火墻NetMAXFireWall。