本檔案介紹如何設定TCP狀態略過功能,此功能允許傳出和傳入流量通過單獨的Cisco ASA 5500系列調適型安全裝置(ASA)。
Cisco ASA必須至少安裝基本許可證,然後才能繼續本文檔中所述的配置。
本文檔中的資訊基於運行軟體版本9.x的Cisco ASA 5500系列。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
本節概述TCP狀態略過功能和相關支援資訊。
預設情況下,所有通過ASA的流量都會通過自適應安全演算法進行檢查,並根據安全策略允許通過或丟棄。為了最大限度地提高防火牆效能,ASA會檢查每個資料包的狀態(例如,它檢查它是新連線還是已建立的連線),並將其分配給會話管理路徑(新的連線同步(SYN)資料包)、快速路徑(已建立的連線)或控制平面路徑(高級檢查)。
與快速路徑中的當前連線匹配的TCP資料包可以通過ASA,而無需重新檢查安全策略的各個方面。此功能可最大限度地提高效能。然而,用於在快速路徑中建立作業階段的方法(使用SYN封包)和在快速路徑中進行的檢查(例如TCP序號)可以阻止非對稱路由解決方案;連線的出站和入站流都必須通過同一個ASA。
例如,新連線進入ASA 1。SYN資料包通過會話管理路徑,並且連線條目新增到快速路徑表中。如果此連線上的後續資料包通過ASA 1,則這些資料包與快速路徑中的條目匹配,並且被通過。如果後續資料包進入ASA 2,其中沒有經過會話管理路徑的SYN資料包,則快速路徑中沒有用於連線的條目,資料包將被丟棄。
如果在上游路由器上配置了非對稱路由,且流量在兩個ASA之間交替,則可以為特定流量配置TCP狀態旁路功能。TCP狀態略過功能會變更在快速路徑中建立作業階段的方式,並停用快速路徑檢查。此功能處理TCP流量的方式與處理UDP連線的方式相同:當與指定網路匹配的非SYN資料包進入ASA且沒有快速路徑條目時,該資料包將通過會話管理路徑以在快速路徑中建立連線。進入快速路徑後,流量會繞過快速路徑檢查。
此圖提供非對稱路由的示例,其中出站流量通過與入站流量不同的ASA:
本節介紹TCP狀態略過功能的支援資訊。
使用TCP狀態略過功能時,不支援以下功能:
本節介紹如何在兩種不同情況下在ASA 5500系列上配置TCP狀態旁路功能。
這是用於第一個場景的拓撲:
完成以下步驟即可設定TCP狀態略過功能:
ASA(config)#class-map tcp_bypass
ASA(config)#class-map tcp_bypass
ASA(config-cmap)#match access-list tcp_bypass
ASA(config-cmap)#policy-map tcp_bypass_policy
ASA(config-cmap)#policy-map tcp_bypass_policy
ASA(config-pmap)#class tcp_bypass
ASA(config-cmap)#policy-map tcp_bypass_policy
ASA(config-pmap)#class tcp_bypass
ASA(config-pmap-c)#set connection advanced-options tcp-state-bypass
ASA(config-pmap-c)#service-policy tcp_bypass_policy outside
ASA1上的TCP狀態旁路功能配置示例如下:
!--- Configure the access list to specify the TCP traffic
!--- that needs to by-pass inspection to improve the performance.
ASA1(config)#access-list tcp_bypass extended permit tcp 10.1.1.0 255.255.255.0
172.16.1.0 255.255.255.0
!--- Configure the class map and specify the match parameter for the
!--- class map to match the interesting traffic.
ASA1(config)#class-map tcp_bypass
ASA1(config-cmap)#description "TCP traffic that bypasses stateful firewall"
ASA1(config-cmap)#match access-list tcp_bypass
!--- Configure the policy map and specify the class map
!--- inside this policy map for the class map.
ASA1(config-cmap)#policy-map tcp_bypass_policy
ASA1(config-pmap)#class tcp_bypass
!--- Use the set connection advanced-options tcp-state-bypass
!--- command in order to enable TCP state bypass feature.
ASA1(config-pmap-c)#set connection advanced-options tcp-state-bypass
!--- Use the service-policy policymap_name [ global | interface intf ]
!--- command in global configuration mode in order to activate a policy map
!--- globally on all interfaces or on a targeted interface.
ASA1(config-pmap-c)#service-policy tcp_bypass_policy outside
!--- NAT configuration
ASA1(config)#object network obj-10.1.1.0
ASA1(config-network-object)#subnet 10.1.1.0 255.255.255.0
ASA1(config-network-object)#nat(inside,outside) static 192.168.1.0
ASA2上的TCP狀態旁路功能配置示例如下:
!--- Configure the access list to specify the TCP traffic
!--- that needs to by-pass inspection to improve the performance.
ASA2(config)#access-list tcp_bypass extended permit tcp 172.16.1.0 255.255.255.0
10.1.1.0 255.255.255.0
!--- Configure the class map and specify the match parameter for the
!--- class map to match the interesting traffic.
ASA2(config)#class-map tcp_bypass
ASA2(config-cmap)#description "TCP traffic that bypasses stateful firewall"
ASA2(config-cmap)#match access-list tcp_bypass
!--- Configure the policy map and specify the class map
!--- inside this policy map for the class map.
ASA2(config-cmap)#policy-map tcp_bypass_policy
ASA2(config-pmap)#class tcp_bypass
!--- Use the set connection advanced-options tcp-state-bypass
!--- command in order to enable TCP state bypass feature.
ASA2(config-pmap-c)#set connection advanced-options tcp-state-bypass
!--- Use the service-policy policymap_name [ global | interface intf ]
!--- command in global configuration mode in order to activate a policy map
!--- globally on all interfaces or on a targeted interface.
ASA2(config-pmap-c)#service-policy tcp_bypass_policy outside
!--- NAT configuration
ASA2(config)#object network obj-10.1.1.0
ASA2(config-network-object)#subnet 10.1.1.0 255.255.255.0
ASA1(config-network-object)#nat(inside,outside) static 192.168.1.0
本節介紹如何在ASA上為使用非對稱路由的方案(流量從同一介面進入或離開ASA(u-turning))配置TCP狀態旁路功能。
以下是此案例中使用的拓撲:
完成以下步驟即可設定TCP狀態略過功能:
ASA(config)#access-list tcp_bypass extended permit tcp 192.168.2.0 255.255.255.0
192.168.1.0 255.255.255.0
ASA(config)#class-map tcp_bypass
ASA(config)#class-map tcp_bypass
ASA(config-cmap)#match access-list tcp_bypass
ASA(config-cmap)#policy-map tcp_bypass_policy
ASA(config-cmap)#policy-map tcp_bypass_policy
ASA(config-pmap)#class tcp_bypass
ASA(config-cmap)#policy-map tcp_bypass_policy
ASA(config-pmap)#class tcp_bypass
ASA(config-pmap-c)#set connection advanced-options tcp-state-bypass
ASA(config-pmap-c)#service-policy tcp_bypass_policy inside
ASA(config)#same-security-traffic permit intra-interface
以下是ASA上TCP狀態旁路功能的配置示例:
!--- Configure the access list to specify the TCP traffic
!--- that needs to bypass inspection to improve the performance.
ASA(config)#access-list tcp_bypass extended permit tcp 192.168.2.0 255.255.255.0
192.168.1.0 255.255.255.0
!--- Configure the class map and specify the match parameter for the
!--- class map to match the interesting traffic.
ASA(config)#class-map tcp_bypass
ASA(config-cmap)#description "TCP traffic that bypasses stateful firewall"
ASA(config-cmap)#match access-list tcp_bypass
!--- Configure the policy map and specify the class map
!--- inside this policy map for the class map.
ASA(config-cmap)#policy-map tcp_bypass_policy
ASA(config-pmap)#class tcp_bypass
!--- Use the set connection advanced-options tcp-state-bypass
!--- command in order to enable TCP state bypass feature.
ASA(config-pmap-c)#set connection advanced-options tcp-state-bypass
!--- Use the service-policy policymap_name [ global | interface intf ]
!--- command in global configuration mode in order to activate a policy map
!--- globally on all interfaces or on a targeted interface.
ASA(config-pmap-c)#service-policy tcp_bypass_policy inside
!--- Permit same security level traffic on the ASA to support U-turning
ASA(config)#same-security-traffic permit intra-interface
輸入 show conn 命令可檢視活動TCP和UDP連線的數量和有關各種連線型別的資訊。要顯示指定連線型別的連線狀態,請輸入 show conn 命令的EXEC模式。
以下是輸出範例:
ASA(config)show conn
1 in use, 3 most used
TCP tcp 10.1.1.1:49525 tcp 172.16.1.1:21, idle 0:01:10, bytes 230, flags b
此功能沒有特定的故障排除資訊。有關一般連線疑難排解資訊,請參閱以下文檔:
即使啟用TCP狀態旁路功能,ASA仍會顯示以下錯誤消息:
%PIX|ASA-4-313004:Denied ICMP type=icmp_type, from source_address oninterface
interface_name to dest_address:no matching session
由於有狀態ICMP功能新增了安全檢查,ASA丟棄了網際網路控制消息協定(ICMP)資料包。這些錯誤消息通常是沒有通過ASA的有效回應請求的ICMP echo應答,或者是與ASA中當前建立的任何TCP、UDP或ICMP會話無關的ICMP錯誤消息。
即使由於無法禁用此功能(即檢查連線表中型別3的ICMP return條目)而啟用了TCP狀態旁路功能,ASA也會顯示此日誌。但是,TCP狀態略過功能可以正常工作。
輸入以下命令可防止出現以下訊息:
hostname(config)#no logging message 313004
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
15-Jun-2015 |
初始版本 |