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

當PC需要訪問Web服務器瀏覽網頁時,在防火墻上必須配置如下的一條規則,允許PC訪問Web服務器的報文通過。

在這條規則中,源端口處的*表示任意的端口,這是因為PC在訪問Web服務器時,它的操作系統決定了所使用的源端口。例如,對于windows操作系統來說,這個值可能是1024~65535范圍內任意的一個端口。這個值是不確定的,所以這里設定為任意端口。
配置了這條規則后,PC發出的報文就可以順利通過防火墻,到達Web服務器。然后Web服務器將會向PC發送回應報文,這個報文也要穿過防火墻才能到達PC。在狀態檢測防火墻出現之前,包過濾防火墻還必須配置如下所示的規則2,允許反方向的報文通過。

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

光說不練假把式,下面使用eNSP模擬器來搭建一個簡單的網絡環境,驗證防火墻上的狀態檢測機制。網絡拓撲如下:

基本配置
[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界面去配置,安全策略,如下圖

防火墻上只配置了一條規則:允許PC訪問Web服務器的報文通過。在PC上使用HttpClient程序訪問Web服務器,發現可以成功訪問:

在防火墻上使用display firewall session table命令查看會話表的信息,發現已經建立一條會話:
