温馨提示×

centos iptables怎么配置

小樊
45
2026-09-02 16:06:09
栏目: 智能运维

下面给你一份 CentOS 下 iptables 配置实用指南,涵盖 CentOS 6/7/8(未用 firewalld 时) 的常见用法。


一、确认系统是否使用 iptables

CentOS 6

默认使用 iptables。

CentOS 7/8

默认是 firewalld,如要用 iptables:

systemctl stop firewalld
systemctl disable firewalld

yum install -y iptables-services
systemctl enable iptables
systemctl start iptables

二、查看当前规则

iptables -L -n -v

清空所有规则(谨慎):

iptables -F
iptables -X

三、基础规则配置示例

1️⃣ 允许本地回环

iptables -A INPUT -i lo -j ACCEPT

2️⃣ 允许已建立连接

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

3️⃣ 开放 SSH(22 端口)

iptables -A INPUT -p tcp --dport 22 -j ACCEPT

4️⃣ 开放 HTTP / HTTPS

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

5️⃣ 设置默认策略(最后做)

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

四、保存 iptables 规则

CentOS 6

service iptables save

CentOS 7/8(iptables-services)

service iptables save
# 或
/usr/libexec/iptables/iptables.init save

规则保存在:

/etc/sysconfig/iptables

五、常用端口示例

服务 端口
SSH 22
MySQL 3306
Redis 6379
DNS 53

示例(仅允许指定 IP 访问 MySQL):

iptables -A INPUT -p tcp -s 192.168.1.100 --dport 3306 -j ACCEPT
iptables -A INPUT -p tcp --dport 3306 -j DROP

六、NAT 配置(网关/转发)

开启转发:

echo 1 > /proc/sys/net/ipv4/ip_forward

SNAT 示例:

iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -j MASQUERADE

七、防简单攻击(可选)

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

八、重启 iptables

systemctl restart iptables

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

  • ✅ CentOS 版本
  • ✅ 用途(服务器 / 网关 / 内网)
  • ✅ 需要开放哪些端口

我可以直接给你一份 可复制的完整 iptables 脚本

0