如果把服务器比作高速公路,DDoS 攻击就像成千上万辆汽车同时堵塞收费站。本文将用交警指挥交通的比喻,展示如何用 IPTables 构建智能交通管制系统。
一、基础防御:设置流量警察(基础规则)
-
丢弃无效连接
# 过滤非法数据包(如无身份证明的车辆) iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP # 拦截伪造的TCP握手请求(类似识别套牌车)
-
限制新建连接速率
# 每秒最多允许30次TCP握手(类似限流收费站闸口)
-
屏蔽典型攻击源
# 1分钟内访问80端口超过100次自动封禁(抓超速车辆)
二、精准打击:按攻击类型部署策略
4. SYN洪水攻击防御
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/游戏服务器适用)
# 限制DNS查询频率(防止UDP反射攻击)
6. HTTP洪水拦截(CC攻击)
# 每个IP每分钟最多1000次HTTP请求(识别爬虫洪水)
三、智能防护:动态黑名单系统
7. 自动封禁异常IP
iptables -A INPUT -p tcp --dport 443 -m recent --name SSL_ATTACK --update --seconds 300 --hitcount 500 -j DROP # 5分钟内超过500次HTTPS请求的IP自动封禁
8. 临时黑名单释放
# 封禁IP 1小时后自动解封(防止误伤正常用户)
四、高级策略:多维度防御矩阵
9. 国家/地区过滤
# 仅允许中国和美国IP访问(需安装xt_geoip模块)
10. 协议特征识别
# 丢弃带有异常TCP标志的数据包(如Xmas扫描攻击)
11. 连接数限制
# 单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. 优先级排序
# 将高频白名单规则放在最前面
13. 日志监控联动
# 记录异常请求日志,用于后续分析
七、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 |
畸形包攻击 |
重要提醒:
-
所有规则需先测试再上线(
-A
改为-I
临时插入) -
配合
fail2ban
等工具实现自动封禁 -
超大规模攻击仍需结合CDN/云防护(IPTables 单机处理能力有限)
比喻总结:
IPTables 就像服务器的智能交通系统,通过设置收费站限流规则(限速)、车牌识别系统(IP过滤)、事故快速响应机制(动态封禁),让正常流量畅通无阻,让攻击流量无处遁形。