防火墻三種類型
1、包過濾防火墻
包過濾是最早使用的一種防火墻技術(shù),它的第一代模型是“靜態(tài)包過濾”,使用包過濾技術(shù)的防火墻通常工作在OSI模型中的網(wǎng)絡(luò)層上,后來發(fā)展更新的“動(dòng)態(tài)包過濾”,簡(jiǎn)而言之,包過濾技術(shù)工作的方法就是基于各種頭部、協(xié)議、地址、端口、類型等信息進(jìn)行分析,并與預(yù)先設(shè)定好的防火墻過濾規(guī)則進(jìn)行核對(duì),一旦發(fā)現(xiàn)某個(gè)或多個(gè)部分與過濾規(guī)則匹配并且條件為“阻止”的時(shí)候,這個(gè)包會(huì)被丟棄。
2、應(yīng)用代理防護(hù)墻
由于包過濾技術(shù)無法提供完善的數(shù)據(jù)保護(hù)措施,而且一些特殊的報(bào)文攻擊僅僅使用過濾的方法并不能消除危害(如SYN攻擊、ICMP洪水等),代理防護(hù)墻應(yīng)運(yùn)而生,這種防火墻實(shí)際上就是一臺(tái)小型代用數(shù)據(jù)檢測(cè)過濾功能的透明代理服務(wù)器,但是它并不是單純?cè)谝粋€(gè)代理設(shè)備嵌入包過濾技術(shù),而是一種被稱為“應(yīng)用協(xié)議分析”的新技術(shù),它工作在OSI模型的最高層——應(yīng)用層。
3、狀態(tài)檢測(cè)防火墻
這是繼“包過濾”技術(shù)和“應(yīng)用代理”技術(shù)后發(fā)展的防火墻技術(shù),它通過采用一種被稱為“狀態(tài)監(jiān)視”的模塊,對(duì)網(wǎng)絡(luò)通信各個(gè)層次實(shí)現(xiàn)監(jiān)測(cè),并根據(jù)各種過濾規(guī)則作出安全策略。“安全監(jiān)視”技術(shù)在保留了對(duì)每個(gè)數(shù)據(jù)包的頭部、協(xié)議、地址、端口、類型等信息就那些分析的基礎(chǔ)上,進(jìn)一步發(fā)展了“會(huì)話過濾”功能,在每個(gè)鏈接建立時(shí),防護(hù)墻會(huì)對(duì)這個(gè)連接構(gòu)造一個(gè)會(huì)話狀態(tài),里面包含了這個(gè)連接數(shù)據(jù)包的所有信息,以后這個(gè)連接都基于這個(gè)狀態(tài)信息進(jìn)行。
狀態(tài)防火墻的優(yōu)勢(shì)
狀態(tài)檢測(cè)防火墻出現(xiàn)是防火墻發(fā)展歷史上里程碑的事件,而其所使用的狀態(tài)檢測(cè)和會(huì)話機(jī)制,目前已經(jīng)成為防火墻產(chǎn)品的基本功能,也是防火墻實(shí)現(xiàn)安全防護(hù)的基礎(chǔ)技術(shù)。
在狀態(tài)檢測(cè)防火墻出現(xiàn)之前,包過濾防火墻只根據(jù)設(shè)定好的靜態(tài)規(guī)則來判斷是否允許報(bào)文通過,它認(rèn)為報(bào)文都是無狀態(tài)的孤立個(gè)體,不關(guān)注報(bào)文產(chǎn)生的前因后果,這就要求包過濾防火墻必須針對(duì)每一個(gè)方向上的報(bào)文都配置一條規(guī)則,轉(zhuǎn)發(fā)效率低下而且容易帶來安全風(fēng)險(xiǎn)。
而狀態(tài)檢測(cè)防火墻的出現(xiàn)正好彌補(bǔ)了包過濾防火墻的這個(gè)缺陷。狀態(tài)檢測(cè)防火墻使用基于連接狀態(tài)的檢測(cè)機(jī)制,將通信雙方之間交互的屬于同一連接的所有報(bào)文都作為整個(gè)的數(shù)據(jù)流來對(duì)待。在狀態(tài)檢測(cè)防火墻看來,同一個(gè)數(shù)據(jù)流內(nèi)的報(bào)文不再是孤立的個(gè)體,而是存在聯(lián)系的。例如,為數(shù)據(jù)流的第一個(gè)報(bào)文建立會(huì)話,數(shù)據(jù)流內(nèi)的后續(xù)報(bào)文就會(huì)直接匹配會(huì)話轉(zhuǎn)發(fā),不需要再進(jìn)行規(guī)則的檢查,提高了轉(zhuǎn)發(fā)效率。
先看一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)環(huán)境,如下圖所示,PC和Web服務(wù)器位于不同的網(wǎng)絡(luò),分別與防火墻相連,PC與Web服務(wù)器之間的通信受到防火墻的控制。

