知识

允许traceroute探测怎么修复

时间:2010-12-5 17:23:32  作者:知识   来源:知识  查看:  评论:0
内容摘要:允许traceroute探测怎么修复 先别急着改配置,你得搞清楚一件事:traceroute被允许,本身不是漏洞。它只是暴露了路径上的路由器IP和延迟。真正的问题在于,很多管理员把“允许ICMP”和“

允许traceroute探测怎么修复

先别急着改配置,允许你得搞清楚一件事:traceroute被允许,探测本身不是修复漏洞。它只是允许暴露了路径上的路由器IP和延迟。真正的探测问题在于,很多管理员把“允许ICMP”和“允许traceroute”混为一谈,修复然后一刀切地全关掉——结果自己排障时两眼一抹黑。允许我见过某家云厂商的探测客户,为了“安全”把ICMP全禁了,修复结果跨地域链路抖动,允许愣是探测查了三天,最后发现是修复某个骨干节点在丢包。你说这图啥?允许

修复的核心思路不是“禁止探测”,而是探测“限制暴露面”。具体分三层:边界路由器、修复核心交换机、终端主机。每层的策略都不一样,别拿一套规则套所有设备。

边界路由器上,你真正该做的是过滤掉源自外网的、目的为非本网段的traceroute包。用ACL匹配TTL值,比如允许TTL=1的包到达本机,但拒绝TTL>1且目的地址不是本网段的包。这样外部探测只能看到你的第一跳,后面全是黑洞。有些老设备不支持按TTL过滤,那就退而求其次,限制ICMP时间超时(type 11 code 0)的发送速率,比如每秒最多5个包。这么做能让traceroute的路径显示变得断断续续,但又不完全消失——你内部排障时还能用,外部扫描者拿到的信息残缺不全。

核心交换机上,别启用“ip unreachables”和“ip redirects”,这俩是泄露内网拓扑的帮凶。很多默认配置会响应这些报文,等于主动告诉别人“我后面还有三层”。把这两项关掉,再配合控制平面的 policing,限制发往CPU的ICMP速率。我处理过一个案例,某金融客户的核心交换机被外部持续traceroute,CPU占用飙到60%,就是因为没做control-plane的速率限制。加一条简单的policy-map,把ICMP速率压到100pps,问题立刻消失。

终端主机这块,Windows和Linux行为不一样。Windows默认允许traceroute,但你可以用防火墙规则只允许特定源IP的入站ICMP。Linux更灵活,直接修改/proc/sys/net/ipv4/icmp_echo_ignore_all和/proc/sys/net/ipv4/conf/all/accept_redirects。但注意,别全禁。你至少得留出ICMP echo-reply(type 0),否则ping也不通,那就矫枉过正了。

还有个很多人忽略的细节——traceroute不一定走ICMP。现在很多工具默认用UDP探测(比如Linux的traceroute),或者TCP SYN(比如tcptraceroute)。你光禁ICMP没用,UDP高端口照样能扫出路径。所以防火墙规则得覆盖UDP目的端口33434到33534这段,要么直接丢弃,要么限速。TCP探测更麻烦,它用的是80或443端口,你没法全禁,只能靠速率限制和会话跟踪来干扰。

最后说个反常识的:有些场景下,你反而应该故意允许traceroute。比如你有意暴露某个CDN节点或跳板机,来吸引攻击者往错误方向探测——这叫“诱饵路径”。我帮一个游戏公司这么干过,他们在DMZ区放了台假路由器,响应所有traceroute请求,但返回的IP全是伪造的。攻击者顺着路径摸过去,发现是台蜜罐,浪费半天时间。这不比单纯封禁更爽?

说到底,修复的目的是让你自己能用,别人不好用。别指望彻底禁绝,那不可能也不必要。把策略细化到设备类型和报文类型,再配合速率限制和伪造响应,比一刀切关ICMP高明得多。你按这个思路改完,再用外部节点测一下——路径信息模糊了,但你的内部监控工具依然能正常工作,这就对了。

最近更新
热门排行
copyright © 2026 powered by 力不从心网   sitemap