蘇守寶, 王池社, 劉 鈺, 劉 晶
(金陵科技學院 計算機工程學院, 江蘇 南京 211169)
?
一種開放源代碼的防火墻技術及其實驗設計
蘇守寶, 王池社, 劉 鈺, 劉 晶
(金陵科技學院 計算機工程學院, 江蘇 南京 211169)

防火墻技術是計算機網絡安全領域的重要內容之一。一些專用硬件防火墻作為實驗設備具有價格昂貴、內部技術不透明等缺點。文中利用Linux OS下的IPtables、Squid以及其它開放源代碼軟件,靈活地使用Linux主機實現各種防火墻技術,包括使用IPtables實現包過濾防火墻、NAT代理、IP地址偽裝、Squid代理服務器、代理認證、代理服務訪問統計系統及其實驗設計。
計算機網絡安全; 防火墻; 實驗設計; 開放源代碼
防火墻是指設置在不同網絡(如可信任的企業內部網和不可信的公共網)或網絡安全域之間的一系列部件的組合。防火墻技術作為一種重要的網絡安全技術,已經廣泛開設于計算機網絡、計算機網絡安全技術、信息安全等課程中[1-3]。防火墻是不同網絡或網絡安全域之間信息的唯一出入口,通過監測、限制、更改跨越防火墻的數據流,盡可能地對外部屏蔽網絡內部的信息、結構和運行狀況,有選擇地接受外部訪問,對內部強化設備監管、控制對服務器與外部網絡的訪問,在被保護網絡和外部網絡之間架起一道屏障,以防止發生不可預測的、潛在的破壞性侵入,作為主機安全的攻擊方和防御方,病毒、木馬與安全軟件產品都在使用不同層次的rootkit技術進行信息的竊取與防護[4-5]。通常有硬件防火墻和軟件防火墻,控制手段包括包過濾、狀態檢測、代理服務、地址翻譯技術等。夏躍偉等[6-7]針對網絡威脅類型和攻擊手段設計了包過濾防火墻、屏蔽主機防火墻和屏蔽子網防火墻,利用IPtables實現了基本的防火墻策略及其規則生成系統,康海燕等[8]設計并實現了一種基于rootkit的主動防御監控擴展框架,劉飛霞等[9-10]通過對WiMAX網絡產品的分析,Linux內核中Netfilter/Iptables防火墻設置分析。肖淇等[11-12]對由基于規則的分段技術得到的片段進行自定義的排序, 設計了一種基于MapReduce模型的防火墻策略規則沖突檢測算法。荀仲愷等[13]針對低特權級的虛擬域中防火墻容易受到攻擊的問題,利用 SR-IOV 規范的高性能數據傳輸特性和對接收數據包的過濾功能,使虛擬域直接與真實網卡交互,提出一種高性能的虛擬機防火墻設計方案,通過在高特權級的Xen中部署監控模塊,對虛擬域中的防火墻進行實時監控,以防止防火墻被非法訪問和惡意篡改,保證防火墻的安全。
近年來,移動應用、云安全及智能防火墻技術等也逐漸得到重視[8,11,14]。但學習防火墻技術不僅僅是學習書本上空洞的理論和抽象的安全策略,要使學生真正掌握好該技術,需要大量的實踐環節加以理解、掌握和應用,提高學生的專業實踐能力。如果利用專用的防火墻硬件作為實驗設備,不僅具有價格昂貴、內部技術不透明的缺點,而且不能真正地讓學生了解防火墻的體系結構、原理及技術,并加以靈活運用。由于Linux操作系統源代碼的開放性,提供了一個防火墻框架Netfiher,使得Linux成為研究防火墻技術的一個很好平臺。因此本文利用Linux OS下的開放源代碼軟件IPtables及Squid,靈活地使用Linux主機實現各種防火墻技術,設置了若干防火墻技術實驗項目,給出了實驗環境的搭建。
包過濾防火墻[2,9]一般在路由器上實現,用以過濾用戶定義的內容,可以在網絡層或數據鏈路層截獲數據,使用一些規則來確定是否轉發或丟棄各個數據包。本文中將以Linux OS下的IPtables軟件為例來說明包過濾防火墻實驗設計,其實驗環境搭建如圖1所示。

圖1 包過濾防火墻實驗平臺的搭建
在該環境中只需要1臺用于運行IPtables防火墻的Linux主機,3臺Windows主機分別連接到防火墻主機的3塊網卡(NIC)上,分別用來模擬Internet區域、DMZ和私有網絡。為了滿足實驗的要求,在這3臺Windows主機上必須安裝的一些軟件如各種服務器軟件并加以配置使其正確運行。在該實驗環境中,設計滿足如下網絡安全要求的防火墻實驗要求:
(a) 允許網絡接口eth1、eth2相連接的LAN1和LAN2之間相互通信。
(b) LAN1和LAN2的任何主機可以使用internet中的任何服務(Web,E-mail,Ftp等)。
(c) 來自internet的主機不能訪問1023以下的LAN1和LAN2中的內部端口。
(d) 拒絕全部從eth0進入的ICMP通信。
(e) 允許internet中的主機訪問LAN1中的DNS服務、WEB服務、FTP服務,其它服務如telnet等禁止。
通過該實驗不僅讓學生掌握通過防火墻實現包過濾,也可使學生掌握IPtables的防火墻規則編寫方法、IPtables中的表和鏈的概念,防火墻在網絡系統中的部署、安裝、配置和測試方法等,為以后真正利用防火墻來保護網絡奠定堅實的基礎。
網絡地址翻譯(NAT)[4,15]也是一種重要的防火墻技術,它隱藏了內部的網絡結構,外部攻擊者無法確定內部網絡的連接狀態。通過設置規則,在不同的時候,內部網絡向外連接使用的地址都可以不同,給外部攻擊者造成了困難。同樣NAT通過定義各種映射規則,可以屏蔽外部的連接請求,并可以將外部連接請求映射到不同的主機上。NAT實驗環境如圖2所示,可以設計如下實驗。

