原文作者: Mansur
原文链接: http://nbma.info/asa-tcp-traffic-back/
环境R2,R3网关在ASA,R3背后有10.0.0.0网络,ASA路由10.0.0.0/24下一跳是R3
问题,R2访问10.0.0.0/24网段时,流量到达ASA,icmp和udp可以通过,tcp会被丢弃
1,R2的10.1.1.44发起TCP流量访问10.0.0.0网段web server
2,ASA收到改流量,发现出站接口是相同的security-level,需要敲下这条命令:
ASA(config)#same-security permit intra-interface
3,然后这个SYN包会通过R3路由到达R4,
4,Web server返回SYN-ACK,这个包在到达R3之后,将会被直接通过mac地址转发到R2
5,R2收到该数据包会直接丢弃,这是因为ASA的“tcp序列号随机化”的默认特性,
当ASA从任意接口收到一个的SYN包时,会将seq随机成另一个数字,记录在状态表中,然后再发出,这是他的一个安全策略。
而在上例中,假定R2初始的SYN包的seq是12345,经过ASA被随机成为56789,R4回报只会确认收到56789,这个包在到达R2之后会被丢弃,因为R2希望确认12345
6,为了避免这种内部的异步路由导致的丢包,需要在ASA赦免特定tcp流量的状态化检测,配置如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | object-group network LOCAL network-object 10.1.1.0 255.255.255.0 object-group network VPN network-object 10.0.0.0 255.255.255.0 access-list TCP-BYPASS extended permit ip object-group LOCAL object-group VPN //抓取需要bypass的明细流量 ASA(config)#class-map TCP-BYPASS ASA(config-cmap)#match access-list TCP-BYPASS //创建class-map匹配感兴趣流量 ASA(config-cmap)#policy-map TCP-BYPASS-POLICY ASA(config-pmap)#class TCP-BYPASS //创建policy-map,指定class-map ASA(config-pmap-c)#set connection advanced-options tcp-state-bypass //开启tcp bypass特性 ASA(config-pmap-c)#service-policy TCP-BYPASS-POLICY interface inside //针对inside调用 |
其他:
如果ping也被ASA检测,那么也需要禁用,否则从10.0.0.0发起的ping是不通的,
其他被ASA检测的协议也是类似
评论