在 CentOS 系统上,常用的防火墙管理工具是 firewalld
。下面是如何配置 firewalld
来允许特定的服务或端口通过防火墙。
1. 安装和启动 firewalld
首先,确保 firewalld
已安装并正在运行。如果没有安装,可以使用以下命令安装:
sudo yum install firewalld
然后启动并启用 firewalld
:
sudo systemctl start firewalld
sudo systemctl enable firewalld
2. 查看当前的防火墙状态
查看 firewalld
的当前状态和活动区域:
sudo firewall-cmd --state
sudo firewall-cmd --get-active-zones
3. 添加规则
允许特定端口
例如,允许 HTTP (端口 80) 和 HTTPS (端口 443):
sudo firewall-cmd --add-port=80/tcp --permanent
sudo firewall-cmd --add-port=443/tcp --permanent
允许特定服务
例如,允许 SSH (服务名 ssh
) 和 HTTP (服务名 http
):
sudo firewall-cmd --add-service=ssh --permanent
sudo firewall-cmd --add-service=http --permanent
4. 重新加载防火墙规则
添加规则后,需要重新加载防火墙配置以使更改生效:
sudo firewall-cmd --reload
5. 查看已添加的规则
查看当前活动区域的规则:
sudo firewall-cmd --list-all
6. 删除规则
如果需要删除已经添加的规则,可以使用以下命令:
删除特定端口
sudo firewall-cmd --remove-port=80/tcp --permanent
sudo firewall-cmd --remove-port=443/tcp --permanent
删除特定服务
sudo firewall-cmd --remove-service=ssh --permanent
sudo firewall-cmd --remove-service=http --permanent
7. 临时规则
如果你想添加一个临时规则(不会在系统重启后保留),可以省略 --permanent
参数:
sudo firewall-cmd --add-port=80/tcp
sudo firewall-cmd --add-service=http
8. 查看所有可用的服务
你可以查看所有可用的服务列表:
sudo firewall-cmd --get-services
9. 更改默认区域
默认情况下,firewalld
使用 public
区域。你可以更改默认区域:
sudo firewall-cmd --set-default-zone=public
10. 查看特定区域的规则
如果你想查看特定区域的规则,可以使用以下命令:
sudo firewall-cmd --zone=public --list-all
总结
通过以上步骤,你可以轻松地配置 firewalld
来允许特定的服务或端口通过防火墙。确保在添加规则后重新加载防火墙配置,以使更改生效。如果你有任何特定的需求或问题,欢迎继续提问。