温馨提示×

centos如何设置iptables策略

小樊
52
2026-08-29 09:55:32
栏目: 智能运维

在 CentOS 上设置 iptables 防火墙策略,不同版本差异较大,下面按常见场景详细说明(CentOS 6 / CentOS 7/8 都覆盖)。


一、确认系统使用的防火墙

1️⃣ 查看是否使用 iptables

systemctl status iptables

或

iptables -V

2️⃣ CentOS 7/8 默认情况

  • 默认使用 firewalld
  • iptables 仍然存在,但 规则由 firewalld 管理

✅ 如果需要直接用 iptables:

systemctl stop firewalld
systemctl disable firewalld
yum install -y iptables-services
systemctl enable iptables
systemctl start iptables

二、iptables 基础概念

iptables 有三张常用表:

表 作用
filter 过滤(最常用)
nat 地址转换
mangle 高级包修改

常用链:

  • INPUT:进入本机
  • OUTPUT:本机发出
  • FORWARD:转发

三、查看当前 iptables 规则

iptables -L -n -v

查看指定表:

iptables -t nat -L -n -v

四、常用 iptables 策略配置示例

✅ 1. 允许已建立连接和相关连接

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

✅ 2. 允许本地回环

iptables -A INPUT -i lo -j ACCEPT

✅ 3. 开放 SSH(22端口)

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

⚠️ 建议限制来源 IP

iptables -A INPUT -p tcp -s 192.168.1.100 --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. 允许 ping(ICMP)

iptables -A INPUT -p icmp -j ACCEPT

✅ 6. 设置默认策略(强烈推荐)

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

六、保存 iptables 规则(非常重要)

CentOS 6

service iptables save

CentOS 7/8(iptables-services)

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 7/8 是否应该使用 iptables?

✅ 新系统建议:

  • firewalld(更现代)
  • iptables 仅用于 兼容老系统 / 老脚本

如果你愿意,我可以:

  • ✅ 给你 firewalld 对应策略
  • ✅ 帮你写 生产级安全规则
  • ✅ 排查 iptables 导致断网问题

你用的是 CentOS 几?是否允许 SSH 断线?

0 踩