本文档介绍如何配置TCP状态旁路功能。此功能允许通过单独的Cisco ASA 5500系列自适应安全设备的出站和入站流量。
Cisco ASA 5500系列自适应安全设备应至少具有基本许可证。
本文档中的信息基于8.2(1)及更高版本的思科自适应安全设备(ASA)。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您使用的是真实网络,请确保您已经了解所有命令的潜在影响。
关于文件规则的信息,请参见Cisco技术提示规则。
默认情况下,所有通过思科自适应安全设备(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)。在本示例中,类映射为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回应应答,已经通过安全设备,或者与安全设备中已建立的任何TCP、UDP或ICMP会话无关的ICMP错误消息。
即使由于无法禁用此功能(即检查连接表中类型3的ICMP返回条目),ASA启用了TCP状态旁路,ASA也会显示此日志。但TCP状态旁路功能工作正常。
使用此命令可防止出现以下消息:
hostname(config)#no logging message 313004
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
10-May-2010
|
初始版本 |