在 Debian 里用 iptables 防攻击,通常目标是:
✅ 防 SYN Flood
✅ 防端口扫描
✅ 限制连接频率
✅ 防暴力破解(SSH、Web)
✅ 防止 spoof / 异常包
下面给你一套 实战可用、由浅入深 的防护方案(不依赖 fail2ban,纯 iptables)。
# 清除旧规则(测试环境用)
iptables -F
iptables -X
# 默认策略
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
iptables -N SYN_FLOOD
iptables -A INPUT -p tcp --syn -j SYN_FLOOD
iptables -A SYN_FLOOD -m limit --limit 50/s --limit-burst 100 -j RETURN
iptables -A SYN_FLOOD -j DROP
✅ 效果:
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP
iptables -A INPUT -f -j DROP
iptables -A INPUT -p tcp --dport 22 -m connlimit \
--connlimit-above 3 -j DROP
iptables -A INPUT -p tcp --dport 80 -m connlimit \
--connlimit-above 20 -j DROP
iptables -A INPUT -p tcp --dport 443 -m connlimit \
--connlimit-above 20 -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 5 -j DROP
✅ 效果:
iptables -A INPUT -p icmp --icmp-type echo-request \
-m limit --limit 1/s --limit-burst 3 -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP
iptables -A INPUT -p icmp -j DROP
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
apt install iptables-persistent -y
netfilter-persistent save
或手动:
iptables-save > /etc/iptables/rules.v4
✅ 中小服务器推荐最低配置
ESTABLISHED,RELATED 允许
SSH 防暴力(recent)
SYN 限速
connlimit
禁 ping
✅ 高防场景
iptables -P INPUT ACCEPT 测试如果你愿意,我可以:
直接告诉我你的 Debian 版本 + 用途 即可。