需设置net.ipv4.icmp_echo_ignore_broadcasts=1禁用icmp广播响应,并配合iptables过滤广播包、停用avahi等主动广播服务、启用rp_filter防ip伪造,四层协同防控smurf类ddos放大攻击。

要禁用Linux网络接口上不必要的广播功能,关键不是关掉整个网卡或屏蔽所有广播,而是从内核响应、协议栈处理、服务行为和防火墙控制四个层面协同收紧。重点在于阻止系统被用作广播反射点,同时保留DHCP、ARP等必要通信。
关闭ICMP广播响应(防Smurf类攻击)
这是最基础且必须做的一步。默认情况下,Linux可能响应发往255.255.255.255或子网广播地址(如192.168.1.255)的ping请求,极易被用于DDoS放大。
- 临时生效:
sudo sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1 - 永久生效:在
/etc/sysctl.conf中添加net.ipv4.icmp_echo_ignore_broadcasts = 1,再运行sudo sysctl -p - 验证命令:
sysctl net.ipv4.icmp_echo_ignore_broadcasts应返回1
限制广播包进入协议栈(iptables过滤)
仅禁用响应还不够——原始广播包仍会消耗CPU和内存。需用iptables在入口处丢弃非法目标地址的包。
- 丢弃全局受限广播:
sudo iptables -A INPUT -d 255.255.255.255 -j DROP - 丢弃本子网广播(替换为实际广播地址):
sudo iptables -A INPUT -d 192.168.1.255 -j DROP - 可选:限制NetBIOS等UDP广播端口:
sudo iptables -A INPUT -p udp --dport 137 -d 192.168.1.255 -j DROP - 保存规则(Debian/Ubuntu):
sudo iptables-save > /etc/iptables/rules.v4
停用主动广播服务(源头减量)
Avahi(mDNS)、Samba(NetBIOS)、CUPS等服务会在局域网内周期性发送广播报文。若无服务发现需求,应直接停用。
- 停用并禁启Avahi:
sudo systemctl stop avahi-daemon && sudo systemctl disable avahi-daemon - Samba配置中禁用NetBIOS:编辑
/etc/samba/smb.conf,添加disable netbios = yes或broadcast = 0.0.0.0 - 检查是否还有监听:
ss -ulpn | grep ':137\|:5353',确认无UDP 137(NetBIOS)或5353(mDNS)端口在监听
启用反向路径过滤(防IP伪造)
该机制能识别并丢弃源IP明显不可达的入站包(如伪造源地址+广播目的),减少无效广播抵达ICMP子系统的概率。
- 统一启用(适合标准路由环境):
sudo sysctl -w net.ipv4.conf.all.rp_filter=1 - 若使用多出口或策略路由,建议逐接口设置,例如:
sudo sysctl -w net.ipv4.conf.eth0.rp_filter=1 - 写入
/etc/sysctl.conf并sysctl -p持久化











