04 防火墻安全策略

思維導圖:

防火墻基礎原理
安全區(qū)域
防火墻安全區(qū)域產生背景
所有進出內網的流量應該都經過防火墻,而內外網天然就是分開的,所以需要安全區(qū)域控制
防火墻安全區(qū)域基本概念
安全區(qū)域(Security Zone):它是一個或多個接口的集合,是防火墻區(qū)別于路由器的主要特性。防火墻通過安全區(qū)域來劃分網絡、標識報文流動的“路線”,當報文在不同的安全區(qū)域之間流動時,才會觸發(fā)安全檢查。
相同區(qū)域不受限制,不同區(qū)域必須按照安全策略進行控制。
默認安全區(qū)域
華為防火墻產品默認提供了Trust、DMZ、Untrust和Local三個可配置的安全區(qū)域。
Trust區(qū)域
網絡的受信任程度高;
通常用來定義內部用戶所在的網絡。
DMZ區(qū)域
網絡的受信任程度中等;
通常用來定義內部服務器所在的網絡。
Untrust區(qū)域
網絡的受信任程度低;
通常用來定義Internet等不安全的網絡。
Local安全區(qū)域
防火墻上提供的Local區(qū)域,代表防火墻本身。

凡是由防火墻主動發(fā)出的報文均可認為是從Local區(qū)域中發(fā)出,凡是需要防火墻響應并處理(而不是轉發(fā))的報文均可認為是由Local區(qū)域接收。
Local區(qū)域中不能添加任何接口,但防火墻上所有業(yè)務接口本身都屬于Local區(qū)域。
由于Local區(qū)域的特殊性,在很多需要設備本身進行報文收發(fā)的應用中,需要開放對端所在安全區(qū)域與Local區(qū)域之間的安全策略。例如Telnet登錄、網頁登錄、接入SNMP網管等。
安全區(qū)域、受信任程度與優(yōu)先級
在華為防火墻上,每個安全區(qū)域都有一個唯一的優(yōu)先級,用1至100的數字表示,數字越大,則代表該區(qū)域內的網絡越可信。
默認安全區(qū)域受信任程度:Local > Trust > DMZ > Untrust;
用戶可以根據實際組網需要,自行創(chuàng)建安全區(qū)域并定義其優(yōu)先級。
優(yōu)先級local 100,Trust 85,DMZ 85,Untrust 5
安全策略
域間通信 - 安全策略
防火墻的基本作用是對進出網絡的訪問行為進行控制,保護特定網絡免受“不信任”網絡的攻擊,但同時還必須允許兩個網絡之間可以進行合法的通信。防火墻一般通過安全策略實現(xiàn)以上功能。
安全策略是由匹配條件(例如五元組、用戶、時間段等)和動作組成的控制規(guī)則,防火墻收到流量后,對流量的屬性(五元組、用戶、時間段等)進行識別,并將流量的屬性與安全策略的匹配條件進行匹配。如果所有條件都匹配,則此流量成功匹配安全策略。
流量匹配安全策略后,設備將會執(zhí)行安全策略的動作:
如果動作為“允許”,且沒有配置內容安全檢測,則允許流量通過;
如果動作為“允許”,且配置了內容安全檢測,則根據內容安全檢測的結論來判斷是否對流量進行放行;
如果動作為“禁止”,則禁止流量通過。
安全域間、安全策略與報文流動方向
安全域間是用來描述流量的傳輸通道,它是兩個“區(qū)域”之間的唯一“道路”。如果希望對經過這條通道的流量進行檢測,就必須在通道上設立“關卡”,如防火墻安全策略。
任意兩個安全區(qū)域都構成一個安全域間(Interzone),并具有單獨的安全域間視圖;
安全域間的數據流動具有方向性,包括入方向(Inbound)和出方向(Outbound)。

安全策略的匹配過程
防火墻默認原則:沒有明確允許的流量默認都會被禁止?
如果想要允許某流量通過,可以創(chuàng)建安全策略。一般針對不同的業(yè)務流量,設備上會配置多條安全策略。
安全策略匹配過程如下:

