首页/安全/安全加固速查/ICMP 广播响应抑制(icmp_echo_ignore_broadcasts)
主机加固基线90 条

ICMP 广播响应抑制(icmp_echo_ignore_broadcasts)

响应广播地址的 ICMP Echo 会让主机成为 Smurf 类放大攻击的反射器;忽略广播请求并忽略伪造错误响应,是边界主机的常规加固。

安全加固速查安全更新于 2026-10-13

广播 ICMP 与放大攻击

如果主机响应发往广播地址的 ICMP Echo 请求,攻击者就能利用大量主机作为反射器,把一个小请求放大成成规模的流量打到受害者,这类放大攻击历史上被称为 Smurf。加固方式是让内核忽略广播 ICMP 请求,同时忽略伪造的错误响应。单播 ping 不受影响,因此关闭它没有实际兼容性代价。

基本信息

加固项ICMP 放大攻击缓解
适用平台Linux(RHEL/CentOS/Debian/Ubuntu)
风险等级中
基线net.ipv4.icmp_echo_ignore_broadcasts=1;net.ipv4.icmp_ignore_bogus_error_responses=1
生效方式sysctl.d 片段 + sysctl --system

典型使用场景

  • 边界主机加固:避免成为反射放大器,同时也是出口合规要求
  • 云主机基线:第三方镜像默认值不保证,需逐项核查
  • 合规核查:CIS 与等保对网络参数有明确条款
  • 排障后复核:测试期间临时改动需确认已恢复
  • 模板固化:新镜像创建时自动应用参数

核查与加固

核查与加固
sysctl net.ipv4.icmp_echo_ignore_broadcasts net.ipv4.icmp_ignore_bogus_error_responses
cat >> /etc/sysctl.d/99-hardening.conf <<'EOF'
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
EOF
sysctl --system
ping -c 1 127.0.0.1                  # 单播 ping 仍应正常,验证未影响连通性
sysctl -a 2>/dev/null | grep icmp_ | head -10

参数取值读法

参数与取值含义正常与异常
icmp_echo_ignore_broadcasts=1忽略广播地址的 Echo 请求基线要求值
=0会响应广播请求可被用作放大反射器
icmp_ignore_bogus_error_responses=1忽略伪造的 ICMP 错误响应建议开启,减少无效处理
单播 ping 行为普通 ping 不受影响若不通说明是其它网络问题
该参数只管广播地址的 ICMP Echo,不影响子网内合法的服务发现协议:不要把它当成通用的“禁广播”开关。

落地要点

  • 两个参数一起设置,避免只处理一部分放大路径
  • 改动记入变更记录,保留改动前后的取值
  • 老内网心跳或发现工具若依赖广播 ping,会表现为节点互不可见,改动后先观察监控再定稿
  • 把参数写入 sysctl.d 片段而不是临时 sysctl -w,确保重启后仍生效
  • 云环境注意安全组与主机参数是两层,参数改对了但安全组仍放行广播流量也无意义
依赖广播发现的遗留系统要单独确认:改动后立刻验证业务节点是否仍能互相发现,避免影响生产。

易错点

  • 只设一个参数:另一个放大路径仍开着,基线核查依然不合格
  • 用 sysctl -w 临时修改:重启后失效,核查结论与实际不符
  • 误以为会影响正常 ping:单播不受影响,据此拒绝加固没有依据
  • 忽略内网发现协议依赖:改动后节点互不可见,排查方向容易跑偏

数据来源与参考

  • CIS Linux Benchmark:Ensure broadcast ICMP requests are ignored
  • RFC 2644:变更默认的定向广播行为

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