温馨提示×

Debian iptables怎么防攻击

小樊
44
2026-07-15 09:24:38
栏目: 网络安全

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

1️⃣ 允许本地回环

iptables -A INPUT -i lo -j ACCEPT

2️⃣ 允许已建立连接

iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT

二、防 SYN Flood(TCP 攻击)

✅ SYN 限速(常用)

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

✅ 效果:

  • 限制每秒 50 个 SYN
  • 防止半开连接打爆服务器

三、防端口扫描 & 异常包

1️⃣ 丢弃非法 TCP 包

iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

2️⃣ 防止碎片包攻击

iptables -A INPUT -f -j DROP

四、限制单 IP 连接数(防 CC)

✅ 限制 SSH 连接(推荐)

iptables -A INPUT -p tcp --dport 22 -m connlimit \
--connlimit-above 3 -j DROP

✅ 限制 Web(80/443)

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

五、限制连接频率(防暴力破解)

✅ SSH 防暴力破解

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

✅ 效果:

  • 60 秒内同一 IP 超过 5 次新连接 → 丢弃

六、防 ICMP(Ping)攻击

1️⃣ 限制 Ping 频率

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

2️⃣ 或直接禁 Ping

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

八、保存规则(非常重要)

Debian 11/12

apt install iptables-persistent -y
netfilter-persistent save

或手动:

iptables-save > /etc/iptables/rules.v4

九、实战推荐组合(直接用)

中小服务器推荐最低配置

ESTABLISHED,RELATED 允许
SSH 防暴力(recent)
SYN 限速
connlimit
禁 ping

高防场景

  • iptables + fail2ban
  • iptables + Cloudflare
  • 或换 nftables

十、注意事项 ⚠️

  • ❌ 不要远程直接清空规则,可能断连
  • ✅ 先用 iptables -P INPUT ACCEPT 测试
  • ✅ 云服务器注意安全组是否冲突

如果你愿意,我可以:

  • ✅ 给你 一套完整可直接复制的脚本
  • ✅ 针对 SSH / 网站 / 游戏服务器 定制
  • ✅ 帮你 迁移到 nftables

直接告诉我你的 Debian 版本 + 用途 即可。

0