新手防御icmp和udp泛洪的核心是限速+过滤+内核加固三层协同:用iptables限icmp每秒1个(突发3个)并丢弃超限包,限udp整体速率20/秒(突发50个)并封禁7/13/19端口,同时启用rp_filter、禁广播icmp、关闭源路由等内核防护。

新手防御ICMP和UDP泛洪,核心是“限速+过滤+内核加固”三层协同,不建议直接禁用协议——ICMP用于路径MTU发现、UDP承载DNS/NTP等关键服务,粗暴关闭反而引发连通性故障或排障困难。
用iptables限制ICMP请求速率
这是最直观、见效快的第一道防线。默认Linux不限制ICMP包数量,攻击者可瞬间发送数万echo-request压垮网络栈。
- 允许每秒最多1个Ping请求,突发允许3个(兼顾运维检测与抗压):
sudo iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/sec --limit-burst 3 -j ACCEPT - 丢弃所有超限的ICMP echo-request包:
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j DROP - 保存规则(Ubuntu/Debian):
sudo iptables-save | sudo tee /etc/iptables/rules.v4
用iptables限制UDP流量并封禁高危端口
UDP Flood常利用端口7(Echo)、13(Daytime)、19(Chargen)等响应型服务放大流量。防御重点不是全禁UDP,而是控速+关服务+封端口。
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
- 限制UDP包整体速率(每秒不超过20个,突发50个):
sudo iptables -A INPUT -p udp -m limit --limit 20/sec --limit-burst 50 -j ACCEPT - 显式拒绝已知高危UDP端口(防止反射放大):
sudo iptables -A INPUT -p udp --dport 7 -j DROP
sudo iptables -A INPUT -p udp --dport 13 -j DROP
sudo iptables -A INPUT -p udp --dport 19 -j DROP - 若业务无需UDP DNS(53端口),也可加一条限制规则;如需保留,则建议配合BIND的rate-limit配置或使用DNS over TCP分流。
启用内核级防护机制
iptables只管包转发层,内核参数才能从协议栈底层抑制泛洪影响。
- 开启反向路径过滤(防IP伪造,对ICMP/UDP均有效):
echo "net.ipv4.conf.all.rp_filter = 1" | sudo tee -a /etc/sysctl.conf - 禁止响应广播/多播ICMP(防Smurf类攻击,默认已开,确认不被覆盖):
echo "net.ipv4.icmp_echo_ignore_broadcasts = 1" | sudo tee -a /etc/sysctl.conf - 关闭IP源路由(阻断常见伪装路径):
echo "net.ipv4.conf.all.accept_source_route = 0" | sudo tee -a /etc/sysctl.conf - 全部写入后执行:
sudo sysctl -p
验证配置是否生效
别只改完就认为万事大吉,动手测才是关键。
- 检查iptables规则是否加载:
sudo iptables -L INPUT -v -n | grep -E "(icmp|udp)"(应看到对应ACCEPT/DROP行) - 低频测试ICMP:
ping -c 3 your-server-ip(应通) - 高频冲击测试:
ping -f your-server-ip(按Ctrl+C停止,观察丢包率明显上升、延迟激增即说明限速起效) - 查看内核参数状态:
sysctl net.ipv4.conf.all.rp_filter net.ipv4.icmp_echo_ignore_broadcasts










