在 CentOS Stream 8 中,你可以使用 firewalld
来管理防火墙规则。以下是一些基本的步骤和示例,帮助你编写和配置防火墙规则。
如果你的系统上还没有安装 firewalld
,可以使用以下命令进行安装:
sudo dnf install 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 地址 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
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 中编写和配置基本的防火墙规则。根据你的具体需求,可以进一步调整和扩展这些规则。