同一安全區(qū)域內的流量和不同安全區(qū)域間的流量受缺省安全策略控制的情況分別為:
對于不同安全區(qū)域間的流量(包括但不限于從防火墻發(fā)出的流量、防火墻接收的流量、不同安全區(qū)域間傳輸的流量),受缺省安全策略控制;
對于同一安全區(qū)域內的流量,默認不受缺省安全策略控制,缺省轉發(fā)動作為允許。如果希望同域流量受缺省安全策略控制,則需要開啟缺省安全策略控制同一安全區(qū)域內流量的開關。開啟后,缺省安全策略的配置將對同一安全區(qū)域內的流量生效,包括缺省安全策略的動作、日志記錄功能等。
缺省安全策略可以修改默認動作、日志記錄功能(包括策略命中日志、會話日志和流量日志)。
安全策略配置舉例
需求描述:
某公司在網絡邊界處部署了防火墻作為安全網關。為了使私網中172.16.1.0/24網段的用戶可以正常訪問Internet,需要在防火墻上配置相應安全策略;
在此網絡中172.16.1.1、172.16.1.2和172.16.1.3的3臺PC對安全性要求較高,不允許上網。

配置思路:
管理員應首先明確需要劃分哪幾個安全區(qū)域,接口如何連接,分別加入哪些安全區(qū)域;
管理員選擇可以根據“源地址”或“用戶”來區(qū)分企業(yè)員工;
如果想允許某種網絡訪問,則配置安全策略的動作為“允許”;如果想禁止某些地址訪問,則配置安全策略的動作為“禁止”;
將以上步驟規(guī)劃出的安全策略的參數一一列出,并將所有安全策略按照先精確(條件細化的、特殊的策略)再寬泛(條件為大范圍的策略)的順序排序。在配置安全策略時需要按照此順序進行配置。
先創(chuàng)建拒絕特殊的3個IP地址訪問Internet的安全策略規(guī)則。(先精確)
[FW] security-policy
[FW-policy-security] rule name policy1
[FW-policy-security-rule-policy1] source-zone trust
[FW-policy-security-rule-policy1] destination-zone untrust
[FW-policy-security-rule-policy1] source-address 172.16.1.1 32
[FW-policy-security-rule-policy1] source-address 172.16.1.2 32
[FW-policy-security-rule-policy1] source-address 172.16.1.3 32
[FW-policy-security-rule-policy1] action deny
再創(chuàng)建允許172.16.1.0/24網段訪問Internet的安全策略規(guī)則。(再寬泛)
[FW] security-policy
[FW-policy-security] rule name policy2
[FW-policy-security-rule-policy2] source-zone trust
[FW-policy-security-rule-policy2] destination-zone untrust
[FW-policy-security-rule-policy2] source-address 172.16.1.0 24
[FW-policy-security-rule-policy2] action permit
狀態(tài)檢測和會話機制
狀態(tài)檢測機制
狀態(tài)檢測防火墻使用基于連接狀態(tài)的檢測機制,將通信雙方之間交互的屬于同一連接的所有報文都作為整個數據流來對待。在狀態(tài)檢測防火墻看來,同一個數據流內的報文不再是孤立的個體,而是存在聯(lián)系的。
狀態(tài)檢測機制開啟狀態(tài)下,只有首包通過設備才能建立會話表項,后續(xù)包直接匹配會話表項進行轉發(fā)。
狀態(tài)檢測機制關閉狀態(tài)下,即使首包沒有經過設備,后續(xù)包只要通過設備也可以生成會話表項。
在報文來回路徑不一致的組網環(huán)境中,防火墻可能只會收到通信過程中的后續(xù)報文。通過ASPF解決。
會話機制
防火墻會將屬于同一連接的所有報文作為一個整體的數據流(會話)來對待,會話表是用來記錄TCP、UDP、ICMP等協(xié)議連接狀態(tài)的表項,是防火墻轉發(fā)報文的重要依據。
會話表項中的五元組信息
會話是通信雙方的連接在防火墻上的具體體現(xiàn),代表兩者的連接狀態(tài),一條會話就表示通信雙方的一個連接。
五元組:協(xié)議、源地址、源端口、目的地址和目的端口
通過會話中的五元組信息可以唯一確定通信雙方的一條連接;
防火墻將要刪除會話的時間稱為會話的老化時間;
一條會話表示通信雙方的一個連接,多條會話的集合叫做會話表。

