温馨提示×

centos stream8防火墙规则怎么写

小樊
35
2025-10-09 00:32:39
栏目: 智能运维

在 CentOS Stream 8 中,你可以使用 firewalld 来管理防火墙规则。以下是一些基本的步骤和示例,帮助你编写和配置防火墙规则。

安装 firewalld

如果你的系统上还没有安装 firewalld,可以使用以下命令进行安装:

sudo dnf install firewalld 

启动和启用 firewalld

安装完成后,启动 firewalld 服务并设置为开机自启:

sudo systemctl start firewalld sudo systemctl enable firewalld 

查看当前防火墙状态

你可以使用以下命令查看当前的防火墙状态和活动区域:

sudo firewall-cmd --state sudo firewall-cmd --get-active-zones 

添加防火墙规则

允许特定端口

例如,允许 TCP 端口 80 和 443:

sudo firewall-cmd --permanent --zone=public --add-port=80/tcp sudo firewall-cmd --permanent --zone=public --add-port=443/tcp 

允许特定服务

例如,允许 HTTP 和 HTTPS 服务:

sudo firewall-cmd --permanent --zone=public --add-service=http sudo firewall-cmd --permanent --zone=public --add-service=https 

允许特定 IP 地址或子网

例如,允许来自特定 IP 地址 192.168.1.100 的访问:

sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.100" accept' 

允许特定接口

例如,允许来自特定网络接口 eth0 的流量:

sudo firewall-cmd --permanent --zone=public --add-interface=eth0 

重新加载防火墙配置

在添加或修改规则后,需要重新加载防火墙配置以使更改生效:

sudo firewall-cmd --reload 

查看防火墙规则

你可以使用以下命令查看当前的防火墙规则:

sudo firewall-cmd --list-all 

删除防火墙规则

如果你需要删除某个规则,可以使用以下命令:

删除特定端口

sudo firewall-cmd --permanent --zone=public --remove-port=80/tcp 

删除特定服务

sudo firewall-cmd --permanent --zone=public --remove-service=http 

删除特定 IP 地址或子网

sudo firewall-cmd --permanent --zone=public --remove-rich-rule='rule family="ipv4" source address="192.168.1.100" accept' 

删除特定接口

sudo firewall-cmd --permanent --zone=public --remove-interface=eth0 

示例:配置自定义区域

假设你想创建一个名为 my_custom_zone 的自定义区域,并为其添加一些规则:

# 创建自定义区域 sudo firewall-cmd --permanent --new-zone=my_custom_zone # 将接口 eth1 分配给自定义区域 sudo firewall-cmd --permanent --zone=my_custom_zone --change-interface=eth1 # 允许自定义区域中的所有 TCP 流量 sudo firewall-cmd --permanent --zone=my_custom_zone --add-service=tcp # 重新加载防火墙配置 sudo firewall-cmd --reload 

通过这些步骤,你应该能够在 CentOS Stream 8 中编写和配置基本的防火墙规则。根据你的具体需求,可以进一步调整和扩展这些规则。

0