基于linux 的內(nèi)容過濾型防火墻的設計與實現(xiàn)_第1頁
基于linux 的內(nèi)容過濾型防火墻的設計與實現(xiàn)_第2頁
基于linux 的內(nèi)容過濾型防火墻的設計與實現(xiàn)_第3頁
基于linux 的內(nèi)容過濾型防火墻的設計與實現(xiàn)_第4頁
基于linux 的內(nèi)容過濾型防火墻的設計與實現(xiàn)_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、中國基于linux的內(nèi)容過濾型防火墻的設計與實現(xiàn)1孫建坡武漢理工大學計算機學院,武漢(430070)E-mail:摘 要:傳統(tǒng)的包過濾防火墻主要是對網(wǎng)絡數(shù)據(jù)包的五元組分析,判斷,來實現(xiàn)對不良內(nèi)容的過濾,但是這樣的包過濾防火墻只能大致的實現(xiàn)過濾功能,不能達到用戶的需求.本文在包過濾的基礎上,提出了內(nèi)容過濾型防火墻,通過對截取網(wǎng)絡數(shù)據(jù)包內(nèi)容的分析,結合用戶的需求,來實現(xiàn)對網(wǎng)絡內(nèi)容的過濾,實踐證明內(nèi)容過濾防火墻極大的提高了公司,企業(yè)的安全系數(shù)。關鍵字:netfilter;wireshark;特征碼;協(xié)議分析;內(nèi)核模塊中圖分類號:TP393.080 引言計算機和互聯(lián)網(wǎng)技術的飛速發(fā)展,使人類進入了信息化

2、的社會,同時海量的信息通過互聯(lián)網(wǎng)進入人們的生活,給人們的生活提供了快捷和方便。但是,伴隨網(wǎng)絡的發(fā)展,各式各樣的不良內(nèi)容也充斥著網(wǎng)絡,比如大量的暴力,色情,犯罪,邪教等的不良內(nèi)容及一些病毒和垃圾郵件等,對我們個人和社會構成了傷害,針對這一現(xiàn)象,傳統(tǒng)的方法是采用包過濾防火墻的方法來剔除到一些不干凈的內(nèi)容。本文在包過濾防火墻的基礎上,以即時通信軟件QQ作為分析對象,提出了改進型的內(nèi)容過濾防火墻,通過對網(wǎng)絡中數(shù)據(jù)包內(nèi)容的提取,分析15,判斷,實現(xiàn)對QQ登錄的封堵,內(nèi)容過濾型防火墻可以作為公司內(nèi)部和外部網(wǎng)絡之間的防火墻,實現(xiàn)公司內(nèi)部對隨意登錄即時通信軟件的過濾,提供公司的工作效率,同時對學校,公司,網(wǎng)吧

3、等大型網(wǎng)絡機構提供了安全保障。1包過濾型防火墻包過濾又稱“報文過濾”,采用簡單的數(shù)據(jù)包過濾形式。由于包過濾防火墻工作在TCPIP協(xié)議的網(wǎng)絡層上,所以也被稱為網(wǎng)絡層防火墻。其工作方式如圖1所示。圖1 包過濾防火墻1 本課題得到外資企業(yè)O2(凹凸)Micro科技公司智能網(wǎng)絡安全防火墻項目計劃資助。-1-中國 網(wǎng)絡數(shù)據(jù)包通過物理層,數(shù)據(jù)鏈路層到達網(wǎng)絡層,包過濾防火墻分析數(shù)據(jù)包頭部的五元組1:源地址、目的地址、源端口、目的端口、協(xié)議類型,通過訪問控制表進行判斷,對分組實施有選擇的通過,如果滿足規(guī)則并允許通過,則分組將會被轉發(fā);如果規(guī)則拒絕通過,將被丟棄。包過濾防火墻是目前最快的防火墻,但是包過濾規(guī)則配

4、置較難,一些協(xié)議不適合用包過濾來保護安全;安全控制的粒度也只限于地址、端口號和標志位,對于基于數(shù)據(jù)包數(shù)據(jù)內(nèi)容的高層次的攻擊手段,則無能為力。同時它無法使用諸如限制什么用戶、什么應用程序等規(guī)則。2內(nèi)容過濾型防火墻內(nèi)容過濾型防火墻是在包過濾的基礎上,基于LINUX中的NETFILTER2模塊實現(xiàn)的網(wǎng)絡數(shù)據(jù)包內(nèi)容的過濾。首先在NETFILTER中加載一個內(nèi)容過濾的模塊,其中包含了一些配置信息,如需要匹配的地址,端口,協(xié)議,特征碼,關鍵字等信息,由于NETFILTER的PRE-ROUTING是數(shù)據(jù)包進入系統(tǒng)的第一個HOOK點,所以將該模塊掛載在第一個HOOK點PRE-ROUTING中(NETFILTE

5、R HOOK結構如圖2.1所示)。圖2.1 netfilter結構圖2.2 內(nèi)容過濾型防火墻當網(wǎng)絡數(shù)據(jù)包流經(jīng)物理層到達數(shù)據(jù)鏈路層時是,即進入了NETFILTER的第一個HOOK點,此時數(shù)據(jù)包就進入NETFILTER中注冊的函數(shù),模塊先是解開數(shù)據(jù)包,將模塊中配置信-2-中國 息與數(shù)據(jù)包中的特征碼,關鍵字等信息進行匹配,通過檢測數(shù)據(jù)包內(nèi)容中出現(xiàn)的非法特征碼,關鍵字等信息,來分析,判斷。對沒有出現(xiàn)非法關鍵字的數(shù)據(jù)包直接ACCEPT,對出現(xiàn)非法關鍵字的數(shù)據(jù)包,就會DROP,從而實現(xiàn)網(wǎng)絡數(shù)據(jù)包的過濾功能。過濾流程如上圖2.2所示。為了實現(xiàn)用戶和內(nèi)核的交互,本文通過NETLINK機制,使用戶更加方便的根據(jù)

6、自己的要求來完成不同的功能,即用戶將自己要封堵的功能選項通過NETLINK機制3傳遞給內(nèi)核模塊,由內(nèi)核模塊實現(xiàn)過濾功能。內(nèi)容過濾的防火墻對數(shù)據(jù)包的過濾更加細化,不但實現(xiàn)了對五元組的過濾,而且實現(xiàn)了對應用程序的過濾,同時還能有效防止偽IP的欺騙。內(nèi)容過濾防火墻通過內(nèi)核模塊的加載來實現(xiàn)過濾功能的添加,不僅相對于包過濾更加安全而且用戶操作起來。3 QQ工作原理即時通信系統(tǒng)主要工作模式:客戶/服務器模式4,即發(fā)信端用戶和收信端用戶必須通過服務器來交流。每個即時通信客戶端通過己注冊的用戶ID和密碼登陸服務器,密碼信息一般都通過加密后傳送。通過服務器驗證通過后,服務器返回通過驗證的信息給客戶端,同時附加一

7、些信息,負責中轉連接的服務器IP、端口號、客戶端的好友信息等??蛻舳死梅掌鞣祷氐尿炞C信息和獲得的IP地址及端口號與中轉服務器建立TCP連接。連接建立成功后就通過中轉服務器與上線的好友互發(fā)消息。對于QQ來說,實現(xiàn)通信首先要實現(xiàn)QQ的登錄,所以在此研究QQ的登錄就顯得至關重要。在電腦上安裝QQ客戶端,在QQ登錄過程中,用網(wǎng)絡協(xié)議分析軟件wireshark抓取QQ登錄時的信息包,如圖3所示。圖3 QQ登錄時的數(shù)據(jù)包通過數(shù)據(jù)分析可知:首次QQ登陸時,會對騰訊的域名發(fā)DNS查詢;從查詢到的多個IP地址中隨機選取一個作為登錄服務器;之后對該服務器發(fā)登錄請求數(shù)據(jù)包,服務器回應消息包,此時QQ登錄成功,若

8、QQ不能登錄該服務器,則該服務器把登錄請求包發(fā)給下一個新的服務器。以此來完成QQ的登錄過程。4 封堵QQ登錄的設計與實現(xiàn)下圖4顯示了封堵QQ登錄過程的流程圖:-3-中國圖4封堵QQ登錄流程框圖首先,為了能實現(xiàn)用戶和內(nèi)核模塊的交互,要向內(nèi)核中注冊NETLINK機制的交互函數(shù),由函數(shù)netlink_kernel_create創(chuàng)建了內(nèi)核接收函數(shù),其核心代碼如下:#include <linux/config.h>#include <linux/module.h>#include <linux/netlink.h>#include <net/sock.h>

9、static int _init netinit(void)rwlock_init(&user_proc.lock); /*初始化讀寫鎖*/nlfd = netlink_kernel_create(NL_IMP2, kernel_receive);if(!nlfd)printk("can not create a netlink socketn");return -1;return nf_register_hook(&netblockfun);static void _exit fini(void)if(nlfd)sock_release(nlfd->

10、socket);nf_unregister_hook(&ipt_ops);module_init(netinit);module_exit(fini);MODULE_LICENSE("GPL");kernel_receive函數(shù)主要是將用戶的配置交給內(nèi)核模塊,由內(nèi)核模塊根據(jù)配置信息來分析,決定數(shù)據(jù)包的去向。由QQ登錄過程可知,QQ登錄通過兩種協(xié)議5,一個是面向連接的TCP協(xié)議,一個是無連接的UDP協(xié)議。通過網(wǎng)絡協(xié)議分析軟件wireshark分析可知,當QQ通過TCP協(xié)議建立連接時,當數(shù)據(jù)部分長度大于3個,第三個字節(jié)為0x02,最后一個字節(jié)為0x03且等二個字節(jié)正好等

