温馨提示×

centos iptables怎样防攻击

小樊
53
2026-09-11 15:07:02
栏目: 网络安全

在 CentOS 上使用 iptables 做基础防攻击(防扫描、防暴力、防洪水等),可以从以下几个方面入手。下面以 CentOS 7 为例(CentOS 6 类似,CentOS 8 默认用 nftables,但仍可装 iptables)。


一、基础安全规则(必做)

1. 清空并重置规则(谨慎操作)

iptables -F
iptables -X
iptables -Z

2. 默认策略(先拒绝,再放行)

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

3. 放行本地和已建立连接

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

二、防端口扫描 & 非法包

1. 丢弃非法包

iptables -A INPUT -m state --state INVALID -j DROP

2. 限制端口扫描(syn flood 类)

iptables -N SYNFLOOD
iptables -A SYNFLOOD -m limit --limit 10/s --limit-burst 20 -j RETURN
iptables -A SYNFLOOD -j DROP
iptables -A INPUT -p tcp --syn -j SYNFLOOD

三、防 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 秒内同一 IP 超过 4 次 SSH 连接直接丢弃

方法二:使用 connlimit

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

四、防 DDoS / 洪水攻击

1. ICMP(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

2. 限制单 IP 并发连接

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

3. 限制新建连接速率

iptables -A INPUT -p tcp --dport 80 -m limit --limit 50/s --limit-burst 100 -j ACCEPT

五、防 spoofing(伪造 IP)

iptables -A INPUT -s 127.0.0.0/8 ! -i lo -j DROP
iptables -A INPUT -s 0.0.0.0/8 -j DROP
iptables -A INPUT -s 169.254.0.0/16 -j DROP
iptables -A INPUT -s 224.0.0.0/4 -j DROP
iptables -A INPUT -s 240.0.0.0/5 -j DROP

六、日志 + 自动封禁(进阶)

记录攻击 IP

iptables -A INPUT -p tcp --dport 22 -m limit --limit 5/min -j LOG --log-prefix "SSH-ATTACK: "

配合 fail2ban(强烈推荐)

yum install epel-release -y
yum install fail2ban -y
systemctl enable fail2ban

七、保存 iptables 规则(CentOS 7)

service iptables save
# 或
iptables-save > /etc/sysconfig/iptables

八、推荐组合方案(实战)

✅ SSH:改端口 + iptables 限流 + fail2ban
✅ Web:limit + connlimit
✅ 系统层:sysctl 防 syn flood
✅ 网络层:云防火墙 / 安全组


如果你愿意,我可以:

  • 给你一份 可直接用的 iptables 脚本
  • 针对 Web / SSH / 游戏服务器 定制规则
  • 教你 iptables + fail2ban 最佳配置

你现在是哪种服务器场景?

0 踩