于韶杰
中圖分類號:TP3文獻標識碼:A文章編號:1671-7597(2009)0510020-01
一、緒論
傳統的包過濾防火墻系統主要是包過濾規(guī)則以IP 信息包為基礎,對IP 源地址、IP 目標地址、封裝協議(TCP/UDP)、端口號等進行篩選。只有符合訪問條件的數據包才被轉發(fā),其它包被丟棄。其功能設計主要是為在IP層和傳輸層上進行過濾的,而內容過濾在傳統的包過濾防火墻上是難以做到的,其功能主要是依靠代理防火墻來實現。而筆者所在的學院包過濾防火墻主要安置在校園網和外部網絡的出入口,內部網絡通過這個防火墻與外網進行聯系,其瀏覽訪問Internet的作用比較多,而目前各種暴力、色情等不良信息充斥網絡,如果能在邊界的包過濾防火墻中加入對網頁內容過濾的功能,使其既能保持包過濾防火墻對用戶完全透明和過濾速度比較快的特點,又能實現一定的內容過濾功能,就大大增加了邊界包過濾防火墻在校園網絡安全中的實用性。本文試圖利用Linux自帶的包過濾防火墻模塊Iptable的拓展模塊,進行在包過濾防火墻上實現字符內容的過濾的功能研究。
二、Netfilter/layer7匹配簡介
netfilter的設計主要是為在IP層和傳輸層上進行過濾的,layer7匹配的出現使得netfilter具備了一定的內容檢測能力,其代碼可http://l7-filter.sf.net下載,layer7可用于TCP、UDP、ICMP協議的數據內容匹配。
Layer7匹配的源碼包括兩個文件l7-protocols-
ilter-layer7-
由于模式只定義服務器段,而服務器返回的數據對于netfilter來說是屬于ESTABLISHED的數據,所以要使用layer7匹配,必須是針對返回的數據進行匹配,而且要在通常的狀態(tài)檢測允許通過(iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT)的命令前進行,否則是檢測不出什么來的。
三、網頁內容的過濾的具體實現
首先我們有Iptable做NAT實現內部機器透過NAT共享能上Internet:
1.下載所需要的軟件包:
下載新內核linux-2.6.19.7;下載iptables1.2.7;下載Layer-7補丁,模塊協議:
l7-protocols-2007-01-13.tar.gz 和netfilter-layer7-v2.9.tar.gz
2.配置好內核選項:
把源碼都放在/usr/src下:tar -jvf linux-2.6.19.7.tar.bz2#解壓
3.安裝下列L7補丁
安裝l7協議、L7內核支持補丁。
make menuconfig進去 ,把Layer 7 match support選上 。
四、編譯內核、升級iptables(略)
五、測試內容過濾功能
string模塊是匹配ASCII那種漢字編碼的,也就是用UltraEdit用十六進制方式打開可以直接看懂的,我們以屏蔽網頁中暴力和色情關鍵字為例,首先我們分別轉換暴力和色情的utf-8和gb2212的十六進制編碼,具體結果如下:
B1A9C1A6 #暴力ASCLL碼
E69AB4E48A9B #暴力UTF-8碼
C9ABC7E9 #色情ASCLL碼
E889B2E68384#色情UTF-8碼
然后配置iptables規(guī)則:
iptables -I FORWARD -m string --hex-string "| B1A9C1A6|" --algo bm --to 64424 -j DROP
iptables -I FORWARD -m string --hex-string "| E69AB4E48A9B |" --algo bm --to 64424 -j DROP
iptables -I FORWARD -m string --hex-string "| C9ABC7E9|" --algo bm --to 64424 -j DROP
iptables -I FORWARD -m string --hex-string "| E889B2E683848|" --algo bm --to 64424 -j DROP
將配置好的iptables防火墻過濾規(guī)則保存,經過測試,瀏覽含有“暴力”和“色情”關鍵字的網頁時,iptables防火墻會自動對其進行過濾,阻止了客戶端機器的瀏覽行為。
六、結論
使用Iptables配合L-7模塊為校園網構建一個實用的具有字符過濾功能的包過濾防火墻系統,做為校園網邊界防火墻系統,具備了對不良信息的過濾功能,以往這種過濾功能基本上是代理防火墻的工作,而代理防火墻的速度較慢,如果作為邊界防火墻會大大影響內部主機的訪問速度,因此我們利用Iptable的新增模塊具有的網絡層UTF-8碼和 ASCLL碼的過濾功能,將文字轉換成UTF-8碼和 ASCLL碼的形式添加到過濾規(guī)則中去,在包過濾防火墻中實現字符的過濾,并通過測試,速度比較滿意。
參考文獻:
[1]唐建國,防火墻的安全及其效能分析[J].中國科技信息2007.4:120.
[2]張琦,防火墻包過濾技術剖析[J].網管員世界,2007.11:95.
[3]施怡,使用iptables構建Linux防火墻[J].福建電腦,2004.10:71.
[4]劉君堯,Linux下基于Netfilter的防火墻設計[J].微機發(fā)展,2003.13(8):25-27。
[5]楊剛、陳蜀宇,Linux中基于Netfilter/Iptables的防火墻研究[J].計算機工程與設計,2007.9,(28)17:4124.
[6]李洋、汪虎松等,RedHat Linux9.0系統與網絡管理教程[M].北京:電子工業(yè)出版社,2006.07.
[7]邱桔、韋理麗,Linux下包過濾防火墻的設計與實現.計算機工程與設計.2006.7(27),13:2472-2475.