什么是包過濾技術?包過濾(Packet Filtering)技術是根據流經防火墻的數據包的特征,依據預先定義好的規則,決定是否允許數據包通過的技術。它對數據包進行分析篩選的依據是系統內設置的訪問控制表(Access Control Table)。通過檢查數據流中每個數據包的源地址、目的地址、所用的端口號、協議狀態等信息或它們的組合信息來確定是否允許該數據包通過。
(1)靜態包過濾
靜態(tai)包(bao)(bao)過(guo)濾(lv),又(you)稱簡單(dan)包(bao)(bao)過(guo)濾(lv)(Simple Packet Filter)是(shi)根據定(ding)義(yi)好(hao)的(de)過(guo)濾(lv)規則審查每(mei)個數(shu)據包(bao)(bao),以(yi)便確定(ding)其是(shi)否與某一(yi)條包(bao)(bao)過(guo)濾(lv)規則匹配(pei),然后對所接收(shou)的(de)每(mei)個數(shu)據包(bao)(bao)做允許或(huo)拒(ju)絕(jue)的(de)決定(ding)。過(guo)濾(lv)規則基(ji)于(yu)數(shu)據包(bao)(bao)報頭(tou)中的(de)信息,例如源(yuan)IP地址、目標IP地址、協(xie)議(yi)類型(xing)(TCP、UDP、ICMP等)、源(yuan)端口(kou)和目的(de)端口(kou)。
(2)動態包過濾
動(dong)態(tai)包過濾(lv)(lv)(Dynamic Packet Filter)采(cai)用動(dong)態(tai)設(she)置包過濾(lv)(lv)規(gui)則的(de)方(fang)法過濾(lv)(lv)數(shu)據包。采(cai)用這種技(ji)術(shu)的(de)防(fang)火墻對每一個連接都進行(xing)跟(gen)蹤,動(dong)態(tai)地決定哪些數(shu)據包可(ke)以通過,并且可(ke)以根據需要動(dong)態(tai)地在過濾(lv)(lv)規(gui)則中增加或更新(xin)條目。
(3)包狀態檢測
包(bao)(bao)狀(zhuang)態(tai)(tai)(tai)檢(jian)測(Stateful Inspection)技術(shu)繼承(cheng)了(le)包(bao)(bao)過(guo)濾(lv)技術(shu)的(de)(de)優(you)點,同時摒棄了(le)包(bao)(bao)過(guo)濾(lv)技術(shu)僅考查數(shu)(shu)據(ju)(ju)包(bao)(bao)的(de)(de)IP地址、協議類型等(deng)幾個(ge)參數(shu)(shu),而不關心數(shu)(shu)據(ju)(ju)包(bao)(bao)連(lian)接(jie)狀(zhuang)態(tai)(tai)(tai)變化的(de)(de)缺點,通過(guo)建立狀(zhuang)態(tai)(tai)(tai)連(lian)接(jie)表,并將進出網(wang)絡(luo)的(de)(de)數(shu)(shu)據(ju)(ju)當成(cheng)一(yi)個(ge)個(ge)的(de)(de)會(hui)話,利用(yong)狀(zhuang)態(tai)(tai)(tai)表跟蹤每一(yi)個(ge)會(hui)話狀(zhuang)態(tai)(tai)(tai)。狀(zhuang)態(tai)(tai)(tai)監測對(dui)每一(yi)個(ge)包(bao)(bao)的(de)(de)檢(jian)查不僅根據(ju)(ju)“規則表”,更考慮(lv)了(le)數(shu)(shu)據(ju)(ju)包(bao)(bao)是否符合會(hui)話所處的(de)(de)狀(zhuang)態(tai)(tai)(tai),檢(jian)查數(shu)(shu)據(ju)(ju)包(bao)(bao)之間(jian)的(de)(de)關聯(lian)性(xing),因而能提(ti)供(gong)更完整的(de)(de)對(dui)傳(chuan)輸(shu)層的(de)(de)控(kong)制能力。
(4)深度包檢測
深度包(bao)檢(jian)(jian)測(Deep Packet Inspection)技(ji)術(shu)融(rong)合了入侵檢(jian)(jian)換(和(he)攻擊防范的功能,通過指紋(wen)匹(pi)配、啟發式技(ji)術(shu)、異常檢(jian)(jian)測和(he)統(tong)計(ji)分(fen)(fen)析等(deng)技(ji)術(shu)來決(jue)定如何(he)處理數(shu)據包(bao),并可以(yi)根據特(te)征(zheng)檢(jian)(jian)測和(he)內容過濾來尋找已知的攻擊,阻止(zhi)分(fen)(fen)布式拒絕服務攻擊、病毒傳播和(he)異常訪問(wen)等(deng)威脅網絡安全的行為。
包(bao)過(guo)濾(lv)防(fang)火(huo)墻(qiang)通常工作在OSI的(de)3層及(ji)3層以(yi)下,可控(kong)的(de)內(nei)容主要包(bao)括(kuo)報(bao)文的(de)源地(di)址、報(bao)文的(de)目(mu)標(biao)地(di)址、服務類型,以(yi)及(ji)數據(ju)鏈路(lu)層的(de) MAC 地(di)址等。隨著包(bao)過(guo)濾(lv)防(fang)火(huo)墻(qiang)的(de)發展,部分(fen)OSI的(de)4層內(nei)容也(ye)被包(bao)括(kuo)進(jin)來(lai),例如(ru)報(bao)文的(de)源端口和(he)目(mu)的(de)端口。包(bao)過(guo)濾(lv)防(fang)火(huo)墻(qiang)遵循(xun)的(de)一條基本原(yuan)則(ze)是(shi)“最(zui)小特(te)權原(yuan)則(ze)”,即明(ming)確允(yun)許某(mou)些數據(ju)包(bao)通過(guo),而禁止(zhi)其他的(de)數據(ju)包(bao)通過(guo)。
由于大多數路(lu)由器都提供簡單的(de)數據包過濾(lv)功能,所以傳統的(de)包過濾(lv)防火墻多數是由路(lu)由器集(ji)成的(de)。
包(bao)(bao)過濾(lv)防(fang)火墻的(de)優點是不(bu)用改動應用程序、數據(ju)(ju)包(bao)(bao)過濾(lv)對(dui)用戶透(tou)明、過濾(lv)速(su)度快(kuai)、通用性強(因為它(ta)不(bu)針對(dui)具體(ti)的(de)網(wang)(wang)絡服(fu)務(wu));缺點是不(bu)能(neng)徹底防(fang)止地(di)(di)址欺(qi)騙,某些(xie)協(xie)議(yi)不(bu)適合于數據(ju)(ju)包(bao)(bao)過濾(lv)(例(li)如過濾(lv)器(qi)不(bu)能(neng)有(you)效地(di)(di)過濾(lv)UDP、RPC類協(xie)議(yi)),無法執(zhi)行某些(xie)安全策(ce)略(例(li)如審(shen)計和(he)報(bao)警(jing)),安全性較差(例(li)如:過濾(lv)器(qi)只能(neng)依據(ju)(ju)包(bao)(bao)頭信息進行過濾(lv),能(neng)對(dui)用戶身份(fen)進行驗(yan)證(zheng)),對(dui)網(wang)(wang)絡管理人(ren)員素質要求(qiu)高以及隨著過濾(lv)規則數目(mu)的(de)增加,性能(neng)會受到很大地(di)(di)影響等。
在包(bao)狀(zhuang)態檢(jian)測防火墻(qiang)的(de)內核(he)中,運行著狀(zhuang)態檢(jian)測引擎(Stateful Inspections Engine),它負責在對(dui)接(jie)(jie)收到(dao)的(de)數據包(bao)進行審核(he),當接(jie)(jie)收到(dao)的(de)數據包(bao)符(fu)合(he)訪問控制要(yao)求時,將該(gai)數據包(bao)傳(chuan)到(dao)高層進行應(ying)用級別和狀(zhuang)態的(de)審核(he),如果(guo)不符(fu)合(he)要(yao)求,則丟棄。
與包狀態檢測防火墻相比,深度包檢測防火墻不但要保留基本的網絡連接狀態,而且還要維持網絡的應用狀態。