當(dāng)PC需要訪問Web服務(wù)器瀏覽網(wǎng)頁時(shí),在防火墻上必須配置如下的一條規(guī)則,允許PC訪問Web服務(wù)器的報(bào)文通過。

在這條規(guī)則中,源端口處的*表示任意的端口,這是因?yàn)镻C在訪問Web服務(wù)器時(shí),它的操作系統(tǒng)決定了所使用的源端口。例如,對(duì)于windows操作系統(tǒng)來說,這個(gè)值可能是1024~65535范圍內(nèi)任意的一個(gè)端口。這個(gè)值是不確定的,所以這里設(shè)定為任意端口。
配置了這條規(guī)則后,PC發(fā)出的報(bào)文就可以順利通過防火墻,到達(dá)Web服務(wù)器。然后Web服務(wù)器將會(huì)向PC發(fā)送回應(yīng)報(bào)文,這個(gè)報(bào)文也要穿過防火墻才能到達(dá)PC。在狀態(tài)檢測(cè)防火墻出現(xiàn)之前,包過濾防火墻還必須配置如下所示的規(guī)則2,允許反方向的報(bào)文通過。

在規(guī)則2中,目的端口也設(shè)定為任意端口,因?yàn)槲覀儫o法確定PC訪問Web服務(wù)器時(shí)使用的源端口,要想使Web服務(wù)器回應(yīng)的報(bào)文都能順利穿過防火墻到達(dá)PC,只能將規(guī)則2中的目的端口設(shè)定為任意端口。
如果PC位于受保護(hù)的網(wǎng)絡(luò)中,這樣處理將會(huì)帶來很大的安全問題。規(guī)則2將去往PC的目的端口全部開放,外部的惡意攻擊者偽裝成Web服務(wù)器,就可以暢通無阻地穿過防火墻,PC將會(huì)面臨嚴(yán)重的安全風(fēng)險(xiǎn)。
接下來讓我們看一下狀態(tài)檢測(cè)防火墻怎么解決這個(gè)問題。還是以上面的網(wǎng)絡(luò)環(huán)境為例,首先我們還是需要在防火墻上設(shè)定規(guī)則1,允許PC訪問Web服務(wù)器的報(bào)文通過。當(dāng)報(bào)文到達(dá)防火墻后,防火墻允許報(bào)文通過,同時(shí)還會(huì)針對(duì)PC訪問Web服務(wù)器的這個(gè)行為建立會(huì)話(Session),會(huì)話中包含了PC發(fā)出的報(bào)文信息,如地址和端口等。
當(dāng)Web服務(wù)器回應(yīng)給PC的報(bào)文到達(dá)防火墻后,防火墻會(huì)把報(bào)文中的信息與會(huì)話中的信息進(jìn)行比對(duì),發(fā)現(xiàn)報(bào)文中的信息與會(huì)話中的信息相匹配,并且符合協(xié)議規(guī)范對(duì)后續(xù)包的定義,則認(rèn)為這個(gè)報(bào)文屬于PC訪問Web服務(wù)器行為的后續(xù)回應(yīng)報(bào)文,直接允許這個(gè)報(bào)文通過,如下圖所示。

光說不練假把式,下面使用eNSP模擬器來搭建一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)環(huán)境,驗(yàn)證防火墻上的狀態(tài)檢測(cè)機(jī)制。網(wǎng)絡(luò)拓?fù)淙缦拢?/p>
基本配置
[USG6000V1]interface GigabitEthernet 1/0/1
[USG6000V1-GigabitEthernet1/0/1]ip address 202.102.10.1 24
[USG6000V1]interface GigabitEthernet 1/0/0
[USG6000V1-GigabitEthernet1/0/0]ip address 192.168.1.1 24
[USG6000V1]firewall zone trust
[USG6000V1-zone-trust]add interface GigabitEthernet 1/0/0
[USG6000V1]firewall zone dmz
[USG6000V1-zone-dmz]add interface GigabitEthernet 1/0/1
配置安全策略
為了方便我這里建議使用web界面去配置,安全策略,如下圖

防火墻上只配置了一條規(guī)則:允許PC訪問Web服務(wù)器的報(bào)文通過。在PC上使用HttpClient程序訪問Web服務(wù)器,發(fā)現(xiàn)可以成功訪問:

在防火墻上使用display firewall session table命令查看會(huì)話表的信息,發(fā)現(xiàn)已經(jīng)建立一條會(huì)話:
