如何運(yùn)用包過濾技術(shù)實(shí)現(xiàn)個(gè)人防火墻
隨著網(wǎng)絡(luò)的迅速發(fā)展,各種各樣的網(wǎng)絡(luò)軟件也隨之出現(xiàn),人們的生活和學(xué)習(xí)對(duì)網(wǎng)絡(luò)的依賴也越來越多,但問題也接踵而來,網(wǎng)站被攻擊,病毒泛濫,個(gè)人信息被竊取,使人們面臨這樣一個(gè)問題:網(wǎng)絡(luò)是否安全?
而防火墻正是網(wǎng)絡(luò)的保護(hù)傘,形形色色的防火墻很多,本文通過介紹包過濾技術(shù)實(shí)現(xiàn)個(gè)人防火墻,使大家對(duì)防火墻的知識(shí)有進(jìn)一步的了解。
一、防火墻和包過濾技術(shù)簡(jiǎn)介
防火墻是一種用于在兩個(gè)網(wǎng)絡(luò)間進(jìn)行訪問控制的設(shè)備,防火墻系統(tǒng)防范的對(duì)象是來自被保護(hù)的網(wǎng)絡(luò)的外部的對(duì)網(wǎng)絡(luò)安全的威脅,它通過檢測(cè)、限制、更改跨越防火墻的數(shù)據(jù)流,盡可能的實(shí)現(xiàn)對(duì)外部網(wǎng)絡(luò)的安全保護(hù)。
而包過濾技術(shù)是防火墻最基本的實(shí)現(xiàn)技術(shù),具有包過濾技術(shù)的裝置是用來控制內(nèi)、外網(wǎng)絡(luò)數(shù)據(jù)流入和流出,包過濾技術(shù)的數(shù)據(jù)包大部分是基于TCP/IP協(xié)議平臺(tái)的,對(duì)數(shù)據(jù)流的每個(gè)包進(jìn)行檢查,根據(jù)數(shù)據(jù)報(bào)的源地址、目的地址、TCP和IP的端口號(hào),以及TCP的其他狀態(tài)來確定是否允許數(shù)據(jù)包通過。
二、截獲網(wǎng)絡(luò)封裝包
截獲數(shù)據(jù)包是實(shí)現(xiàn)一個(gè)防火墻的第一步,截獲數(shù)據(jù)包的方法有很多種,既可以在用戶態(tài)下攔截網(wǎng)絡(luò)數(shù)據(jù)包,又可以在核心狀態(tài)下進(jìn)行數(shù)據(jù)包截獲。
在用戶態(tài)下進(jìn)行網(wǎng)絡(luò)數(shù)據(jù)包攔截有以下幾種方法:
(1)Winsock Layered ServiceProvider(LSP)。
(2)Windows2000包過濾接口。
(3)替換系統(tǒng)自帶的WINSOCK動(dòng)態(tài)連接庫。
很顯然,在用戶態(tài)下可以很簡(jiǎn)單的進(jìn)行數(shù)據(jù)包攔截,但其最致命的缺點(diǎn)就是只能在Winsock層次上進(jìn)行,而對(duì)于網(wǎng)絡(luò)協(xié)議棧中底層協(xié)議的數(shù)據(jù)包無法進(jìn)行處理。對(duì)于一些木馬和病毒來說很容易避開這個(gè)層次的防火墻。
因此大多數(shù)的個(gè)人防火墻選擇利用網(wǎng)絡(luò)驅(qū)動(dòng)程序來實(shí)現(xiàn)的。例如用中間層驅(qū)動(dòng)程序來截獲數(shù)據(jù)包。
中間層驅(qū)動(dòng)介于協(xié)議層驅(qū)動(dòng)和小端口驅(qū)動(dòng)之間,它能夠截獲所有的網(wǎng)絡(luò)數(shù)據(jù)包(如果是以太網(wǎng)那就是以太幀)。NDIS中間層驅(qū)動(dòng)的應(yīng)用很廣泛,不僅僅是個(gè)人防火墻,還可以用來實(shí)現(xiàn)VPN,NAT,PPPOverEthernet以及VLan。中間層驅(qū)動(dòng)的概念是在WindowNTSP4之后才有的,因此對(duì)于Windows9x來說無法直接利用中間層驅(qū)動(dòng)的功能。WindowsDDK提供了兩個(gè)著名的中間層驅(qū)動(dòng)例子:Passthru以及Mux。開發(fā)人員可以在Passthru的基礎(chǔ)上進(jìn)行開發(fā),Mux則實(shí)現(xiàn)了VLan功能。目前個(gè)人防火墻的產(chǎn)品還很少用到這種技術(shù),主要的原因在于中間層驅(qū)動(dòng)的安裝過于復(fù)雜,尤其是在WindowsNT下。Windows2000下可以通過程序?qū)崿F(xiàn)自動(dòng)安裝,但是如果驅(qū)動(dòng)沒有經(jīng)過數(shù)字簽名的話,系統(tǒng)會(huì)提示用戶是否繼續(xù)安裝。中層層驅(qū)動(dòng)功能強(qiáng)大,應(yīng)該是今后個(gè)人防火墻技術(shù)的趨勢(shì)所在,特別是一些附加功能的實(shí)現(xiàn)。
三、驅(qū)動(dòng)程序和應(yīng)用程序間的通訊
當(dāng)驅(qū)動(dòng)程序截獲網(wǎng)絡(luò)數(shù)據(jù)包后,驅(qū)動(dòng)程序要和應(yīng)用程序進(jìn)行通訊,通知應(yīng)用程序?qū)?shù)據(jù)包進(jìn)行判斷,如果符合過濾規(guī)則,則接受數(shù)據(jù)包,否則,則放棄該數(shù)據(jù)包,其步驟大致如下:
(1)應(yīng)用程序創(chuàng)建一事件Event;
(2)應(yīng)用程序通過CreateFile創(chuàng)建驅(qū)動(dòng)程序?qū)嵗?
(3)把該事件的句柄傳給驅(qū)動(dòng)程序;
(4)驅(qū)動(dòng)程序通過DeviceControl函數(shù)接受Event的句柄;
(5)應(yīng)用程序通過DeviceIOControl函數(shù)傳遞控制驅(qū)動(dòng)程序的消息;
(6)驅(qū)動(dòng)程序通過Dispatch歷程得到應(yīng)用程序傳來的消息,然后根據(jù)消息類型進(jìn)行不同的服務(wù);
(7)把結(jié)果數(shù)據(jù)放入共享內(nèi)存區(qū),設(shè)置Event事件通知應(yīng)用程序所請(qǐng)求的事情已經(jīng)辦完;
(8)應(yīng)用程序通過WaitForSingleObject來獲知事件發(fā)生;
(9)應(yīng)用程序在共享內(nèi)存區(qū)獲得數(shù)據(jù),并重置該事件。
四、過濾規(guī)則設(shè)置
包過濾防火墻的過濾規(guī)則集由若干條規(guī)則組成,它應(yīng)涵蓋對(duì)所有出入防火墻的數(shù)據(jù)包的處理方法,對(duì)于沒有明確定義的數(shù)據(jù)包,應(yīng)該有一個(gè)缺省處理方法;過濾規(guī)則應(yīng)易于理解,易于編輯修改;同時(shí)應(yīng)具備一致性檢測(cè)機(jī)制,防止沖突。IP包過濾的依據(jù)主要是根據(jù)IP包頭部信息如源地址和目的地址進(jìn)行過濾,如果IP頭中的協(xié)議字段表明封裝協(xié)議為ICMP、TCP或UDP,那么再根據(jù)ICMP頭信息(類型和代碼值)、TCP頭信息(源端口和目的端口)或UDP頭信息(源端口和目的端口)執(zhí)行過濾,其他的還有MAC地址過濾。應(yīng)用層協(xié)議過濾要求主要包括FTP過濾、基于RPC的應(yīng)用服務(wù)過濾、基于UDP的應(yīng)用服務(wù)過濾要求以及動(dòng)態(tài)包過濾技術(shù)等。在一般情況下,我們可以從以下幾個(gè)方面來進(jìn)行訪問規(guī)則的設(shè)置:
(1)禁止一切源路由尋徑的IP包通過;
(2)IP包的源地址和目的地址;
(3)IP包中TCP與UDP的源端口和目的端口;
(4)運(yùn)行協(xié)議;
(5)IP包的選擇。
五、記錄和報(bào)警
防火墻處理完整日志的方法:防火墻規(guī)定了對(duì)于符合條件的報(bào)文做日志,應(yīng)該提供日志信息管理和存儲(chǔ)方法。提供自動(dòng)日志掃描:指防火墻是否具有日志的自動(dòng)分析和掃描功能,這可以獲得更詳細(xì)的統(tǒng)計(jì)結(jié)果,達(dá)到事后分析、亡羊補(bǔ)牢的目的。提供自動(dòng)報(bào)表、日志報(bào)告書寫器:防火墻實(shí)現(xiàn)的一種輸出方式,提供自動(dòng)報(bào)表和日志報(bào)告功能。動(dòng)作
警告通知機(jī)制:防火墻應(yīng)提供告警機(jī)制,在檢測(cè)到入侵網(wǎng)絡(luò)以及設(shè)備運(yùn)轉(zhuǎn)異常情況時(shí),通過告警來通知管理員采取必要的措施,包括E-mail、呼機(jī)、手機(jī)等。
提供簡(jiǎn)要報(bào)表(按照用戶ID或IP地址):防火墻實(shí)現(xiàn)的一種輸出方式,按要求提供報(bào)表分類打印。
提供實(shí)時(shí)統(tǒng)計(jì):防火墻實(shí)現(xiàn)的一種輸出方式,日志分析后所獲得的智能統(tǒng)計(jì)結(jié)果,一般是圖表顯示。
用包過濾技術(shù)實(shí)現(xiàn)防火墻較為容易,具有比較好的網(wǎng)絡(luò)安全保障功能,但也存在不足之處,由于過濾技術(shù)中無法包括用戶名,而僅僅是客戶機(jī)的IP地址,那么如果要過濾用戶名就不能使用包過濾技術(shù)了,另外,由于包過濾技術(shù)遵循”未禁止就允許通過”的規(guī)則,因此,一些未經(jīng)禁止的包的進(jìn)出,可能對(duì)網(wǎng)絡(luò)產(chǎn)生安全威脅。今后防火墻的發(fā)展會(huì)朝著簡(jiǎn)單化、安全化方向邁進(jìn),綜合包過濾和應(yīng)用代理的功能,達(dá)到兩者的有效結(jié)合,實(shí)現(xiàn)新型加密算法的設(shè)計(jì),使數(shù)據(jù)的傳輸更加安全,會(huì)和IDS、病毒檢測(cè)等相關(guān)安全產(chǎn)品聯(lián)合起來,充分發(fā)揮各自的長(zhǎng)處,協(xié)同配合,共同建立一個(gè)有效的安全防范體系。
【編輯推薦】