什么是包過濾技術?包過濾(Packet Filtering)技術是根據流經防火墻的數據包的特征,依據預先定義好的規則,決定是否允許數據包通過的技術。它對數據包進行分析篩選的依據是系統內設置的訪問控制表(Access Control Table)。通過檢查數據流中每個數據包的源地址、目的地址、所用的端口號、協議狀態等信息或它們的組合信息來確定是否允許該數據包通過。
包過濾技術分為靜態包過濾和動態包過濾兩種。近年來,研究人員在動態包過濾技術上,又進一步提出了包狀態檢測技術和深度包檢測技術。(1)靜態包過濾
靜態包過濾,又稱簡單包過濾(Simple Packet Filter)是根據定義好的過濾規則審查每個數據包,以便確定其是否與某一條包過濾規則匹配,然后對所接收的每個數據包做允許或拒絕的決定。過濾規則基于數據包報頭中的信息,例如源IP地址、目標IP地址、協議類型(TCP、UDP、ICMP等)、源端口和目的端口。
(2)動態包過濾
動態包過濾(Dynamic Packet Filter)采用動態設置包過濾規則的方法過濾數據包。采用這種技術的防火墻對每一個連接都進行跟蹤,動態地決定哪些數據包可以通過,并且可以根據需要動態地在過濾規則中增加或更新條目。
(3)包狀態檢測
包狀態檢測(Stateful Inspection)技術繼承了包過濾技術的優點,同時摒棄了包過濾技術僅考查數據包的IP地址、協議類型等幾個參數,而不關心數據包連接狀態變化的缺點,通過建立狀態連接表,并將進出網絡的數據當成一個個的會話,利用狀態表跟蹤每一個會話狀態。狀態監測對每一個包的檢查不僅根據“規則表”,更考慮了數據包是否符合會話所處的狀態,檢查數據包之間的關聯性,因而能提供更完整的對傳輸層的控制能力。
(4)深度包檢測
深度包檢測(Deep Packet Inspection)技術融合了入侵檢換(和攻擊防范的功能,通過指紋匹配、啟發式技術、異常檢測和統計分析等技術來決定如何處理數據包,并可以根據特征檢測和內容過濾來尋找已知的攻擊,阻止分布式拒絕服務攻擊、病毒傳播和異常訪問等威脅網絡安全的行為。
包過濾防火墻通常工作在OSI的3層及3層以下,可控的內容主要包括報文的源地址、報文的目標地址、服務類型,以及數據鏈路層的 MAC 地址等。隨著包過濾防火墻的發展,部分OSI的4層內容也被包括進來,例如報文的源端口和目的端口。包過濾防火墻遵循的一條基本原則是“最小特權原則”,即明確允許某些數據包通過,而禁止其他的數據包通過。
由于大多數路由器都提供簡單的數據包過濾功能,所以傳統的包過濾防火墻多數是由路由器集成的。
包過濾防火墻的優點是不用改動應用程序、數據包過濾對用戶透明、過濾速度快、通用性強(因為它不針對具體的網絡服務);缺點是不能徹底防止地址欺騙,某些協議不適合于數據包過濾(例如過濾器不能有效地過濾UDP、RPC類協議),無法執行某些安全策略(例如審計和報警),安全性較差(例如:過濾器只能依據包頭信息進行過濾,能對用戶身份進行驗證),對網絡管理人員素質要求高以及隨著過濾規則數目的增加,性能會受到很大地影響等。
在包狀態檢測防火墻的內核中,運行著狀態檢測引擎(Stateful Inspections Engine),它負責在對接收到的數據包進行審核,當接收到的數據包符合訪問控制要求時,將該數據包傳到高層進行應用級別和狀態的審核,如果不符合要求,則丟棄。
與包狀態檢測防火墻相比,深度包檢測防火墻不但要保留基本的網絡連接狀態,而且還要維持網絡的應用狀態。