温馨提示×

centos防火墙如何设规则

小樊
52
2026-10-02 21:56:13
栏目: 智能运维

在 CentOS 中,防火墙工具取决于系统版本:

  • CentOS 7 / 8 / Stream:默认使用 firewalld
  • CentOS 6 及更早:使用 iptables

下面分别说明。


一、CentOS 7/8/Stream(firewalld)

1. 查看防火墙状态

systemctl status firewalld
# 或
firewall-cmd --state

2. 启动 / 停止 / 开机自启

systemctl start firewalld
systemctl enable firewalld
systemctl stop firewalld
systemctl disable firewalld

3. 查看当前规则

firewall-cmd --list-all
firewall-cmd --list-ports
firewall-cmd --list-services

4. 开放端口(如 80、3306)

# 临时生效
firewall-cmd --add-port=80/tcp

# 永久生效
firewall-cmd --add-port=80/tcp --permanent

5. 开放服务(如 http、ssh)

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=ssh --permanent

6. 删除规则

firewall-cmd --remove-port=80/tcp --permanent
firewall-cmd --remove-service=http --permanent

7. 重新加载规则(必做)

firewall-cmd --reload

8. 指定 IP 允许访问某端口(富规则)

firewall-cmd --permanent --add-rich-rule='
rule family="ipv4"
source address="192.168.1.100"
port protocol="tcp" port="3306" accept'
firewall-cmd --reload

9. 拒绝某 IP

firewall-cmd --permanent --add-rich-rule='
rule family="ipv4"
source address="192.168.1.200"
reject'

二、CentOS 6(iptables)

1. 查看规则

iptables -L -n

2. 开放端口

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

3. 保存规则

service iptables save

4. 重启防火墙

service iptables restart

三、常见示例

✅ 只允许公司 IP 访问 22 端口:

firewall-cmd --permanent --add-rich-rule='
rule family="ipv4"
source address="10.0.0.0/24"
service name="ssh" accept'
firewall-cmd --permanent --remove-service=ssh
firewall-cmd --reload

✅ 禁止 ping:

firewall-cmd --permanent --add-rich-rule='
rule protocol value="icmp" reject'
firewall-cmd --reload

如果你能说明:

  • CentOS 版本
  • 想实现的具体规则(端口 / IP / 服务)

我可以给你直接可执行的命令。

0 踩