蘇守寶, 王池社, 劉 鈺, 劉 晶
(金陵科技學(xué)院 計(jì)算機(jī)工程學(xué)院, 江蘇 南京 211169)
?
一種開(kāi)放源代碼的防火墻技術(shù)及其實(shí)驗(yàn)設(shè)計(jì)
蘇守寶, 王池社, 劉 鈺, 劉 晶
(金陵科技學(xué)院 計(jì)算機(jī)工程學(xué)院, 江蘇 南京 211169)
防火墻技術(shù)是計(jì)算機(jī)網(wǎng)絡(luò)安全領(lǐng)域的重要內(nèi)容之一。一些專用硬件防火墻作為實(shí)驗(yàn)設(shè)備具有價(jià)格昂貴、內(nèi)部技術(shù)不透明等缺點(diǎn)。文中利用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í)驗(yàn)設(shè)計(jì)。
計(jì)算機(jī)網(wǎng)絡(luò)安全; 防火墻; 實(shí)驗(yàn)設(shè)計(jì); 開(kāi)放源代碼
防火墻是指設(shè)置在不同網(wǎng)絡(luò)(如可信任的企業(yè)內(nèi)部網(wǎng)和不可信的公共網(wǎng))或網(wǎng)絡(luò)安全域之間的一系列部件的組合。防火墻技術(shù)作為一種重要的網(wǎng)絡(luò)安全技術(shù),已經(jīng)廣泛開(kāi)設(shè)于計(jì)算機(jī)網(wǎng)絡(luò)、計(jì)算機(jī)網(wǎng)絡(luò)安全技術(shù)、信息安全等課程中[1-3]。防火墻是不同網(wǎng)絡(luò)或網(wǎng)絡(luò)安全域之間信息的唯一出入口,通過(guò)監(jiān)測(cè)、限制、更改跨越防火墻的數(shù)據(jù)流,盡可能地對(duì)外部屏蔽網(wǎng)絡(luò)內(nèi)部的信息、結(jié)構(gòu)和運(yùn)行狀況,有選擇地接受外部訪問(wèn),對(duì)內(nèi)部強(qiáng)化設(shè)備監(jiān)管、控制對(duì)服務(wù)器與外部網(wǎng)絡(luò)的訪問(wèn),在被保護(hù)網(wǎng)絡(luò)和外部網(wǎng)絡(luò)之間架起一道屏障,以防止發(fā)生不可預(yù)測(cè)的、潛在的破壞性侵入,作為主機(jī)安全的攻擊方和防御方,病毒、木馬與安全軟件產(chǎn)品都在使用不同層次的rootkit技術(shù)進(jìn)行信息的竊取與防護(hù)[4-5]。通常有硬件防火墻和軟件防火墻,控制手段包括包過(guò)濾、狀態(tài)檢測(cè)、代理服務(wù)、地址翻譯技術(shù)等。夏躍偉等[6-7]針對(duì)網(wǎng)絡(luò)威脅類(lèi)型和攻擊手段設(shè)計(jì)了包過(guò)濾防火墻、屏蔽主機(jī)防火墻和屏蔽子網(wǎng)防火墻,利用IPtables實(shí)現(xiàn)了基本的防火墻策略及其規(guī)則生成系統(tǒng),康海燕等[8]設(shè)計(jì)并實(shí)現(xiàn)了一種基于rootkit的主動(dòng)防御監(jiān)控?cái)U(kuò)展框架,劉飛霞等[9-10]通過(guò)對(duì)WiMAX網(wǎng)絡(luò)產(chǎn)品的分析,Linux內(nèi)核中Netfilter/Iptables防火墻設(shè)置分析。肖淇等[11-12]對(duì)由基于規(guī)則的分段技術(shù)得到的片段進(jìn)行自定義的排序, 設(shè)計(jì)了一種基于MapReduce模型的防火墻策略規(guī)則沖突檢測(cè)算法。荀仲愷等[13]針對(duì)低特權(quán)級(jí)的虛擬域中防火墻容易受到攻擊的問(wèn)題,利用 SR-IOV 規(guī)范的高性能數(shù)據(jù)傳輸特性和對(duì)接收數(shù)據(jù)包的過(guò)濾功能,使虛擬域直接與真實(shí)網(wǎng)卡交互,提出一種高性能的虛擬機(jī)防火墻設(shè)計(jì)方案,通過(guò)在高特權(quán)級(jí)的Xen中部署監(jiān)控模塊,對(duì)虛擬域中的防火墻進(jìn)行實(shí)時(shí)監(jiān)控,以防止防火墻被非法訪問(wèn)和惡意篡改,保證防火墻的安全。
近年來(lái),移動(dòng)應(yīng)用、云安全及智能防火墻技術(shù)等也逐漸得到重視[8,11,14]。但學(xué)習(xí)防火墻技術(shù)不僅僅是學(xué)習(xí)書(shū)本上空洞的理論和抽象的安全策略,要使學(xué)生真正掌握好該技術(shù),需要大量的實(shí)踐環(huán)節(jié)加以理解、掌握和應(yīng)用,提高學(xué)生的專業(yè)實(shí)踐能力。如果利用專用的防火墻硬件作為實(shí)驗(yàn)設(shè)備,不僅具有價(jià)格昂貴、內(nèi)部技術(shù)不透明的缺點(diǎn),而且不能真正地讓學(xué)生了解防火墻的體系結(jié)構(gòu)、原理及技術(shù),并加以靈活運(yùn)用。由于Linux操作系統(tǒng)源代碼的開(kāi)放性,提供了一個(gè)防火墻框架Netfiher,使得Linux成為研究防火墻技術(shù)的一個(gè)很好平臺(tái)。因此本文利用Linux OS下的開(kāi)放源代碼軟件IPtables及Squid,靈活地使用Linux主機(jī)實(shí)現(xiàn)各種防火墻技術(shù),設(shè)置了若干防火墻技術(shù)實(shí)驗(yàn)項(xiàng)目,給出了實(shí)驗(yàn)環(huán)境的搭建。
包過(guò)濾防火墻[2,9]一般在路由器上實(shí)現(xiàn),用以過(guò)濾用戶定義的內(nèi)容,可以在網(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所示。
圖1 包過(guò)濾防火墻實(shí)驗(yàn)平臺(tái)的搭建
在該環(huán)境中只需要1臺(tái)用于運(yùn)行IPtables防火墻的Linux主機(jī),3臺(tái)Windows主機(jī)分別連接到防火墻主機(jī)的3塊網(wǎng)卡(NIC)上,分別用來(lái)模擬Internet區(qū)域、DMZ和私有網(wǎng)絡(luò)。為了滿足實(shí)驗(yàn)的要求,在這3臺(tái)Windows主機(jī)上必須安裝的一些軟件如各種服務(wù)器軟件并加以配置使其正確運(yùn)行。在該實(shí)驗(yàn)環(huán)境中,設(shè)計(jì)滿足如下網(wǎng)絡(luò)安全要求的防火墻實(shí)驗(yàn)要求:
(a) 允許網(wǎng)絡(luò)接口eth1、eth2相連接的LAN1和LAN2之間相互通信。
(b) LAN1和LAN2的任何主機(jī)可以使用internet中的任何服務(wù)(Web,E-mail,F(xiàn)tp等)。
(c) 來(lái)自internet的主機(jī)不能訪問(wèn)1023以下的LAN1和LAN2中的內(nèi)部端口。
(d) 拒絕全部從eth0進(jìn)入的ICMP通信。
(e) 允許internet中的主機(jī)訪問(wèn)LAN1中的DNS服務(wù)、WEB服務(wù)、FTP服務(wù),其它服務(wù)如telnet等禁止。
通過(guò)該實(shí)驗(yàn)不僅讓學(xué)生掌握通過(guò)防火墻實(shí)現(xiàn)包過(guò)濾,也可使學(xué)生掌握IPtables的防火墻規(guī)則編寫(xiě)方法、IPtables中的表和鏈的概念,防火墻在網(wǎng)絡(luò)系統(tǒng)中的部署、安裝、配置和測(cè)試方法等,為以后真正利用防火墻來(lái)保護(hù)網(wǎng)絡(luò)奠定堅(jiān)實(shí)的基礎(chǔ)。
網(wǎng)絡(luò)地址翻譯(NAT)[4,15]也是一種重要的防火墻技術(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)。
圖2 網(wǎng)絡(luò)地址翻譯NAT實(shí)驗(yàn)環(huá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)。
#IPtables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to 210.45.144.254
代理服務(wù)器防火墻[7,10]的原理是所有內(nèi)部主機(jī)的請(qǐng)求都發(fā)送到代理服務(wù)器,由代理服務(wù)器發(fā)送Internet請(qǐng)求,當(dāng)響應(yīng)的包達(dá)到時(shí),代理服務(wù)器將其發(fā)送到發(fā)出初始請(qǐng)求的內(nèi)部主機(jī)上。
使用應(yīng)用層防火墻即代理服務(wù)器是另一種創(chuàng)建網(wǎng)絡(luò)邊界的方法,并能用更具體的方式過(guò)濾通信,通過(guò)增加規(guī)則過(guò)濾網(wǎng)頁(yè)內(nèi)容,可以過(guò)濾掉地址中包含某些單詞的Web頁(yè)請(qǐng)求。另外還有降低帶寬成本,提高網(wǎng)絡(luò)性能,實(shí)現(xiàn)負(fù)載平衡的優(yōu)點(diǎn)。
實(shí)驗(yàn)項(xiàng)目利用Squid Web代理緩存服務(wù)器[7]來(lái)實(shí)現(xiàn)。圖3是實(shí)現(xiàn)該實(shí)驗(yàn)項(xiàng)目的平臺(tái)。
圖3 應(yīng)用層防火墻實(shí)驗(yàn)平臺(tái)搭建
在以上的實(shí)驗(yàn)環(huán)境中,設(shè)計(jì)滿足如下要求的實(shí)驗(yàn):
(a) Windows Client通過(guò)Squid代理服務(wù)器訪問(wèn)www服務(wù)器或ftp服務(wù)器。
(b) 設(shè)置規(guī)則(如關(guān)鍵詞)進(jìn)行URL的內(nèi)容過(guò)濾。
(c) 在squid.conf中定義ACL(訪問(wèn)控制列表)用于源IP地址、IP地址范圍,目標(biāo)IP地址、IP地址范圍進(jìn)行訪問(wèn)時(shí)的允許或拒絕。
(d) 實(shí)現(xiàn)代理認(rèn)證,即對(duì)使用代理服務(wù)器的客戶端進(jìn)行Username/Password身份認(rèn)證。
(e) 實(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ì)。
文中利用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é)生的專業(yè)實(shí)踐能力。
[1] Damon E, Mache J, Weiss R,etal. Cyber Security Education: The Merits of Firewall Exercises [J]. Emerging Trends in ICT Security, 2014, 5(3):507-516.
[2] 鄭 偉.基于防火墻的網(wǎng)絡(luò)安全技術(shù)的研究[D].長(zhǎng)春:吉林大學(xué), 2012.
[3] 夏 晴.淺析開(kāi)源軟件在網(wǎng)絡(luò)信息安全體系中的應(yīng)用[J]. 計(jì)算機(jī)軟件與應(yīng)用, 2013,30(1):84-87.
[4] 彭 飛.基于rootkit的主動(dòng)防御技術(shù)研究與實(shí)現(xiàn)[D].成都:電子科技大學(xué), 2013.
[5] Liang X Y, Xia C H, Jiao J,etal. Modeling and global conflict analysis of firewall policy [J]. China Communications, 2014, 11(5):23-34.
[6] 夏躍偉,牛文倩,劉金廣.基于Linux平臺(tái)防止IP欺騙的SYN攻擊防火墻的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代電子技術(shù), 2014, 37(9):83-85.
[7] 張秀嶺,萬(wàn) 旻,駱建彬,等. Linux下基于Squid的多能代理系統(tǒng)與透明網(wǎng)關(guān)解決方案[J]. 計(jì)算機(jī)應(yīng)用, 2013, 34(5):534-539.
[8] 康海燕,樊 揚(yáng).基于Android手機(jī)智能防火墻的研究與設(shè)計(jì)[J].北京信息科技大學(xué)學(xué)報(bào)(自然科學(xué)版), 2014, 29(2):36-40.
[9] 劉飛霞. Linux內(nèi)核中Netfilter/Iptables防火墻設(shè)置分析[D]. 西安:西安電子科技大學(xué), 2012.
[10] 葉惠卿.基于Linux Iptables防火墻規(guī)則生成的研究與實(shí)現(xiàn)[D]. 廣州:中山大學(xué), 2010.
[11] 肖 淇,秦云川,陽(yáng)王東,等.一種基于MapReduce的防火墻策略沖突并行化檢測(cè)及消解模型[J]. 計(jì)算機(jī)科學(xué), 2013, 40(3):10-13.
[12] Fern K M, Sharipah S. Expert Rules of Firewall: A Technique to Construct and Modified a Set of Rules [J]. International Journal of Information and Education Technology, 2015, 5(12): 951-956.
[13] 荀仲愷,黃 皓,金胤丞.基于SR-IOV的虛擬機(jī)防火墻設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程, 2014, 40(5):32-35.
[14] Moruse V S, Manjrekar A A. Software defined network based firewall technique [J]. International Journal of Computer Engineering & Technology, 2013, 4(2): 598-606.
[15] 鄒航,李梁,王柯柯,等. 整合ACL和NAT的網(wǎng)絡(luò)安全實(shí)驗(yàn)設(shè)計(jì)[J].實(shí)驗(yàn)室研究與探索, 2011, 30(4):50-53.
歡迎賜稿,歡迎訂閱,歡迎刊登廣告。
An Experiment Design for Firewall Techniques Based on Open Source Code
SUShou-bao,WANGChi-she,LIUYu,LIUJing
(School of Computers Engineering, Jinling Institute of Technology, Nanjing 211169, China)
The firewall technology is one of the important contents in the field of computer network security. Some special hardware firewalls used in the experimental equipment have some disadvantages, such as expensive cost, its internal technical protection etc.Some kinds of firewall technology including the use of IPtables to realize packet filter firewall, NAT agent, IP address camouflage, a Squid proxy server, proxy, proxy service access statistics system have designed experimentally by using Linux OS IPtables, Squid and other open source software.
computer network security; firewall; experiment design; open source code
2015-01-08
教育部人文社會(huì)科學(xué)(工程科技人才培養(yǎng)專項(xiàng))研究項(xiàng)目(13JDGC018);安徽省省級(jí)質(zhì)量工程重點(diǎn)(2012JYXM433)
蘇守寶(1965-),男,博士,教授,主要研究群智能計(jì)算與網(wǎng)絡(luò)安全等。Tel.:025-86188957; E-mail:showbo@jit.edu.cn
TP 316
A
1006-7167(2015)08-0124-03