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