需设置net.ipv4.icmp_echo_ignore_broadcasts=1禁用icmp广播响应,并配合rp_filter、停用avahi等广播服务及iptables过滤规则;具体包括临时或永久启用该内核参数、启用反向路径过滤、停用avahi-daemon和netbios、添加iptables丢弃广播包及伪造dns请求规则。

限制 DNS 端口访问,只允许可信来源
默认开放 UDP/TCP 53 端口极易被滥用。必须严格控制谁可以发查询、谁可以收响应:
- 仅允许内网客户端发起查询(如 192.168.1.0/24):
iptables -A INPUT -p udp --dport 53 -s 192.168.1.0/24 -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -s 192.168.1.0/24 -j ACCEPT - 显式拒绝所有其他来源的 DNS 请求:
iptables -A INPUT -p udp --dport 53 -j DROP
iptables -A INPUT -p tcp --dport 53 -j DROP - 若本机不对外提供递归服务(推荐),禁止向外部发送 DNS 响应(防反射):
iptables -A OUTPUT -p udp --dport 53 -j DROP
iptables -A OUTPUT -p tcp --dport 53 -j DROP
拦截伪造源 IP 的 DNS 查询包
DNS 放大攻击依赖源地址伪造(spoofing)。防火墙可识别并丢弃典型伪造特征:
宝塔Linux面板11.8.1为官网当前正式版,新增AI建站能力并经过宝塔网站工程师深度调教,开放自定义AI功能API,同时对WAF进行界面重构和深度优化,提升拦截能力与运维效率。
- 丢弃源端口为 53 的入站 UDP 包(正常 DNS 客户端不会用 53 当源端口):
iptables -A INPUT -p udp --sport 53 -j DROP - 限制单 IP 每秒 DNS 查询数(防暴力扫描与放大探测):
iptables -A INPUT -p udp --dport 53 -m limit --limit 5/sec --limit-burst 10 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j DROP - 启用反向路径过滤(rp_filter),从内核层验证源 IP 是否可达:
echo 1 | sudo tee /proc/sys/net/ipv4/conf/all/rp_filter
并写入 /etc/sysctl.conf:net.ipv4.conf.all.rp_filter = 1
禁用广播响应,消除 Smurf+DNS 混合风险
虽然 DNS 本身不依赖广播,但系统若响应 ICMP 广播 ping,可能被用于协同放大攻击。必须关闭:
- 禁止响应全局广播(255.255.255.255)和子网广播地址:
sudo sysctl -w net.ipv4.icmp_echo_ignore_broadcasts=1 - 添加 iptables 规则丢弃广播目标包(减少协议栈开销):
iptables -A INPUT -d 255.255.255.255 -j DROP
iptables -A INPUT -d 192.168.1.255 -j DROP(按实际网段替换) - 停用 Avahi/mDNS(UDP 5353)、NetBIOS(UDP 137)等广播服务:
sudo systemctl disable --now avahi-daemon
检查监听:ss -ulpn | grep ':137\|:5353'
保存规则并验证生效
临时规则重启后失效,必须持久化:
- Debian/Ubuntu:
iptables-save > /etc/iptables/rules.v4 - RHEL/CentOS 7+:
iptables-save > /etc/sysconfig/iptables
或使用 firewalld 导入:firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="53" protocol="udp" accept' - 验证规则加载:iptables -L INPUT -nv 查看计数器是否增长
- 测试反射能力:
从外部用伪造源 IP 向本机发 DNS 查询(如 hping3 -u 12345 -p 53 --udp target_ip),确认无响应返回