防火墻為各種協(xié)議設定了會話老化機制。當一條會話在老化時間內沒有被任何報文匹配,則會被從會話表中刪除。這種機制可以避免防火墻的設備資源被大量無用、陳舊的會話表項消耗。但是對于某些特殊業(yè)務中,一條會話的兩個連續(xù)報文可能間隔時間很長。例如:
用戶通過FTP下載大文件,需要間隔很長時間才會在控制通道繼續(xù)發(fā)送控制報文;
用戶需要查詢數據庫服務器上的數據,這些查詢操作的時間間隔遠大于TCP的會話老化時間。
在以上的場景中,如果會話表項被刪除,則對應的業(yè)務就會中斷。長連接(Long Link)機制可以給部分連接設定超長的老化時間,有效解決這個問題。
會話表項中的其他信息
在防火墻上通過display firewall session table命令可以看到正常建立的會話。
<FW> display firewall session table
Current Total Sessions : 1
telnet VPN:public --> public 192.168.3.1:2855-->192.168.3.2:23
在防火墻上通過display firewall session table verbose可以顯示會話表詳細信息。由于使用了verbose參數,可以看到除了五元組信息之外的其他信息。
?display firewall session table verbose
? Current Total Sessions :? 1? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? icmp? VPN:public --> public? ID: a58f3fe91023015aa15344e75b??????????????????
? Zone: local--> trust? TTL: 00:00:20? Left: 00:00:09*
? Interface: GigabitEthernet0/0/0? NextHop: 10.1..2? MAC: 4437-e697-78fe
? <--packets:3 bytes:252?? -->packets:3 bytes:252??????????????????????????????
? 10.1.1.1:43982[1.1.1.1:2107]-->10.1.2.2:2048
display firewall session table命令輸出信息描述:
current total sessions:當前會話表數統(tǒng)計;
telnet:協(xié)議名稱,舉例中為telnet;
VPN:public-->public: VPN實例名稱,表示方式為:源方向-->目的方向;
192.168.3.1:2855-->192.168.3.2:23:會話表信息。
display firewall session table verbose命令輸出信息描述:
Current Total Sessions:當前會話表數統(tǒng)計;
Icmp:協(xié)議名稱,舉例中為icmp;
VPN:public-->public: VPN實例名稱,表示方式為:源方向-->目的方向;
ID:當前會話ID;
Zone: local--> trust:會話的安全區(qū)域,表示方式為:源安全區(qū)域-->目的安全區(qū)域;
TTL:該會話表項總的生存時間;
Left:該會話表項剩余生存時間;
Interface:正向報文的出接口;
NextHop:正向報文的下一跳IP地址。
ASPF技術
ASPF技術產生背景
在TCP/IP模型中,應用層提供常見的網絡應用服務,如Telnet、HTTP、FTP等協(xié)議。而應用層協(xié)議根據占用的端口數量可以分為單通道應用層協(xié)議與多通道應用層協(xié)議。
單通道應用層協(xié)議:通信過程中只需占用一個端口的協(xié)議。例如: Telnet只需占用23端口,HTTP只需占用80端口;
多通道應用層協(xié)議:通信過程中需占用兩個或兩個以上端口的協(xié)議。例如:FTP被動模式下需要占用21號端口以及一個隨機端口。
傳統(tǒng)包過濾防火墻針對多通道應用層協(xié)議訪問控制的不足:
傳統(tǒng)的包過濾防火墻只能實現(xiàn)簡單的訪問控制;
傳統(tǒng)的包過濾防火墻只能阻止一些使用固定端口的單通道協(xié)議的應用數據。
ASPF在多通道應用協(xié)議的應用
ASPF(Application Specific Packet Filter)是針對應用層的包過濾。
通過檢測協(xié)商報文的應用層攜帶的地址和端口信息,自動生成相應的Server-map表,當數據通道的首包經過防火墻時,防火墻根據Server-map生成一條session,用于放行后續(xù)數據通道的報文,相當于自動創(chuàng)建了一條精細的“安全策略”。對于特定應用協(xié)議的所有連接,每一個連接狀態(tài)信息都將被ASPF維護并用于動態(tài)的決定數據包是否被允許通過防火墻或丟棄。
FTP主動模式的ASPF
用FTP主動模式為例,Server-map表是通過ASPF功能自動生成的精細安全策略,是防火墻上的“隱形通道”。

