iptables DDoS 防护规则生成器
生成用于 DDoS 缓解的 iptables 规则:SYN 洪水防护、UDP 洪水过滤、ICMP 速率限制等,一键复制即用。
逗号分隔
每行一个,如 203.0.113.7 或 10.0.0.0/8
ddos-protect.sh
#!/bin/bash # iptables DDoS 防护规则 · 由防盾工具箱生成 # 生成时间: 使用前请先测试, 建议 iptables-apply 验证 # 放行已建立与相关连接 iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT # 回环接口放行 iptables -A INPUT -i lo -j ACCEPT # 无效包与异常组合直接丢弃 iptables -A INPUT -m conntrack --ctstate INVALID -j DROP iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP iptables -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP # SYN 洪水: 限制每秒新建连接速率 iptables -A INPUT -p tcp --dport 22 -m connlimit --connlimit-above 5 --connlimit-mask 32 -j DROP iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 10 -j DROP # SYN Proxy (内核代答, 仅当 conntrack 加载时生效) iptables -A INPUT -p tcp -m multiport --dports 80,443 --syn -m conntrack --ctstate NEW -j TCPMSS --clamp-mss-to-pmtu iptables -A PREROUTING -t raw -p tcp -m multiport --dports 80,443 --syn -j CT --notrack # Web 端口速率限制 iptables -A INPUT -p tcp -m multiport --dports 80,443 -m connlimit --connlimit-above 50 --connlimit-mask 32 -j DROP iptables -A INPUT -p tcp -m multiport --dports 80,443 -m hashlimit --hashlimit-above 200/sec --hashlimit-burst 400 --hashlimit-mode srcip --hashlimit-name web_ddos -j DROP # UDP 洪水: 非业务端口丢弃 + 业务端口限速 iptables -A INPUT -p udp -m limit --limit 500/s --limit-burst 1000 -j ACCEPT iptables -A INPUT -p udp -j DROP # ICMP 速率限制 (ping 洪水) iptables -A INPUT -p icmp -m limit --limit 5/s --limit-burst 10 -j ACCEPT iptables -A INPUT -p icmp -j DROP # 端口扫描防护 iptables -A INPUT -p tcp --tcp-flags ALL ACK -m recent --name portscan --set iptables -A INPUT -p tcp --tcp-flags ALL ACK -m recent --name portscan --rcheck --seconds 60 --hitcount 20 -j DROP # 默认策略: 入站丢弃无效, 其余按业务自行放行 iptables -P FORWARD DROP # 保存: iptables-save > /etc/iptables/rules.v4
