允许traceroute探测
一.概述:
默认情况下,ASA不会回应TTL Exceeded的包,因此traceroute/tracert看不到ASA设备;另外,由于防火墙策略限制,traceroute/tracert也无法穿越防火墙。
二.基本思路:
根据traceroute/tracert不同处理方式,确定为什么无法穿越防火墙,从而放开相应的防火墙策略:
windows主机tracert命令,发出icmp request包,从TTL=1开始,逐跳TTL加1,每跳发送三个包,中间设备回复ICMP type 11 Code 0 的TTL超时的ICMP包,目的设备回复icmp reply的包。
----如果开启icmp审查,虽然内网发出的icmp reply的包可以正常返回,但是TTL超时的ICMP包不能正常返回,需要策略放行。
Linux、网络设备traceroute命令,发出UDP包,第一个包目的端口为33434,从TTL=1开始,每个TTL会发三个包,逐跳TTL加1,UDP目的端口每个包会加1,中间设备回复ICMP type 11的TTL超时的ICMP包,目的设备回复ICMP type 3 Code 3的端口不可达的ICMP包 。
----Linux、网络设备traceroute默认支持30跳,每跳发三个UDP包,所以UDP目的端口为33434~33434+30*3-1,即33434~33523
----如果从防火墙的高安全区到低安全区进行traceroute,则需要放行TTL超时的ICMP包和端口不可达的ICMP包
----如果从防火墙的低安全区到高安全区进行traceroute,则只需要放行起始的UDP包,目标端口从33434~33523
三.防火墙策略设置:
A.从高安全区到低安全区
---比如从Inside到Outside
①ASA设备回复TTL超时
class-map ALL_IP
match any
policy-map global_policy
class ALL_IP
set connection decrement-ttl
②全局开启ICMP审查
policy-map global_policy
class inspection_default
inspect icmp
inspect icmp ERROR //*这个还不明白到底是什么作用,针对什么情况
③防火墙策略:
access-list outside_access_in remark ICMP type 11 for Windows Traceroute
access-list outside_access_in extended permit icmp any any time-exceeded
access-list outside_access_in remark ICMP type 3 for Cisco and Linux
access-list outside_access_in extended permit icmp any any unreachable
access-group outside_access_in in interface outside
④调整icmp unreachable的速率
ciscoasa(config)#icmp unreachable rate-limit 10 burst-size 5
!--- Adjust ICMP unreachable replies:
!--- The default is rate-limit 1 burst-size 1.
!--- The default will result in timeouts for the ASA hop:
B.从低安全区到高安全区:
----比如从outside到inside(如果为互联网边界防火墙,不建议配置)
①ASA设备回复TTL超时
同上。
②放行初始流量
1.对于windows主机放行icmp echo流量
access-list outside_access_in permit icmp any any echo
----ACL中icmp echo包,等同于icmp echo request包
2.对于linux和网络设备放行udp流量
access-list outside_access_in remark Tracert from outside
access-list outside_access_in permit udp any any range 33434 33523
access-group outside_access_in in interface outside
----因为放行了icmp echo和udp33434~33523,无法避免outside区域设备利用它们对inside区域的设备进行DOS或Ddos攻击,因此如果是互联网边界防火墙没有必要进行开放;如果为公司内部不同安全区之间的防火墙,可根据需要确定是否放行。
相关阅读
解决“允许Traceroute探测”和“ICMP timestamp请求响
解决ICMP timestamp请求响应漏洞 sudo iptables -A INPUT -p ICMP --icmp-type timestamp-request -j DROP sudo iptables -A IN
一、路由追踪程序traceroute/tracert Traceroute是Linux和Mac OS等系统默认提供的路由追踪小程序,Tracert是Windows系统默认提供
通过traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到
TCP/IP详解05-网络层:ICMP协议、Ping和Traceroute
TCP/IP详解05-网络层:ICMP协议、Ping和Traceroute TCP/IP详解05-网络层:ICMP协议、Ping和Traceroute 1. ICMP:Internet控制报文协
Tracert(traceroute)&Ping 工作原理分析
一、tracert工作过程分析 Tracert 命令用 IP 生存时间 (TTL) 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由。首