FTP主動模式下,客戶端使用隨機端口xxxx向服務器的21端口發(fā)起連接請求建立控制通道,然后使用PORT命令協(xié)商兩者建立數據通道的端口號,協(xié)商得出的端口是yyyy。然后服務器主動向客戶端的yyyy端口發(fā)起連接請求,建立數據通道。數據通道建立成功后再進行數據傳輸。
在配置安全策略時,如果只配置了允許客戶端訪問服務器的21端口的安全策略,即控制連接能成功建立。但是當服務器訪問客戶端yyyy端口的報文到達防火墻后,對于防火墻來說,這個報文不是前一條連接的后續(xù)報文,而是代表著一條新的連接。要想使這個報文順利到達FTP客戶端,防火墻上就必須配置了安全策略允許其通過,如果沒有配置服務器到客戶端這個方向上的安全策略,該報文無法通過防火墻,導致數據通道建立失敗。結果是用戶能訪問服務器,但無法請求數據。
由于PORT命令的應用層信息中攜帶了客戶端的IP地址和向服務器隨機開放的端口,防火墻通過分析PORT命令的應用層信息,提前預測到后續(xù)報文的行為方式,根據應用層信息中的IP和端口創(chuàng)建Server-map表。服務器向客戶端發(fā)起數據連接的報文到達防火墻后命中該Server-map表項,不再受安全策略的控制。
Server-map表與會話表的關系
Server-map表與會話表的關系如下:
Server-map表記錄了應用層數據中的關鍵信息,報文命中該表后,不再受安全策略的控制;
會話表是通信雙方連接狀態(tài)的具體體現(xiàn);
Server-map表不是當前的連接信息,而是防火墻對當前連接分析后得到的即將到來報文的預測。
防火墻接收報文的處理過程如圖所示:
防火墻收到報文先檢查是否命中會話表;
如果沒有命中則檢查是否命中Server-map表;
命中Server-map表的報文不受安全策略控制;
防火墻最后為命中Server-map表的數據創(chuàng)建會話表。
Server-map表配置舉例

配置ASPF
[FW] firewall interzone trust dmz
[FW-interzone-trust-dmz] detect ftp
自動生成Server-map表項
?display firewall server-map
?Type: ASPF,? 1.1.1.254 -> 10.2.0.254:2097,? Zone:---
?Protocol: tcp(Appro: ftp-data),? Left-Time:00:00:10
?Vpn: public -> public
后續(xù)報文匹配會話表轉發(fā)
?display firewall session table
?ftp? VPN: public --> public? 10.2.0.254:2095 --> 1.1.1.254:21
?ftp-data? VPN: public --> public? 1.1.1.254:20 --> 10.2.0.254:2097
防火墻在網絡安全方案中的應用場景
防火墻在校園出口安全方案中的應用場景
校園網從網絡層到應用層的各個層面都面臨著不同的安全威脅:
網絡邊界防護
內容安全防護
如圖所示,防火墻作為安全網關部署在校園網出口:
提供內、外網互訪的安全隔離和防護。例如:提供傳統(tǒng)的基于IP地址的安全策略制定和網絡訪問控制;
同時提供基于用戶的訪問控制和行為溯源。

防火墻在云計算網絡中的應用
隨著云計算的迅猛發(fā)展,企業(yè)可以便捷地接入云計算網絡,獲取服務器、存儲、應用等資源,減少構建IT基礎設施的投資成本,大大加快了信息化進程。
如圖所示,云計算網絡中部署防火墻可以實現(xiàn):
不同的外網企業(yè)用戶訪問虛擬機時,相互之間不能影響,業(yè)務隔離;
外網企業(yè)用戶能夠通過公網地址訪問企業(yè)內部虛擬機和Portal系統(tǒng);
提高業(yè)務可靠性,不能因為一臺設備出現(xiàn)故障而導致業(yè)務中斷。
