17-ASPF配置
本章節下載: 17-ASPF配置 (354.44 KB)
目 錄
為了解決包過濾防火牆存在的問題,提出了狀態防火牆——ASPF(Advanced Stateful Packet Filter,高級狀態包過濾)的概念。
ASPF能夠實現的主要功能有:
· 應用層協議檢測:檢查應用層協議信息,如報文的協議類型和端口號等信息,並且監控每一個連接的應用層協議狀態。對於所有連接,每一個連接狀態信息都將被ASPF維護,並用於動態地決定數據包是否被允許通過防火牆進入內部網絡,以阻止惡意的入侵。
· 傳輸層協議檢測:檢測傳輸層協議信息,包括TCP協議、UDP協議、UDP-Lite協議、SCTP協議、Raw IP協議、ICMP協議、ICMPv6協議和DCCP協議。例如TCP/UDP檢測,能夠根據源、目的地址及端口號決定TCP或UDP報文是否可以通過防火牆進入內部網絡。
· ICMP差錯報文檢測:正常ICMP差錯報文中均攜帶有本報文對應連接的相關信息,根據這些信息可以匹配到相應的連接。如果匹配失敗,則根據當前配置決定是否丟棄該ICMP報文。
· TCP連接首包檢測:對TCP連接的首報文進行檢測,查看是否為SYN報文,如果不是SYN報文則根據當前配置決定是否丟棄該報文。缺省情況下,不丟棄非SYN首包,適用於不需要嚴格TCP協議狀態檢查的組網場景。例如當防火牆設備首次加入網絡時,網絡中原有TCP連接的非首包在經過新加入的設備時如果被丟棄,會中斷已有的連接,造成不好的用戶體驗,因此建議暫且不丟棄非SYN首包,等待網絡拓撲穩定後,再開啟非SYN首包丟棄功能。
在網絡邊界,ASPF和包過濾防火牆協同工作,包過濾防火牆負責按照ACL規則進行報文過濾(阻斷或放行),ASPF負責對已放行報文進行信息記錄,使已放行的報文的回應報文可以正常通過配置了包過濾防火牆的接口。因此,ASPF能夠為企業內部網絡提供更全麵的、更符合實際需求的安全策略。
ASPF將應用層協議劃分為:
· 單通道協議:完成一次應用的全過程中,隻有一個連接參與數據交互,如SMTP、HTTP。
· 多通道協議:完成一次應用的全過程中,需要多個連接配合,即控製信息的交互和數據的傳送需要通過不同的連接完成的,如FTP。
如果設備連接了內部網絡和外部網絡,並且要通過部署ASPF來保護內部網絡中的主機和服務器,則設備上與內部網絡連接的接口就稱為內部接口,與外部網絡相連的接口就稱為外部接口。
若需要保護內部網絡,則可以將ASPF應用於設備外部接口的出方向或者應用於設備內部接口的入方向。
安全域間實例用於指定ASPF需要檢測的業務流的源安全域和目的安全域,它們分別描述了經過網絡設備的業務流的首個數據包要進入的安全域和要離開的安全域。關於安全域的詳細介紹,請參見“安全配置指導”中的“安全域”。
如圖1-1所示,為了保護內部網絡,可以在邊界設備上配置訪問控製列表,以允許內部網絡的主機訪問外部網絡,同時拒絕外部網絡的主機訪問內部網絡。但是訪問控製列表會將用戶發起連接後返回的報文過濾掉,導致連接無法正常建立。利用ASPF的應用層協議檢測可以解決此問題。
當在設備上配置了應用層協議檢測後,ASPF可以檢測每一個應用層的連接,具體檢測原理如下:
· 對於單通道協議,ASPF在檢測到第一個向外發送的報文時創建一個會話表項。該會話表項中記錄了對應的正向報文信息和反向報文信息,用於維護會話狀態並檢測會話狀態的轉換是否正確。匹配某條會話表項的所有報文都將免於接受靜態包過濾策略的檢查。
· 對於多通道協議,ASPF除了創建會話表項之外,還會根據協議的協商情況,創建一個或多個關聯表項,用於關聯屬於同一個應用業務的不同會話。關聯表項在多通道協議協商的過程中創建,在多通道協議協商完成後刪除。關聯表項主要用於匹配會話首報文,使已通過協商的會話報文可免於接受靜態包過濾策略的檢查。
單通道應用層協議(如HTTP)的檢測過程比較簡單,當發起連接時建立會話表項,連接刪除時隨之刪除會話表項即可。下麵以FTP檢測為例說明多通道應用層協議檢測的過程。
圖1-2 FTP檢測過程示意圖
如圖1-2所示,FTP連接的建立過程如下:假設FTP client以1333端口向FTP server的21端口發起FTP控製通道的連接,通過協商決定在FTP server的20端口與FTP Client的1600端口之間建立數據通道,並由FTP server發起數據連接,數據傳輸超時或結束後數據通道刪除。
FTP檢測在FTP連接建立到拆除過程中的處理如下:
(1) 檢查FTP client向FTP server發送的IP報文,確認為基於TCP的FTP報文。檢查端口號,確認該連接為FTP client與FTP server之間的控製連接,建立會話表項。
(2) 檢查FTP控製連接報文,根據會話表項進行TCP狀態檢測。解析FTP指令,如果包含數據通道建立指令,則創建關聯表項描述對應數據連接的特征。
(3) 對於返回的FTP控製連接報文,根據會話表項進行TCP狀態檢測,檢測結果決定是否允許報文通過。
(4) FTP數據連接報文通過設備時,將會觸發建立數據連接的會話表項,並刪除所匹配的關聯表項。
(5) 對於返回的FTP數據連接報文,則通過匹配數據連接的會話表項進行TCP狀態檢測,檢查結果決定是否允許報文通過。
(6) 數據連接結束時,數據連接的會話表項將被刪除。FTP連接刪除時,控製連接的會話表項也會被刪除。
傳輸層協議檢測通過建立會話表項記錄報文的傳輸層信息,如源地址、目的地址及端口號等,達到動態放行報文的目的。
傳輸層協議檢測要求返回到ASPF外部接口的報文要與之前從ASPF外部接口發出去的報文完全匹配,即源地址、目的地址及端口號完全對應,否則返回的報文將被丟棄。因此對於FTP這樣的多通道應用層協議,在不配置應用層檢測而直接配置TCP檢測的情況下會導致數據連接無法建立。
若配置了detect命令,則對報文的應用層協議進行ASPF檢查;若沒有配置detect命令,則對報文的傳輸層協議和應用層協議FTP進行ASPF檢查。
如果設備上其他業務模塊開啟ALG功能時,即便未配置多通道應用層協議的ASPF檢測,多通道協議的數據連接也可以建立成功。例如:開啟DPI相關業務功能時會打開ALG功能,此時DPI處理的多通道協議(如SIP等)報文進行ASPF處理時,即便未配置SIP協議的ASPF檢測,SIP協議的數據連接也可以建立成功;開啟NAT ALG功能時,即便未配置多通道協議的ASPF檢測,多通道協議的數據連接也可以建立成功。但是在設備上未配置DPI(Deep Packet Inspection,深度報文檢測)相關業務功能隻配置了ASPF功能的情況下,必須配置detect命令,否則會導致數據連接無法建立。detect命令支持的應用層協議中除HTTP、SMTP和TFTP之外的所有應用層協議均為多通道應用層協議。
ASPF策略默認已經開啟對傳輸層協議的檢測,無需進行配置,也不能修改。
可以根據需要在ASPF策略中配置應用層協議檢測。目前,設備對於部分應用層協議(DNS、FTP、H323、HTTP、SCCP、SIP、SMTP),還支持進行協議狀態合法性檢查功能,對不符合協議狀態的報文進行丟棄。對於其它應用層協議,僅進行連接狀態信息的維護,不做協議狀態合法性檢查。
ASPF配置任務如下:
(1) 配置ASPF策略
(2) 應用ASPF策略
請選擇以下一項任務進行配置:
(3) (可選)開啟域間策略丟包時發送ICMP差錯報文功能
(4) (可選)開啟日誌的實時發送功能
(1) 進入係統視圖。
system-view
(2) 創建ASPF策略,並進入ASPF策略視圖。
aspf policy aspf-policy-number
創建ASPF策略後,係統默認開啟對傳輸層協議的檢測,無需進行配置,也不能修改。
(3) (可選)配置對應用層協議的ASPF檢測。
detect { dns [ action { drop | logging } * ] | { ftp | h323 | http | sccp | sip | smtp } [ action drop ] | gtp | ils | mgcp | nbt | pptp | rsh | rtsp | sqlnet | tftp | xdmcp }
缺省情況下,配置了應用層協議FTP的ASPF檢測。
配置action參數時,ASPF還會對應用層協議進行協議狀態合法性檢查,對不符合協議狀態的報文執行所配置的相應動作。
(4) (可選)開啟ICMP差錯報文丟棄功能。
icmp-error drop
缺省情況下,不丟棄ICMP差錯報文。
(5) (可選)開啟非SYN的TCP首報文丟棄功能。
tcp syn-check
缺省情況下,不丟棄非SYN的TCP首報文。
隻有將定義好的ASPF策略應用到接口的出或入方向上,才能對通過接口的特定方向的流量進行檢測。在處理入接口報文時需要查找對應接口入方向的策略;在處理出接口報文時需要查找對應接口出方向的策略。如果接口應用了ASPF策略,所有進入或離開該接口的報文都需要與會話表項進行匹配,查找不到與之匹配的會話表項時會觸發創建會話表。
如果ASPF與包過濾防火牆協同工作,可以在外部接口或內部接口的入方向或出方向上配置特定的ASPF和包過濾策略,根據特定配置,可以拒絕外部網絡上的用戶對內部網絡的主動訪問,但內部網絡的用戶訪問外部網絡時,返回的報文可以按照外部接口出方向或內部接口入方向上的ASPF配置進行ASPF檢測。
由於ASPF對於應用層協議狀態的保存和維護都是基於接口的,因此在實際應用中,必須保證報文入口的一致性,即必須保證連接發起方發送的報文和響應端返回的報文經過同一接口。
(1) 進入係統視圖。
system-view
(2) 進入接口視圖。
interface interface-type interface-number
(3) 在接口上應用ASPF策略。
aspf apply policy aspf-policy-number { inbound | outbound }
缺省情況下,接口上沒有應用ASPF策略。
隻有將定義好的ASPF策略應用到安全域間實例上,才能對通過安全域間實例的流量進行檢測。如果安全域間實例上應用了ASPF策略,所有通過該域間實例的報文都需要與會話表項進行匹配,查找不到與之匹配的會話表項並且符合包過濾放行條件時會觸發創建會話表。
在域間實例上ASPF必須與包過濾防火牆協同工作:通過在域間實例上應用包過濾策略,可以允許源安全域的用戶主動訪問目的安全域所連接網絡;通過在域間實例上應用ASPF策略,由ASPF策略對源安全域用戶訪問目的安全域的報文以及對應的反向報文進行檢測和放行。
(1) 進入係統視圖。
system-view
(2) 進入安全域間實例視圖。
zone-pair security source source-zone-name destination destination-zone-name
關於安全域間實例的具體配置,請參見“安全命令參考”中的“安全域”。
(3) 在安全域間實例上應用ASPF策略。
aspf apply policy aspf-policy-number
缺省情況下,安全域間實例上應用了一個缺省的ASPF策略,該策略支持對所有傳輸層協議和FTP協議報文進行ASPF檢測,但是ICMP差錯報文檢查功能和非SYN的TCP首報文丟棄功能處於關閉狀態。
缺省情況下,設備在安全域間實例下配置安全域間策略,丟棄不符合策略的報文,但不發送ICMP差錯報文,這樣可以減少網絡上的無用報文,節約帶寬。
使用traceroute功能時用到ICMP差錯報文,需要開啟發送ICMP差錯報文的功能。
(1) 進入係統視圖。
system-view
(2) 開啟域間策略丟包時發送ICMP差錯報文功能。
aspf icmp-error reply
缺省情況下,在域間策略丟包時,設備不發送ICMP差錯報文。
日誌實時發送功能僅對對象策略和包過濾模塊的日誌發送有效。
日誌的發送方式支持如下兩種:
· 緩存發送方式:同一數據流的首報文匹配相關策略生成並發送日誌後,設備緩存此日誌,同時啟動發送日誌的時間間隔定時器,隻有時間間隔到達後,才會判斷是否繼續發送此日誌。在此時間間隔內若有流量匹配此日誌,則發送日誌,若沒有則刪除緩存的此日誌。日誌緩存數目達到上限後,新增數據流匹配相關策略時不能生成日誌。日誌發送時間間隔缺省為5分鍾,且不能修改。
· 實時發送方式:同一數據流的首報文匹配相關策略生成並發送日誌後,設備不緩存此日誌,因此這種方式無日誌數目的限製。對於一條不間斷的流量,若匹配的相關策略允許報文通過,則設備僅發送一次日誌,若匹配的策略拒絕報文通過,則設備將對此條數據流的每個報文均發送一次日誌。
有關對象策略和包過濾開啟記錄日誌功能的詳細介紹,請參見各自模塊的相關配置介紹。
(1) 進入係統視圖。
system-view
(2) 開啟日誌的實時發送功能。
aspf log sending-realtime enable
缺省情況下,日誌的實時發送功能處於關閉狀態,使用緩存方式發送。
在完成上述配置後,在任意視圖下執行display命令可以顯示配置後ASPF的運行情況,通過查看顯示信息驗證配置的效果。
在用戶視圖下執行reset命令可以清除ASPF的統計信息。
表1-1 ASPF顯示和維護
操作 |
命令 |
查看ASPF策略配置信息及應用ASPF策略的信息 |
display aspf all |
查看接口上的ASPF策略信息 |
display aspf interface |
查看ASPF策略的配置信息 |
display aspf policy { aspf-policy-number | default } |
查看ASPF的會話表信息 |
(獨立運行模式) display aspf session [ ipv4 | ipv6 ] [ verbose ] (IRF模式) display aspf session [ ipv4 | ipv6 ] [ slot slot-number ] [ verbose ] |
刪除ASPF的會話表 |
(獨立運行模式) reset aspf session [ ipv4 | ipv6 ] (IRF模式) reset aspf session [ ipv4 | ipv6 ] [ slot slot-number ] |
Router A為連接內部網絡與外部網絡的邊界設備,內部網絡中的本地用戶需要訪問外部網絡提供的FTP服務。要求配置ASPF策略,檢測通過Router A的FTP流量。如果該報文是內部網絡用戶發起的FTP連接的返回報文,則允許其通過Router A進入內部網絡,其它報文被禁止。
圖1-3 檢測FTP應用的ASPF配置組網圖
# 配置ACL 3111,定義規則:拒絕所有IP流量進入內部網絡。
<RouterA> system-view
[RouterA] acl advanced 3111
[RouterA-acl-ipv4-adv-3111] rule deny ip
[RouterA-acl-ipv4-adv-3111] quit
# 創建ASPF策略1,配置檢測應用層協議FTP。
[RouterA] aspf policy 1
[RouterA-aspf-policy-1] detect ftp
[RouterA-aspf-policy-1] quit
# 在接口GigabitEthernet1/0/1的入方向上應用包過濾策略,拒絕所有IP流量進入內部網絡。
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] packet-filter 3111 inbound
# 在接口GigabitEthernet1/0/1的出方向上應用ASPF策略,ASPF會為內部網絡和外部網絡之間的FTP連接創建會話表項,並允許匹配該表項的外部網絡返回報文進入內部網絡。
[RouterA-GigabitEthernet1/0/1] aspf apply policy 1 outbound
以上配置完成後,從Host向Server發起的FTP連接可正常建立,而從外部網絡發起連接的報文則無法進入內部網絡。在Router A上可以查看到已經建立的ASPF會話。
<RouterA> display aspf session ipv4
Slot 0:
Initiator:
Source IP/port: 192.168.1.2/1877
Destination IP/port: 2.2.2.11/21
VPN instance/VLAN ID/INLINE ID: -/-/-
Protocol: TCP(6)
Inbound interface: GigabitEthernet1/0/1
Total sessions found: 1
Router A為連接內部網絡與外部網絡的邊界設備,內部網絡中的本地用戶需要訪問外部網絡。為避免來自外部網絡的ICMP和SYN報文的惡意攻擊,要求在Router A上配置ASPF策略,實現ICMP差錯報文檢測及TCP非SYN首報文丟棄功能。
圖1-4 檢測ICMP和SYN報文的ASPF配置組網圖
# 配置ACL 3111,定義規則:拒絕所有IP流量進入內部網絡。
<RouterA> system-view
[RouterA] acl advanced 3111
[RouterA-acl-ipv4-adv-3111] rule deny ip
[RouterA-acl-ipv4-adv-3111] quit
# 創建ASPF策略1。
[RouterA] aspf policy 1
# 設置ASPF策略1丟棄ICMP差錯報文。
[RouterA-aspf-policy-1] icmp-error drop
# 設置ASPF策略1丟棄非SYN的TCP首報文。
[RouterA-aspf-policy-1] tcp syn-check
# 配置ASPF策略1檢測應用層協議FTP。(此處僅為示例,可根據實際組網配置需要檢測的協議)
[RouterA-aspf-policy-1] detect ftp
[RouterA-aspf-policy-1] quit
# 在接口GigabitEthernet1/0/1的入方向上應用包過濾策略,拒絕所有IP流量進入內部網絡。
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] packet-filter 3111 inbound
# 在接口GigabitEthernet1/0/1的出方向上應用ASPF策略。
[RouterA-GigabitEthernet1/0/1] aspf apply policy 1 outbound
[RouterA-GigabitEthernet1/0/1] quit
# 查看策略號為1的ASPF策略的配置信息。
[RouterA] display aspf policy 1
ASPF policy configuration:
Policy number: 1
ICMP error message check: Enabled
TCP SYN packet check: Enabled
Inspected protocol Action
FTP None
通過以上配置,Router A能夠識別出來自網絡中偽造的ICMP差錯報文,可以避免ICMP的惡意攻擊,而且非SYN報文的TCP首包也將被丟棄。
在如圖1-5所示的一種常見的H.323典型組網應用中,Router A為連接內部網絡與外部網絡的邊界設備,外部網絡中的Gateway B需要訪問內部網絡中的H.323 GateKeeper,並通過GateKeeper的協助,與內網中的H.323端點Gateway A建立呼叫連接。要求配置ASPF策略,檢測通過Router A的H.323協議報文,允許外部網絡設備主動訪問內部網絡的GateKeeper,並通過與其協商進而實現訪問Gateway A,其它協議的外部網絡報文均被禁止。
圖1-5 ASPF支持H.323配置組網圖
# 配置ACL 3200,定義規則:拒絕所有除訪問GateKeeper之外的IP流量進入內部網絡。
<RouterA> system-view
[RouterA] acl advanced 3200
[RouterA-acl-ipv4-adv-3200] rule 0 permit ip destination 192.168.1.2 0
[RouterA-acl-ipv4-adv-3200] rule 5 deny ip
[RouterA-acl-ipv4-adv-3200] quit
# 創建ASPF策略1,配置檢測應用層協議H.323。
[RouterA] aspf policy 1
[RouterA-aspf-policy-1] detect h323
[RouterA-aspf-policy-1] quit
# 在接口GigabitEthernet1/0/1的入方向上應用包過濾策略,拒絕所有除訪問GateKeeper之外的流量進入內部網絡。
[RouterA] interface gigabitethernet 1/0/1
[RouterA-GigabitEthernet1/0/1] packet-filter 3200 inbound
# 在接口GigabitEthernet1/0/1的入方向上應用ASPF策略,ASPF會為內部網絡和外部網絡之間的H.323連接創建會話表項,並允許匹配該表項的外部網絡返回報文進入內部網絡。
[RouterA-GigabitEthernet1/0/1] aspf apply policy 1 inbound
[RouterA-GigabitEthernet1/0/1] quit
以上配置完成後,從Gateway B向GateKeeper發起的H.323連接以及從Gateway B向Gateway A發起的H323連接均可正常建立,但外部網絡發起的其它協議的報文則無法進入內部網絡。在Router A上可以查看到已經建立的ASPF會話。
[RouterA] display aspf session ipv4
Slot 0:
Initiator:
Source IP/port: 1.1.1.111/33184
Destination IP/port: 192.168.1.3/32828
VPN instance/VLAN ID/INLINE ID: -/-/-
Protocol: UDP(17)
Inbound interface: GigabitEthernet1/0/1
Initiator:
Source IP/port: 1.1.1.111/1719
Destination IP/port: 192.168.1.2/1719
VPN instance/VLAN ID/INLINE ID: -/-/-
Protocol: UDP(17)
Inbound interface: GigabitEthernet1/0/1
Initiator:
Source IP/port: 1.1.1.111/3521
Destination IP/port: 192.168.1.2/20155
VPN instance/VLAN ID/INLINE ID: -/-/-
Protocol: TCP(6)
Inbound interface: GigabitEthernet1/0/1
Initiator:
Source IP/port: 1.1.1.111/33185
Destination IP/port: 192.168.1.3/32829
VPN instance/VLAN ID/INLINE ID: -/-/-
Protocol: UDP(17)
Inbound interface: GigabitEthernet1/0/1
Initiator:
Source IP/port: 1.1.1.111/3688
Destination IP/port: 192.168.1.2/1720
VPN instance/VLAN ID/INLINE ID: -/-/-
Protocol: TCP(6)
Inbound interface: GigabitEthernet1/0/1
Total sessions found: 5
Router為連接內部網絡與外部網絡的邊界設備,內部網絡中的本地用戶需要訪問外部網絡提供的應用(例如FTP)服務。要求配置ASPF策略,檢測通過Router的流量。如果該報文是內部網絡用戶發起的應用(例如FTP)連接的返回報文,則允許其通過Router進入內部網絡,其它外部主動訪問內部網絡的報文被禁止。
圖1-6 檢測應用的ASPF配置組網圖
# 配置ACL 3500,定義規則:允許內部IP流量訪問外部網絡(如果隻允許某種應用的報文通過,可以配置更細化的rule)。
<Router> system-view
[Router] acl advanced 3500
[Router-acl-ipv4-adv-3500] rule permit ip
[Router-acl-ipv4-adv-3500] quit
# 向安全域Trust中添加三層接口GigabitEthernet1/0/2。
[Router] security-zone name trust
[Router-security-zone-Trust] import interface gigabitethernet 1/0/2
[Router-security-zone-Trust] quit
# 向安全域Untrust中添加三層接口GigabitEthernet1/0/1。
[Router] security-zone name untrust
[Router-security-zone-Untrust] import interface gigabitethernet 1/0/1
[Router-security-zone-Untrust] quit
# 創建ASPF策略1,配置檢測應用層協議FTP。
[Router] aspf policy 1
[Router-aspf-policy-1] detect ftp
[Router-aspf-policy-1] quit
# 在安全域間實例上應用包過濾策略,放行內部IP流量訪問外部網絡。
[Router] zone-pair security source trust destination untrust
[Router-zone-pair-security-Trust-Untrust] packet-filter 3500
# 在安全域間實例上應用ASPF策略,ASPF會為內部網絡和外部網絡之間的符合包過濾策略的連接創建會話表項,並允許匹配該表項的外部網絡返回報文進入內部網絡。
[Router-zone-pair-security-Trust-Untrust] aspf apply policy 1
[Router-zone-pair-security-Trust-Untrust] quit
以上配置完成後,從Host向Server發起的FTP連接可正常建立,而從外部網絡發起連接的報文則無法進入內部網絡。在Router上可以查看到已經建立的ASPF會話。
[Router] display aspf session ipv4
Slot 0:
Initiator:
Source IP/port: 192.168.1.2/1877
Destination IP/port: 2.2.2.11/21
VPN instance/VLAN ID/INLINE ID: -/-/-
Protocol: TCP(6)
Inbound interface: GigabitEthernet1/0/2
Source security zone: Trust
Total sessions found: 1
不同款型規格的資料略有差異, 詳細信息請向具體銷售和400谘詢。H3C保留在沒有任何通知或提示的情況下對資料內容進行修改的權利!