本文說明如何設定TCP狀態略過功能。此功能允許通過單獨的Cisco ASA 5500系列自適應安全裝置的出站和入站流量。
Cisco ASA 5500系列自適應安全裝置應至少具有基本許可證。
本檔案中的資訊是根據版本8.2(1)和更新版本的思科調適型安全裝置(ASA)。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
請參閱思科技術提示慣例以瞭解有關檔案慣例的資訊。
預設情況下,會使用自適應安全演算法檢查通過思科自適應安全裝置(ASA)的所有流量,並根據安全策略允許通過或丟棄這些流量。為了最大限度地提高防火牆效能,ASA會檢查每個資料包的狀態(例如,這是新連線還是已建立的連線?),並將其分配給會話管理路徑(新的連線SYN資料包)、快速路徑(已建立的連線)或控制平面路徑(高級檢查)。
與快速路徑中的現有連線匹配的TCP資料包可以通過自適應安全裝置,而無需重新檢查安全策略的各個方面。此功能可最大限度地提高效能。但是,在快速路徑中建立作業階段的方法(使用SYN封包)和在快速路徑中進行的檢查(例如TCP序號)可能會妨礙非對稱路由解決方案的方式:連線的出站和入站流都必須通過同一個ASA。
例如,新連線進入ASA 1。SYN資料包通過會話管理路徑,並且連線條目新增到快速路徑表中。如果此連線的後續資料包通過ASA 1,則這些資料包將與快速路徑中的條目匹配,並且被通過。如果後續資料包進入ASA 2,其中沒有經過會話管理路徑的SYN資料包,則快速路徑中沒有用於連線的條目,資料包將被丟棄。
如果在上游路由器上配置了非對稱路由,且流量在兩個ASA之間交替,則可以為特定流量配置TCP狀態旁路。TCP狀態略過會變更在快速路徑中建立作業階段的方式,並停用快速路徑檢查。此功能處理TCP流量的方式與處理UDP連線的方式相同:當與指定網路匹配的非SYN資料包進入ASA且沒有快速路徑條目時,該資料包將通過會話管理路徑在快速路徑中建立連線。進入快速路徑後,流量會繞過快速路徑檢查。
此圖提供非對稱路由的示例,其中出站流量通過與入站流量不同的ASA:
注意:Cisco ASA 5500系列自適應安全裝置上預設禁用TCP狀態旁路功能。
本節提供TCP狀態略過功能的支援資訊。
Context Mode — 在單情景和多情景模式下受支援。
防火牆模式 — 在路由和透明模式下受支援。
故障轉移 — 支援故障轉移。
使用TCP狀態略過時,不支援以下功能:
應用檢測 — 應用檢測要求入站和出站流量通過同一個ASA,因此TCP狀態旁路不支援應用檢測。
AAA authenticated sessions — 當使用者使用一個ASA進行身份驗證時,通過另一個ASA返回的流量將遭到拒絕,因為使用者未使用該ASA進行身份驗證。
TCP攔截、最大初始連線限制、TCP序列號隨機化 — ASA不跟蹤連線的狀態,因此不應用這些功能。
TCP規範化 — TCP規範器被禁用。
SSM和SSC功能 — 不能使用TCP狀態旁路和在SSM或SSC上運行的任何應用程式,如IPS或CSC。
NAT准則:由於轉換會話是單獨為每個ASA建立的,因此請確保在兩個ASA上為TCP狀態繞過流量配置靜態NAT;如果您使用動態NAT,為ASA 1上的會話選擇的地址將與ASA 2上的會話選擇的地址不同。
本節介紹如何在Cisco ASA 5500系列自適應安全裝置(ASA)上配置TCP狀態旁路功能。
完成以下步驟,以便在Cisco ASA 5500系列自適應安全裝置上配置TCP狀態旁路功能:
使用class-map class_map_name 命令建立類對映。類對映用於標識要為其禁用狀態防火牆檢測的流量。本示例中使用的類對映是tcp_bypass。
ASA(config)#class-map tcp_bypass
使用match parameter命令在類對映中指定相關流量。使用模組化策略框架時,請在類對映配置模式下使用match access-list命令,以便使用訪問清單來標識要應用操作的流量。以下是此組態的範例:
ASA(config)#class-map tcp_bypass ASA(config-cmap)#match access-list tcp_bypass
tcp_bypass是本示例中使用的訪問清單的名稱。如需指定相關流量的詳細資訊,請參閱識別流量(第3/4層類別映像)。
使用policy-map name命令可新增策略對映或編輯策略對映(已經存在),策略對映設定要對已指定的類對映流量執行的操作。使用模組化策略框架時,請在全域性配置模式下使用policy-map命令(不帶type關鍵字),以便將操作分配給使用第3/4層類對映(class-map或class-map type management命令)標識的流量。 在本示例中,策略對映為tcp_bypass_policy:
ASA(config-cmap)#policy-map tcp_bypass_policy
在策略對映配置模式下使用class命令,以將已建立的類對映(tcp_bypass)分配給策略對映(tcp_bypass_policy),在該策略對映中,可以向類對映流量分配操作。在本示例中,類對映為tcp_bypass:
ASA(config-cmap)#policy-map tcp_bypass_policy ASA(config-pmap)#class tcp_bypass
在類配置模式下使用set connection advanced-options tcp-state-bypass 命令以啟用TCP狀態略過功能。此命令在8.2(1)版中引入。 可通過策略對映配置模式訪問類配置模式,如以下示例所示:
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
使用service-policy policymap_name [ global | interface intf ] 命令在全域性配置模式下,以便在所有介面或目標介面上全域性啟用策略對映。若要停用服務原則,請使用此命令的no形式。使用service-policy命令在介面上啟用一組策略。global將策略對映應用於所有介面,interface將策略應用於一個介面。只允許一個全域性策略。可以通過將服務策略應用到介面來覆蓋該介面上的全域性策略。您只能對每個介面應用一個策略對映。
ASA(config-pmap-c)#service-policy tcp_bypass_policy outside
以下是TCP狀態略過的一個組態範例:
!--- Configure the access list to specify the TCP traffic !--- that needs to by-pass inspection to improve the performance.
ASA(config)#access-list tcp_bypass extended permit tcp 10.1.1.0 255.255.255.224 any
!--- 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 outside
ASA(config-pmap-c)#static (inside,outside) 192.168.1.224 10.1.1.0 netmask
255.255.255.224
show conn命令顯示活動TCP和UDP連線的數量,並提供有關各種連線型別的資訊。要顯示指定連線型別的連線狀態,請在特權EXEC模式下使用show conn命令。此命令支援IPv4和IPv6地址。使用TCP狀態旁路的連線的輸出顯示包括標誌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功能新增了安全檢查,安全裝置丟棄了ICMP資料包。有狀態ICMP功能通常是未通過安全裝置的有效回應請求的ICMP回應應答,或者是與安全裝置中已建立的任何TCP、UDP或ICMP會話無關的ICMP錯誤消息。
即使由於無法禁用此功能(即檢查連線表中型別3的ICMP返回條目)而啟用了TCP狀態旁路,ASA也會顯示此日誌。但TCP狀態略過功能可以正常工作。
使用以下命令可防止出現以下訊息:
hostname(config)#no logging message 313004
修訂 | 發佈日期 | 意見 |
---|---|---|
1.0 |
19-May-2010 |
初始版本 |