11、于數(shù)據(jù)長度時,此數(shù)據(jù)包即為QQ登錄的數(shù)據(jù)包;當QQ通過UDP協(xié)議登錄時,通過抓取數(shù)據(jù)包分析可知,當數(shù)據(jù)部分的第一個字節(jié)為0x02且數(shù)據(jù)最后一個字節(jié)為0x03時,此數(shù)據(jù)包為QQ通過UDP協(xié)議登錄的數(shù)據(jù)包。通過分析可知HOOK點的處理函數(shù)如下:-4-中國static struct nf_hook_ops ipt_ops = .hook = ipt_hook,.owner = THIS_MODULE,.pf = PF_INET,.hooknum = NF_IP_PRE_ROUTING,.priority = NF_IP_PRI_FILTER,ipt_hook(sk_buff * skb)char *

12、app_data=skb->dataipr_app_data_offset(skb);int datalen=ipr_app_data_len(skb);/*取出數(shù)據(jù)包數(shù)據(jù)信息長度*/if(app_data0=0x02&&app_datadatalen-1=0x03)printk ("QQ UDP DROP n");return NF_DROP;if (datalen>3 && app_data2=0x02)printk("enter qq suspectn");if(app_datadatalen-1=0x0

13、3&&app_data1 = datalen)printk(“QQ TCP DROPn");return NF_DROP; 為了在LINUX中編譯內(nèi)核模塊,生成想要的netblock.ko內(nèi)核模塊6文件,還要編寫一個Makefile文件,這樣在以后對內(nèi)核模糊進行修改之后就很容易實現(xiàn)內(nèi)核模塊的編譯工作。Makefile的內(nèi)容如下:PWD :=$(shell pwd)KDIR :=/usr/src/linux-Obj-m :=ip_filter.onetblock.o = netblock.cTARGET = netblockOBJ = netblock.

14、oall:$(MAKE) $(CFLAGS )C $(KDIR) M=$(PWD) modules$(CC) $(CFLAGS) -o $(TARGET) $(OBJ)clean:rm -r f *.o *.ko *.symsevr最后,將產(chǎn)生的模塊加載到內(nèi)核中。-5-中國5 實驗結果圖5 QQ登錄結果由圖5所示可知,通過用網(wǎng)絡協(xié)議分析軟件wireshark抓包分析可知,客戶端在一直試圖通過多了服務器IP來登錄QQ服務器,但是由于防火墻中的NETFILTER中注冊了相應的過濾函數(shù),同時對內(nèi)核中添加相應的模塊機制,使QQ一直處在“正在登陸”狀態(tài),在多次連接失敗后,最終由于登錄超時,而無法正常連接

15、,有效的防止了QQ的登錄。 6 結語本文在包過濾防火墻的基礎上,在NETFILTER中注冊相應的過濾函數(shù),實現(xiàn)了基于LINUX的內(nèi)容過濾型防火墻,細化了網(wǎng)絡數(shù)據(jù)包的過濾功能,解決了包過濾中只針對五元組過濾的限制,實現(xiàn)了對網(wǎng)絡數(shù)據(jù)包中數(shù)據(jù)部分的過濾,提供了網(wǎng)絡的安全,同時此方法可以推廣到QQ的其他應用功能中及即時通信軟件中,如封堵QQ文件傳輸、視頻傳輸,封堵MSN,SKYPE等。對防火墻的實際應用有很好的參考價值。參考文獻1李遠杰,劉渭封等,主流即時通信軟件通信協(xié)議分析J.計算機應用研究,2005.2姚曉宇,趙晨Linux內(nèi)核防火墻Netfilter實現(xiàn)與應用研究J.計算機工程,2003,29(

16、8):112.3 王茜基于Linux的網(wǎng)絡防火墻技術研究D.大連:大連海事大學,2001,15.4RIcHARD sTEvENs wTcPIP Illmtrated volume lM Addisonwesle. 2002.5Libyahoo2Yahoo Messenger Protocol v9EB/0Lhttp:/ libyahoo2sourceforgenet/ymsg-9.txt.2007.03.6(美)HareCSiyankIntemet防火墻與網(wǎng)絡安全M.北京:機械工業(yè)出版社,1998.-6-中國 Linux-based design and implementation for

17、content filteringfirewallSun JianpoComputer college. WuHan University of technology. WuHan (430070)AbstractTraditonal packet filtering firewall mainly analyse and judge by the five-tuple of network packet,which can filter the needless content.But such firewall can only be approximate realization for filters,so it cant meet customers needs.Based on packet filtering,it proposes content filtering-based firewall. Through the content analysis of network data packets,combined with the needs of users,it implements filter for netwo

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論