在 CentOS 上设置 iptables 防火墙策略,不同版本差异较大,下面按常见场景详细说明(CentOS 6 / CentOS 7/8 都覆盖)。
systemctl status iptables
或
iptables -V
✅ 如果需要直接用 iptables:
systemctl stop firewalld
systemctl disable firewalld
yum install -y iptables-services
systemctl enable iptables
systemctl start iptables
iptables 有三张常用表:
| 表 | 作用 |
|---|---|
| filter | 过滤(最常用) |
| nat | 地址转换 |
| mangle | 高级包修改 |
常用链:
iptables -L -n -v
查看指定表:
iptables -t nat -L -n -v
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
⚠️ 建议限制来源 IP
iptables -A INPUT -p tcp -s 192.168.1.100 --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
⚠️ 先确认 SSH 已允许,否则会断线!
iptables -D INPUT -p tcp --dport 22 -j ACCEPT
iptables -L --line-numbers
iptables -D INPUT 3
service iptables save
service iptables save
或
iptables-save > /etc/sysconfig/iptables
重启后自动生效:
systemctl restart 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 state --state ESTABLISHED,RELATED -j ACCEPT
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
iptables -A INPUT -p icmp -j ACCEPT
✅ 新系统建议:
如果你愿意,我可以:
你用的是 CentOS 几?是否允许 SSH 断线?