康佳 方賢進(jìn)
摘要:當(dāng)前計(jì)算機(jī)網(wǎng)絡(luò)安全課程已經(jīng)廣泛地開(kāi)設(shè)于計(jì)算機(jī)及信息安全等相關(guān)專(zhuān)業(yè),而防火墻技術(shù)又是計(jì)算機(jī)網(wǎng)絡(luò)安全課程的重要內(nèi)容之一。用專(zhuān)用硬件防火墻作為實(shí)驗(yàn)設(shè)備具有價(jià)格昂貴、內(nèi)部技術(shù)不透明的缺點(diǎn),因此本文設(shè)計(jì)一系列基于Linux操作系統(tǒng)開(kāi)放源代碼的防火墻技術(shù)實(shí)驗(yàn),這樣不僅可以降低教學(xué)實(shí)驗(yàn)成本,也能讓學(xué)生更清楚地了解各種防火墻技術(shù)及實(shí)現(xiàn),增強(qiáng)學(xué)生的專(zhuān)業(yè)實(shí)踐能力。
關(guān)鍵詞:計(jì)算機(jī)網(wǎng)絡(luò)安全;防火墻;實(shí)驗(yàn)設(shè)計(jì);開(kāi)放源代碼
中圖分類(lèi)號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2014)22-5187-02
防火墻技術(shù)作為一種重要的網(wǎng)絡(luò)安全技術(shù),已經(jīng)廣泛開(kāi)設(shè)于計(jì)算機(jī)網(wǎng)絡(luò)、計(jì)算機(jī)網(wǎng)絡(luò)安全技術(shù)、信息安全概論等課程中。但學(xué)習(xí)防火墻技術(shù)不僅僅是學(xué)習(xí)書(shū)本上空洞的理論和抽象的安全策略,要使學(xué)生真正掌握好該技術(shù),需要大量的實(shí)踐環(huán)節(jié)加以理解、掌握和應(yīng)用,提高學(xué)生的專(zhuān)業(yè)實(shí)踐能力。如果利用專(zhuān)用的防火墻硬件作為實(shí)驗(yàn)設(shè)備,不僅具有價(jià)格昂貴、內(nèi)部技術(shù)不透明的缺點(diǎn),而且不能真正地讓學(xué)生了解防火墻的體系結(jié)構(gòu)、原理及技術(shù),并加以靈活運(yùn)用。因此本文利用Linux OS下的開(kāi)放源代碼軟件IPtables及Squid,靈活地使用Linux主機(jī)實(shí)現(xiàn)各種防火墻技術(shù),設(shè)置了若干防火墻技術(shù)實(shí)驗(yàn)項(xiàng)目,給出了實(shí)驗(yàn)環(huán)境的搭建。
1 包過(guò)濾防火墻實(shí)驗(yàn)
包過(guò)濾防火墻[1]可以在網(wǎng)絡(luò)層或數(shù)據(jù)鏈路層截獲數(shù)據(jù),使用一些規(guī)則來(lái)確定是否轉(zhuǎn)發(fā)或丟棄各個(gè)數(shù)據(jù)包。該文中將以Linux OS下的IPtables軟件為例來(lái)說(shuō)明包過(guò)濾防火墻實(shí)驗(yàn)設(shè)計(jì),其實(shí)驗(yàn)環(huán)境搭建如圖1所示。
在該環(huán)境中只設(shè)置1臺(tái)Linux主機(jī)用于運(yùn)行IPtables防火墻,三臺(tái)Windows主機(jī)分別連接到防火墻主機(jī)的三塊網(wǎng)卡(NIC)上,用于模擬私有網(wǎng)絡(luò)、Internet區(qū)域和DMZ。為了滿足實(shí)驗(yàn)的要求,在這三臺(tái)Windows主機(jī)上需要安裝一些必要軟件如各種服務(wù)器軟件并加以配置使其正確運(yùn)行。在該實(shí)驗(yàn)環(huán)境中,設(shè)計(jì)滿足如下網(wǎng)絡(luò)安全要求的防火墻實(shí)驗(yàn)。
1) 允許網(wǎng)絡(luò)接口eth1、eth2相連接的LAN1和LAN2之間進(jìn)行相互通信。
2) LAN1和LAN2的任何主機(jī)可以使用internet中的任何服務(wù)(Web,E-mail,F(xiàn)tp等)。
3) 來(lái)自internet的主機(jī)不能訪問(wèn)1023以下的LAN1和LAN2中的內(nèi)部端口。
4) 拒絕從網(wǎng)絡(luò)接口eth0直接訪問(wèn)防火墻本機(jī)的ICMP數(shù)據(jù)包,但是允許相應(yīng)防火墻TCP請(qǐng)求的數(shù)據(jù)包進(jìn)入。
5) 允許internet中的主機(jī)訪問(wèn)LAN1中的DNS服務(wù)、WEB服務(wù)、FTP服務(wù),其它服務(wù)如telnet等禁止。
通過(guò)該實(shí)驗(yàn)可以使學(xué)生掌握防火墻包過(guò)濾技術(shù), IPtables的防火墻規(guī)則編寫(xiě)方法、IPtables中的表和鏈的概念、數(shù)據(jù)包控制方法,防火墻在網(wǎng)絡(luò)系統(tǒng)中的部署、安裝、配置和測(cè)試方法等,為以后真正利用防火墻解決網(wǎng)絡(luò)安全工程中的實(shí)際問(wèn)題奠定堅(jiān)實(shí)的基礎(chǔ)。
2 網(wǎng)絡(luò)地址翻譯NAT實(shí)驗(yàn)
網(wǎng)絡(luò)地址翻譯(NAT)[2]也是一種重要的防火墻技術(shù),它隱藏了內(nèi)部的網(wǎng)絡(luò)結(jié)構(gòu),外部攻擊者無(wú)法確定內(nèi)部網(wǎng)絡(luò)的連接狀態(tài)。通過(guò)設(shè)置規(guī)則,在不同的時(shí)候,內(nèi)部網(wǎng)絡(luò)向外連接使用的地址都可以不同,給外部攻擊者造成了困難。同樣NAT通過(guò)定義各種映射規(guī)則,可以屏蔽外部的連接請(qǐng)求,并可以將外部連接請(qǐng)求映射到不同的主機(jī)上。NAT實(shí)驗(yàn)環(huán)境如圖2所示,可以設(shè)計(jì)如下實(shí)驗(yàn)。
1) 利用NAT進(jìn)行IP地址偽裝
將向外部網(wǎng)絡(luò)上提供服務(wù)的服務(wù)器在物理上放置于私用網(wǎng)絡(luò)中,假如私用網(wǎng)絡(luò)中的一臺(tái)服務(wù)器的IP地址為192.168.1.3/24,如果要對(duì)外部網(wǎng)絡(luò)提供Web服務(wù),就可以利用IPtables進(jìn)行IP地址偽裝,當(dāng)外部網(wǎng)絡(luò)中的主機(jī)對(duì)210.45.144.254進(jìn)行Web請(qǐng)求時(shí),該防火墻就轉(zhuǎn)向私用網(wǎng)絡(luò)中的192.168.1.3的服務(wù)器進(jìn)行Web請(qǐng)求??梢允褂孟旅娴腎Ptables規(guī)則加以實(shí)現(xiàn)。
#IPtables -t nat -A PREROUTING -p tcp -d 210.45.144.254 —dport 80 -j DNAT —to-destination 192.168.1.3
2) 使用NAT代理訪問(wèn)外部服務(wù)
使私有網(wǎng)絡(luò)中的主機(jī)通過(guò)NAT代理訪問(wèn)外部網(wǎng)絡(luò)中的服務(wù),可以使用下面的IPtables規(guī)則加以實(shí)現(xiàn)。
3 應(yīng)用層代理服務(wù)器防火墻實(shí)驗(yàn)
代理服務(wù)器防火墻[3] 通過(guò)一種代理(Proxy)技術(shù)參與到一個(gè)TCP連接的全過(guò)程。從內(nèi)部發(fā)出的數(shù)據(jù)包經(jīng)過(guò)這樣的防火墻處理后,就好像是源于防火墻外部網(wǎng)卡一樣,從而可以達(dá)到隱藏內(nèi)部網(wǎng)結(jié)構(gòu)的作用。這種類(lèi)型的防火墻被網(wǎng)絡(luò)安全專(zhuān)家和媒體公認(rèn)為是最安全的防火墻。它的核心技術(shù)就是代理服務(wù)器技術(shù)。
代理服務(wù)器可以用于禁止防問(wèn)特定的網(wǎng)絡(luò)服務(wù),而允許其他服務(wù)的使用,通過(guò)防火墻服務(wù)器的通信信息,可以提供源于部分傳輸層,全部應(yīng)用層和部分會(huì)話層的信息。另外還有識(shí)別并實(shí)施高層的協(xié)議,如http和ftp等的優(yōu)點(diǎn)。
本實(shí)驗(yàn)項(xiàng)目擬用Squid代理服務(wù)器[4]實(shí)現(xiàn)高速Web代理,并且實(shí)現(xiàn)代理認(rèn)證以及流量計(jì)費(fèi)系統(tǒng)。圖3是實(shí)現(xiàn)該實(shí)驗(yàn)項(xiàng)目的平臺(tái)。
在以上的實(shí)驗(yàn)環(huán)境中,設(shè)計(jì)滿足如下要求的實(shí)驗(yàn):
1) 限制內(nèi)網(wǎng)某些IP使用代理服務(wù)器,例如要使用地址范圍10.10.43.1到10.10.43.254的主機(jī)允許訪問(wèn)Squid代理服務(wù)器可使用下面的方法定義acl。
一旦定義地址范圍以后就可以用帶allow動(dòng)作的http_access命令把a(bǔ)llowed_hosts指定為aacl進(jìn)行下面的定義。
2) 實(shí)現(xiàn)代理認(rèn)證,指定認(rèn)證程序,并且指定代理認(rèn)證的身份認(rèn)證口令文件為/usr/local/squid/etc/passwd。
3) 實(shí)現(xiàn)Squid代理服務(wù)器訪問(wèn)報(bào)告生成器。Squid代理服務(wù)器訪問(wèn)統(tǒng)計(jì)系統(tǒng)可以利用Sarg軟件加以實(shí)現(xiàn),該軟件可以從http://sarg.sourceforge.net/sarg.php下載sarg-2.3.1.tar.gz源代碼軟件包。該軟件通過(guò)訪問(wèn)Squid的日志文件access.log實(shí)現(xiàn)用戶訪問(wèn)情況統(tǒng)計(jì)、站點(diǎn)訪問(wèn)統(tǒng)計(jì)、拒絕訪問(wèn)統(tǒng)計(jì)、認(rèn)證失敗統(tǒng)計(jì)、訪問(wèn)流量統(tǒng)計(jì)、訪問(wèn)時(shí)間統(tǒng)計(jì)等各種信息統(tǒng)計(jì)。
4 結(jié)論
本文利用Linux OS下的IPtables、Squid以及其它開(kāi)放源代碼軟件,靈活地使用Linux主機(jī)實(shí)現(xiàn)各種防火墻技術(shù),包括使用IPtables實(shí)現(xiàn)包過(guò)濾防火墻、NAT代理、IP地址偽裝、Squid代理服務(wù)器、代理認(rèn)證、代理服務(wù)訪問(wèn)統(tǒng)計(jì)系統(tǒng)等,設(shè)置了若干防火墻技術(shù)實(shí)驗(yàn)項(xiàng)目,給出了實(shí)驗(yàn)環(huán)境的搭建。在節(jié)約實(shí)驗(yàn)設(shè)備硬件投資的情況下,使學(xué)生更深入地掌握防火墻原理、技術(shù)及實(shí)現(xiàn),并提高學(xué)生的專(zhuān)業(yè)實(shí)踐能力。
參考文獻(xiàn):
[1] 葉惠卿. 基于Linux iptables防火墻規(guī)則生成的研究與實(shí)現(xiàn)[D].廣州:中山大學(xué),2010.
[2] 崔建, 錢(qián)杰, 張蓓. 校園網(wǎng)中代理服務(wù)器和NAT設(shè)備的監(jiān)控與防范[J]. 大連理工大學(xué)學(xué)報(bào),2005,45(z1):s91-s94.
[3] 陳錦繁, 張凡, 楊文玲, 鄧冠初. 基于代理的校園網(wǎng)計(jì)費(fèi)管理系統(tǒng)[J]. 中山大學(xué)學(xué)報(bào)(自然科學(xué)版), 2002,41(z1):13-15.
[4] 張秀嶺, 萬(wàn)旻, 駱建彬, 鄧憲. Linux下基于Squid的多能代理系統(tǒng)與透明網(wǎng)關(guān)解決方案[J]. 微計(jì)算機(jī)應(yīng)用, 2004,25(5):534-539.