蓝色动力网络

 找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3390|回复: 0

[转帖] 路由器和防火墙对Ping/Tracert工具的影响

[复制链接]
发表于 2011-10-31 12:51:45 | 显示全部楼层 |阅读模式
在日常的网络探测和故障诊断中,常用到的两个工具是Ping和Tracert。随着网络结构的日益复杂和中间设备(包括但不仅限于路由器和防火墙)的广泛部署,以及为了实现安全要求而在路由器和防火墙上实施了严格的访问控制策略后,网络管理和维护人员想要正常使用Ping/Tracert对网络进行主动有效的探测和故障诊断往往受阻,甚至无法进行。Windows环境下的Ping/Tracert工具都是基于ICMP协议实现的,而在Linux或Cisco等网络设备中,Traceroute还使用了UDP协议,在此不做深入讨论。
确实,在网络中部署了路由器和防火墙后,如果不经过慎重规划和部署,就以“保障网络安全”为由,在实施访问控制策略时,过滤掉ICMP协议流,将给日后正常的网络探测和故障诊断带来极大的困难。ICMP协议数据包的类型多样,有些类型的数据包确实会给网络带来安全威胁,但只要正确部署和配置路由器及防火墙的安全策略,在允许必要的ICMP类型数据包的同时过滤特定的ICMP类型数据包,则既能够使得Ping/Tracert工具正常工作,给网络维护和故障诊断带来便利,又能有效保证网络和设备的安全运行。
在网络中部署了路由器和防火墙后,要使得Ping/Tracert正常应用,需要从两个方面进行考虑:第一,过境设备的Ping/Tracert数据流,需要路由器和防火墙放行;第二,到设备自身或接口的Ping/Tracert数据流,需要路由器和防火墙响应。笔者以Cisco设备为例,来说明如何配置路由器和防火墙的策略,允许必要的包括回显(echo)、回显应答(echo reply)、超时(time exceeded)和目标不可到达(unreachables)等四种类型的ICMP数据包,以保障Ping/Tracert命令的正常使用。
在Cisco路由器中,利用NAT结合ACL实现访问控制时,一般允许从内部接口的到外部接口的所有流量,包括ICMP。所以,需要在路由器的外部应用ACL,为允许必要的ICMP数据包进入网络,ACL中必须包含以下的允许规则:
Access-list 101 permit icmp any any echo
Access-list 101 permit icmp any any unreachable
Access-list 101 permit icmp any any time-exceeded
Access-list 101 permit icmp any any echo-reply
如果在路由器中实现了基于区域的IOS防火墙功能,此时可以把路由器当状态防火墙对待,建议对ICMP流量实施应用审查,则配置更为简单明了。另外,对于从外部或内部到自身接口的需要允许的ICMP流量,也通过防火墙策略(而不是ACL)配置实现即可,在此不列出具体命令了。还有一点要注意的是,作为一种防御DoS攻击的保护措施,默认情况下,路由器将ICMP 不可到达类型的流量限制到每500毫秒一个数据包。在12.1及更新的IOS镜像中,这个速率限制可通过命令”ip icmp rate-limit unreachable”进行配置。
对于一般的状态化防火墙, 只要策略允许从内到外的所有流量,或对ICMP协议实施了应用审查,Ping/Tracert就能够正常运转,无需额外的策略配置。但是从外到内的Ping/Tracert则需要配置策略以放行流量。在PIX/ASA防火墙中,默认情况下,从外向内的ICMP流量被禁止,从内向外的ICMP流量允许通过,但返回包却被禁止。要改变这一默认行为,需要配置例外的允许策略以放行必要的ICMP类型数据包。此外,可通过命令”icmp unreachable rate-limit n burst-size n ”对ICMP不可到达类型的流量进行必要限制,还可以在防火墙上启用针对ICMP的防DoS功能。要允许穿越防火墙的特定的ICMP流量,配置命令如下:
Object-group icmp-type Permit-ICMPType
Icmp-object echo
Icmp-object unreachable
Imcp-object time-exceeded
Icmp-object echo-reply
Access-list inbound permit icmp any any object-group Permit-ICMPType
access-group inbound in interface outside
允许到防火墙自身接口特定的ICMP类型流量,在则命名接口上的配置命令为:
icmp permit 0.0.0.0 0.0.0.0 echo
icmp permit 0.0.0.0 0.0.0.0 echo-reply
icmp permit 0.0.0.0 0.0.0.0 unreachable
icmp permit 0.0.0.0 0.0.0.0 time-exceeded
icmp deny 0.0.0.0 0.0.0.0  
在实际的网络环境中,如果路由器或防火墙丢弃了ICMP超时数据包,那么Tracert会对该跃点显示一系列“*”字符。如果在近侧接口(靠近发起Tracert流的计算机端)上实施了ICMP过滤,那么该路由器或防火墙及其后续的设备上都会显示“*”字符直到完成30个(默认)跃点数尝试。如果Ping/Tracert工具工作正常,那么相应地另一工具即pathping也能正常工作。此外,Ping/Tracert目的为启用了Windows防火墙的主机,需关闭Windows防火墙或进行设置以使得其允许传入的特定类型的ICMP流量。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

蓝色动力网络微信平台
网站管理,业务合作联系邮箱: admin#lansedongli.com    QQ:13412492 限网站业务问题.
网站帐号、密码、密保找回请使用注册邮箱,发送邮件至 password#lansedongli.com ,否则不予受理.
免责声明:本论坛所有文字和图片仅代表其个人观点.
本站某些资料或文章来自于互联网,不代表本站观点,如果侵犯了您的权益,请来信告知,我们会在三天内删除.
为了给大家一个更好的交流场所,请勿在本论坛发表与中华人民共和国法律相抵触的言论,请合作,谢谢!
Copyright © 2007-2019 Corporation Powered by网吧系统 版权所有    转载请注明!
浙ICP备11043737号-1 程序:Discuz! x3.4

湘公网安备 43018102000145号

手机版|Archiver|蓝色动力网络   

快速回复 返回顶部 返回列表