帮助中心

25 个 IPTables 规则:打造 DDoS 防御盾牌的实战手册 打印

  • 0
  • DDoS 防护, IPTables 规则应用, 网络攻击防御

如果把服务器比作高速公路,DDoS 攻击就像成千上万辆汽车同时堵塞收费站。本文将用交警指挥交通的比喻,展示如何用 IPTables 构建智能交通管制系统。


一、基础防御:设置流量警察(基础规则)

  1. 丢弃无效连接

iptables -A INPUT -m conntrack --ctstate INVALID -j DROP  
# 过滤非法数据包(如无身份证明的车辆)  

iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP  
# 拦截伪造的TCP握手请求(类似识别套牌车)  
  1. 限制新建连接速率

iptables -A INPUT -p tcp --syn -m limit --limit 30/sec -j ACCEPT  
# 每秒最多允许30次TCP握手(类似限流收费站闸口)  
  1. 屏蔽典型攻击源

iptables -A INPUT -p tcp --dport 80 -m recent --name BAD_HTTP --update --seconds 60 --hitcount 100 -j DROP  
# 1分钟内访问80端口超过100次自动封禁(抓超速车辆)  

二、精准打击:按攻击类型部署策略

4. SYN洪水攻击防御

iptables -N SYN_FLOOD  
iptables -A SYN_FLOOD -p tcp --syn -m limit --limit 50/s --limit-burst 100 -j RETURN  
iptables -A SYN_FLOOD -j DROP  
iptables -A INPUT -p tcp --syn -j SYN_FLOOD  
# 建立专用通道处理SYN请求,超过阈值直接丢弃  

5. UDP洪水防护(DNS/游戏服务器适用)

iptables -A INPUT -p udp --dport 53 -m state --state NEW -m limit --limit 5/sec -j ACCEPT  
# 限制DNS查询频率(防止UDP反射攻击)  

6. HTTP洪水拦截(CC攻击)

iptables -A INPUT -p tcp --dport 80 -m hashlimit --hashlimit 1000/min --hashlimit-mode srcip --hashlimit-name http -j ACCEPT  
# 每个IP每分钟最多1000次HTTP请求(识别爬虫洪水)  

三、智能防护:动态黑名单系统

7. 自动封禁异常IP

iptables -A INPUT -p tcp --dport 443 -m recent --name SSL_ATTACK --set
iptables -A INPUT -p tcp --dport 443 -m recent --name SSL_ATTACK --update --seconds 300 --hitcount 500 -j DROP  
# 5分钟内超过500次HTTPS请求的IP自动封禁  

8. 临时黑名单释放

iptables -A INPUT -m recent --name BLACKLIST --update --seconds 3600 -j DROP  
# 封禁IP 1小时后自动解封(防止误伤正常用户)  

四、高级策略:多维度防御矩阵

9. 国家/地区过滤

iptables -A INPUT -m geoip ! --src-cc CN,US -j DROP  
# 仅允许中国和美国IP访问(需安装xt_geoip模块)  

10. 协议特征识别

iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP  
# 丢弃带有异常TCP标志的数据包(如Xmas扫描攻击)  

11. 连接数限制

iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j DROP  
# 单IP最多3个SSH连接(防暴力破解)  

五、实战案例:电商网站防御组合

攻击场景:某网站遭遇混合型DDoS攻击(SYN洪水+HTTP CC)
防御规则组合

# 流量清洗层
iptables -A INPUT -p tcp --syn -m limit --limit 100/s -j ACCEPT  

# HTTP层防护
iptables -A INPUT -p tcp --dport 80 -m hashlimit --hashlimit 5000/min --hashlimit-mode srcip --hashlimit-htable-expire 300000 -j ACCEPT  

# 动态黑名单
iptables -A INPUT -m recent --name CC_ATTACK --rcheck --seconds 600 -j DROP  
iptables -A INPUT -p tcp --dport 80 -m recent --name CC_ATTACK --set  

六、规则优化技巧

12. 优先级排序

iptables -I INPUT 1 -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT  
# 将高频白名单规则放在最前面  

13. 日志监控联动

iptables -A INPUT -p tcp --dport 80 -j LOG --log-prefix "HTTP_ATTACK:"
# 记录异常请求日志,用于后续分析  

七、25条规则速查表

规则类型 典型规则示例 防御目标
SYN防御 --limit 50/s --limit-burst 100 SYN洪水
UDP限速 -m limit --limit 5/sec DNS反射攻击
智能黑名单 --hashlimit 1000/min CC攻击
地理围栏 -m geoip ! --src-cc CN 境外IP攻击
协议异常检测 --tcp-flags ALL NONE 畸形包攻击

重要提醒

  1. 所有规则需先测试再上线(-A改为-I临时插入)

  2. 配合fail2ban等工具实现自动封禁

  3. 超大规模攻击仍需结合CDN/云防护(IPTables 单机处理能力有限)

比喻总结
IPTables 就像服务器的智能交通系统,通过设置收费站限流规则(限速)、车牌识别系统(IP过滤)、事故快速响应机制(动态封禁),让正常流量畅通无阻,让攻击流量无处遁形。

这篇文章有帮助吗?
« 返回