温馨提示×

ubuntu iptables怎样防攻击

小樊
57
2026-10-01 01:35:04
栏目: 网络安全

在 Ubuntu 上,使用 iptables 可以有效防御常见网络攻击(如 SYN Flood、端口扫描、暴力破解等)。下面按常见攻击类型 + 实用规则示例来说明,并给出一份可直接参考的防护模板。


一、基础安全设置(强烈建议)

1. 设置默认策略

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

2. 允许本地回环

iptables -A INPUT -i lo -j ACCEPT

3. 允许已建立连接

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

二、防 SYN Flood(最常见 DDoS)

启用 SYN Cookie(系统层)

sysctl -w net.ipv4.tcp_syncookies=1

iptables 限制 SYN 速率

iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP

三、防端口扫描

1. 限制新连接速率

iptables -A INPUT -p tcp -m state --state NEW -m limit --limit 10/s --limit-burst 20 -j ACCEPT

2. 丢弃异常包

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 -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP

四、防 SSH 暴力破解

限制 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 4 -j DROP

✅ 效果:60 秒内超过 4 次 SSH 连接直接丢弃


五、防 ICMP / Ping Flood(可选)

限制 ping 速率

iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s -j ACCEPT
iptables -A INPUT -p icmp --icmp-type echo-request -j DROP

六、防大量并发连接(CC 攻击)

单 IP 最大连接数限制

iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP
iptables -A INPUT -p tcp --dport 443 -m connlimit --connlimit-above 50 -j DROP

七、完整示例(Web 服务器)

iptables -F
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 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 4 -j DROP
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# Web
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# 防 SYN
iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP

八、保存规则(Ubuntu)

apt install iptables-persistent
netfilter-persistent save

九、进阶建议

  • 使用 fail2ban(自动封 IP)
  • 使用 ufw(简化管理)
  • 高防场景:结合 云防火墙 / CDN / nginx 限流

如果你愿意,可以告诉我:

  • Ubuntu 版本
  • 是否公网服务器
  • 主要服务(SSH / Web / DB)

我可以帮你定制一套 最小可用安全规则。

0 踩