有效防御linux广播滥用需分层施策:先限速放行正常arp/dhcp广播(如iptables -a input -m pkttype --pkt-type broadcast -m limit --limit 30/min -j accept),再丢弃超限包;禁用icmp广播响应(net.ipv4.icmp_echo_ignore_broadcasts=1);过滤ip层广播地址(如255.255.255.255、192.168.1.255);关闭avahi、samba等主动广播服务。

只丢弃异常广播,不误伤正常通信
ARP 和 DHCP 必须能收发,否则主机无法获取 IP、无法解析 MAC 地址。所以不能无差别 DROP,而应先限制频率,再对超限者丢弃:• 允许每分钟最多 30 个广播包(覆盖正常 ARP 探测和 DHCP 流程):
iptables -A INPUT -m pkttype --pkt-type broadcast -m limit --limit 30/min --limit-burst 30 -j ACCEPT
• 超过阈值的广播包直接丢弃:
iptables -A INPUT -m pkttype --pkt-type broadcast -j DROP
配合内核参数,堵住 ICMP 广播放大入口
攻击者常利用 `ping 192.168.1.255` 触发全网响应,形成 Smurf 攻击。Linux 默认可能响应这类请求:• 立即禁用 ICMP 广播响应:
sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1
• 永久生效:将 net.ipv4.icmp_echo_ignore_broadcasts = 1 写入 /etc/sysctl.conf,再运行 sysctl -p
补充 IP 层广播过滤,防止伪造源地址绕过
`-m pkttype` 只匹配二层帧类型,无法拦截目的 IP 是 `255.255.255.255` 或子网广播地址(如 `192.168.1.255`)的单播帧——这类包虽目的 MAC 是本机,但逻辑上仍是广播行为:• 丢弃发往全局广播地址的包:
iptables -A INPUT -d 255.255.255.255 -j DROP
• 丢弃发往本地子网广播地址的包(请替换为实际网段):
iptables -A INPUT -d 192.168.1.255 -j DROP
关闭主动广播服务,从源头减量
很多广播泛滥来自本机服务,而非外部攻击:• 停用并禁用 Avahi(mDNS):
systemctl stop avahi-daemon && systemctl disable avahi-daemon
• 关闭 Samba 的 NetBIOS 广播(编辑 /etc/samba/smb.conf,添加或修改):
bind interfaces only = yes
interfaces = lo eth0
• 检查是否监听 UDP 137/138(NetBIOS):
ss -ulpn | grep ':13[78]',如有则停用对应服务











