按 ICMP 类型精确过滤
要精确控制 ping,必须用 ICMP 类型匹配(echo 与 echo-reply),而不是一条 deny icmp 全部封掉。全封会把 traceroute 依赖的超时报文与路径 MTU 发现依赖的不可达报文一起拦掉,结果是排障手段被削弱,特定场景下大包传输也会出问题。
基本信息
| 适用平台 | 思科 IOS / 华为 VRP / H3C Comware |
|---|---|
| 思科写法 | 协议关键字后直接跟类型名:deny icmp any host X echo |
| 华为与 H3C 写法 | 用 icmp-type 关键字指定类型名 |
| 常用类型 | echo、echo-reply、time-exceeded、unreachable |
典型使用场景
- 禁止外部对内部设备做 ping 扫描
- 放行内部主动发起的 ping 应答流量
- 保留 traceroute 的可用性,便于排障
- 排查大包不通与路径 MTU 发现相关问题
- 安全评估中 ICMP 策略的整改与说明
华为 VRP
华为 VRP
[Huawei] acl number 3000
[Huawei-acl-adv-3000] rule 5 deny icmp source any destination 10.1.1.10 0 icmp-type echo
[Huawei-acl-adv-3000] rule 10 permit icmp source any destination 10.1.1.10 0 icmp-type echo-reply
[Huawei-acl-adv-3000] rule 15 permit ip思科 IOS
思科 IOS
SW-CORE-01(config)# access-list 100 deny icmp any host 10.1.1.10 echo
SW-CORE-01(config)# access-list 100 permit icmp any host 10.1.1.10 echo-reply
SW-CORE-01(config)# access-list 100 permit ip any any
SW-CORE-01# show ip access-lists 100H3C Comware
H3C Comware
[H3C] acl advanced 3000
[H3C-acl-ipv4-adv-3000] rule 5 deny icmp source any destination 10.1.1.10 0 icmp-type echo
[H3C-acl-ipv4-adv-3000] rule 10 permit icmp source any destination 10.1.1.10 0 icmp-type echo-reply
[H3C-acl-ipv4-adv-3000] rule 15 permit ip常用 ICMP 类型与影响
| 类型 | 用途 | 拦掉之后的影响 |
|---|---|---|
| echo | ping 请求 | 外部无法探测主机存活,是禁 ping 的主要对象 |
| echo-reply | ping 应答 | 内部主动 ping 收不到回复,容易被误判为不通 |
| time-exceeded | TTL 超时上报 | traceroute 失效,路径排障手段丢失 |
| unreachable | 不可达与分片需要 | 影响路径 MTU 发现,大包可能莫名不通 |
思科在协议关键字之后直接跟类型名(deny icmp any host X echo),华为与 H3C 用 icmp-type 关键字指定类型,两种写法的语义完全一致,跨厂商迁移时逐条对照即可。
禁 ping 只是降低被发现的概率,不构成安全防护:端口扫描与服务探测并不依赖 ICMP,真正的加固仍要靠访问控制策略与主机侧加固。
精确禁 ping 的常见组合是:入方向拒绝 echo,同时放行 echo-reply 与 time-exceeded,其余流量按业务策略放行。这样既降低被扫描发现的概率,也保留了 traceroute 这条现场排障手段。
ICMP 策略变更后要复核原有监控:网络质量探测、链路保活与部分监控系统都依赖 ICMP 应答,规则一旦生效,可能同时让多套探测系统报出并不存在的故障。