程 偉
淮海戰(zhàn)役烈士紀(jì)念塔管理局,江蘇 徐州 221009
網(wǎng)絡(luò)防火墻是處于計(jì)算機(jī)和連接的網(wǎng)絡(luò)之間的軟件,其主要功能是對(duì)流經(jīng)它的網(wǎng)絡(luò)通信進(jìn)行掃描,過濾掉不安全服務(wù),控制非法用戶對(duì)指定站點(diǎn)的訪問、監(jiān)視Internet安全和預(yù)警的端點(diǎn)。傳統(tǒng)的防火墻主要有分包過濾、應(yīng)用級(jí)網(wǎng)關(guān)、代理服務(wù)器和狀態(tài)檢測(cè)型四種類型。
防火墻可以關(guān)閉不使用的端口,可以禁止特定端口的流出通信,還能拒絕對(duì)特定站點(diǎn)的訪問,防止入侵,防止互聯(lián)網(wǎng)外的病毒傳播到內(nèi)網(wǎng)、防止資源盜用等。
隨著網(wǎng)絡(luò)技術(shù)的高速發(fā)展和應(yīng)用的不斷增多,新一代防火墻應(yīng)運(yùn)而生。其特點(diǎn)是面向應(yīng)用層設(shè)計(jì),能夠識(shí)別用戶、應(yīng)用和內(nèi)容,具備全面的安全防護(hù)能力。能實(shí)現(xiàn)智能識(shí)別與控制,應(yīng)用內(nèi)容防護(hù)及應(yīng)用層高性能,提供萬兆級(jí)應(yīng)用層安全防護(hù)能力,在確保網(wǎng)絡(luò)安全的同時(shí),不讓網(wǎng)絡(luò)出現(xiàn)性能瓶頸。
Linux系統(tǒng)下實(shí)現(xiàn)軟件防火墻功能,是基于主機(jī)的網(wǎng)絡(luò)安全解決方案。我們可以利用合適的軟硬件平臺(tái)和防火墻設(shè)計(jì)搭建防火墻系統(tǒng)。此種設(shè)計(jì)需要提供對(duì)主機(jī)進(jìn)行安全保護(hù),即對(duì)主機(jī)與局域網(wǎng)以外的主機(jī)進(jìn)行數(shù)據(jù)傳輸時(shí)實(shí)施安全保護(hù),同時(shí)要提供良好的人機(jī)接口界面,具有易操作、易管理的特點(diǎn)。
基于Linux系統(tǒng)的個(gè)人防火墻系統(tǒng)一是要具備包過濾功能,通過檢查單個(gè)包的地址、協(xié)議、端口等信息來決定是否允許此數(shù)據(jù)包通過。二是網(wǎng)絡(luò)地址轉(zhuǎn)換能夠把內(nèi)部網(wǎng)絡(luò)的 IP 子網(wǎng)放置在一個(gè)或一組外部 IP 地址之后,把所有的請(qǐng)求都偽裝成來自一個(gè)地址。三是基于IP地址對(duì)通過防火墻各個(gè)網(wǎng)絡(luò)接口的流量進(jìn)行控制,利用用戶登錄來控制用戶的流量,防止某些應(yīng)用或用戶占用過多資源。
在TCP/IP網(wǎng)絡(luò)中,綁定特定端口后,可以持續(xù)監(jiān)聽該端口,一旦監(jiān)聽到符合條件的請(qǐng)求,可以同客戶端建立連接,進(jìn)行監(jiān)聽、檢查、評(píng)估、轉(zhuǎn)發(fā)、拒絕等動(dòng)作。
本設(shè)計(jì)方案防火墻設(shè)置方便易用,能夠?qū)崿F(xiàn)所有數(shù)據(jù)都必須通過防火墻,且只有合法數(shù)據(jù)可以通過防火墻功能,而防火墻本身又不受攻擊影響。
IPTABLES內(nèi)建于Linux內(nèi)核,是一種在系統(tǒng)之間拒絕、接受路由數(shù)據(jù)包的基本防火墻工具。IPTABLES構(gòu)建局域網(wǎng)防火墻是一種交互式應(yīng)用。在TCP/IP網(wǎng)絡(luò)中,把指定的規(guī)則綁定到指定端口后,后臺(tái)程序就持續(xù)監(jiān)聽,當(dāng)監(jiān)聽到符合條件的請(qǐng)求,該服務(wù)同客戶端建立一個(gè)連接響應(yīng)請(qǐng)求,并繼續(xù)監(jiān)聽。IPTABLES對(duì)內(nèi)網(wǎng)、外網(wǎng)請(qǐng)求都會(huì)進(jìn)行監(jiān)聽、檢查、評(píng)估、轉(zhuǎn)發(fā)、拒絕等反應(yīng)。
IPTABLES防火墻規(guī)則配置一是先允許所有的包進(jìn)入,再拒絕不符合要求的包通過。第二種更為安全的方法是先禁止所有的包,再按所需的服務(wù)允許特定的包通過防火墻。IPTABLES是通過對(duì)機(jī)器的ip地址作為標(biāo)志進(jìn)行管理的,所以首先要完成對(duì)局域網(wǎng)內(nèi)機(jī)器的ip地址分配。
用1臺(tái)裝有2塊網(wǎng)卡的計(jì)算機(jī)、1臺(tái)交換機(jī) 及2臺(tái)普通計(jì)算機(jī),組成一個(gè)局域網(wǎng)。系統(tǒng)為linux redhat 9.0 版,按照IPTABLES的規(guī)則配置,網(wǎng)卡內(nèi)網(wǎng)地址設(shè)置為192.168.0.1(eth0),外網(wǎng)地址設(shè)置為219.230.215.130(eth1)。
看上面的腳本init部分中的iptables -P INPUT DROP內(nèi)容是給防火墻設(shè)置默認(rèn)規(guī)則。當(dāng)進(jìn)入計(jì)算機(jī)的數(shù)據(jù)不匹配任何一個(gè)條件時(shí),就由默認(rèn)規(guī)則來處理這個(gè)數(shù)據(jù)丟棄,不給發(fā)送方任何應(yīng)答。如非法入侵者用namp工具對(duì)電腦進(jìn)行端口掃描,會(huì)提示計(jì)算機(jī)處于防火墻的保護(hù)之中。
將iptables -P INPUT DROP 去掉,在腳本的最后面加上如下內(nèi)容:
這樣非法入侵者雖然能掃描出所開放的端口,但很難知道機(jī)器處在防火墻的保護(hù)之中。如果你只運(yùn)行了ftp并且僅對(duì)局域網(wǎng)內(nèi)部進(jìn)行訪問, 非法入侵者很難知道你是否運(yùn)行了ftp。給不合法進(jìn)入的數(shù)據(jù)一個(gè)欺騙性的回答,而不是丟棄后就不再理會(huì)。
Linux構(gòu)造防火墻在實(shí)現(xiàn)給Linux服務(wù)器或者內(nèi)部LAN提供防火墻過程中,IPTABLES能夠?qū)崿F(xiàn)突出的過濾功能及靈活性,同時(shí)具備低成本優(yōu)勢(shì)。
[1][美]拉什著.Linux防火墻[M].陳健,譯.人民郵電出版社,2009-06-01.
[2][美]Bob Toxen.Linux安全:入侵防范、檢測(cè)、恢復(fù).機(jī)械工業(yè)出版社,2002,1.
[3]William R.Cheswick著.防火墻與因特網(wǎng)安全[M].戴宇坤,譯.機(jī)械工業(yè)出版社,2000,4.