圖2 網絡地址翻譯NAT實驗環境搭建
(1) 利用NAT進行IP地址偽裝。將向外部網絡上提供服務的服務器在物理上放置于私用網絡中,假如私用網絡中的一臺服務器的IP地址為192.168.1.3/24,如果要對外部網絡提供Web服務,就可以利用IPtables進行IP地址偽裝,當外部網絡中的主機對210.45.144.254進行Web請求時,該防火墻就轉向私用網絡中的192.168.1.3的服務器進行Web請求。可以使用下面的IPtables規則加以實現。
#IPtables -t nat -A PREROUTING -p tcp -d 210.45.144.254 --dport 80 -j DNAT --to-destination 192.168.1.3
(2) 使用NAT代理訪問外部服務。使私有網絡中的主機通過NAT代理訪問外部網絡中的服務,可以使用下面的IPtables規則加以實現。
#IPtables -t nat -A POSTROUTING -p tcp -o eth0 -j SNAT --to 210.45.144.254
代理服務器防火墻[7,10]的原理是所有內部主機的請求都發送到代理服務器,由代理服務器發送Internet請求,當響應的包達到時,代理服務器將其發送到發出初始請求的內部主機上。
使用應用層防火墻即代理服務器是另一種創建網絡邊界的方法,并能用更具體的方式過濾通信,通過增加規則過濾網頁內容,可以過濾掉地址中包含某些單詞的Web頁請求。另外還有降低帶寬成本,提高網絡性能,實現負載平衡的優點。
實驗項目利用Squid Web代理緩存服務器[7]來實現。圖3是實現該實驗項目的平臺。

圖3 應用層防火墻實驗平臺搭建
在以上的實驗環境中,設計滿足如下要求的實驗:
(a) Windows Client通過Squid代理服務器訪問www服務器或ftp服務器。
(b) 設置規則(如關鍵詞)進行URL的內容過濾。
(c) 在squid.conf中定義ACL(訪問控制列表)用于源IP地址、IP地址范圍,目標IP地址、IP地址范圍進行訪問時的允許或拒絕。
(d) 實現代理認證,即對使用代理服務器的客戶端進行Username/Password身份認證。
(e) 實現Squid代理服務器訪問報告生成器。Squid代理服務器訪問統計系統可以利用Sarg軟件加以實現,該軟件可以從http://sarg.sourceforge.net/sarg.php下載sarg-2.3.1.tar.gz源代碼軟件包。該軟件通過訪問Squid的日志文件access.log實現用戶訪問情況統計、站點訪問統計、拒絕訪問統計、認證失敗統計、訪問流量統計、訪問時間統計等各種信息統計。
文中利用Linux OS下的IPtables、Squid以及其它開放源代碼軟件,靈活地使用Linux主機實現各種防火墻技術,包括使用IPtables實現包過濾防火墻、NAT代理、IP地址偽裝、Squid代理服務器、代理認證、代理服務訪問統計系統等,設置了若干防火墻技術實驗項目,給出了實驗環境的搭建。在節約實驗設備硬件投資的情況下,使學生更深入地掌握防火墻原理、技術及實現,并提高學生的專業實踐能力。
[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] 鄭 偉.基于防火墻的網絡安全技術的研究[D].長春:吉林大學, 2012.
[3] 夏 晴.淺析開源軟件在網絡信息安全體系中的應用[J]. 計算機軟件與應用, 2013,30(1):84-87.
[4] 彭 飛.基于rootkit的主動防御技術研究與實現[D].成都:電子科技大學, 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平臺防止IP欺騙的SYN攻擊防火墻的設計與實現[J].現代電子技術, 2014, 37(9):83-85.
[7] 張秀嶺,萬 旻,駱建彬,等. Linux下基于Squid的多能代理系統與透明網關解決方案[J]. 計算機應用, 2013, 34(5):534-539.
[8] 康海燕,樊 揚.基于Android手機智能防火墻的研究與設計[J].北京信息科技大學學報(自然科學版), 2014, 29(2):36-40.
[9] 劉飛霞. Linux內核中Netfilter/Iptables防火墻設置分析[D]. 西安:西安電子科技大學, 2012.
[10] 葉惠卿.基于Linux Iptables防火墻規則生成的研究與實現[D]. 廣州:中山大學, 2010.
[11] 肖 淇,秦云川,陽王東,等.一種基于MapReduce的防火墻策略沖突并行化檢測及消解模型[J]. 計算機科學, 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].計算機工程, 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的網絡安全實驗設計[J].實驗室研究與探索, 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
教育部人文社會科學(工程科技人才培養專項)研究項目(13JDGC018);安徽省省級質量工程重點(2012JYXM433)
蘇守寶(1965-),男,博士,教授,主要研究群智能計算與網絡安全等。Tel.:025-86188957; E-mail:showbo@jit.edu.cn
TP 316
A
1006-7167(2015)08-0124-03