firewalld 是 Linux 系统中的一款动态防火墙管理工具,常用于管理系统的网络流量和访问控制。它通过定义不同的区域和服务来控制网络流量,并支持对端口和服务的开放、封禁等操作。本文将介绍一些常见的 firewalld 命令和操作方法。
1. 检查 firewalld 的状态
首先,检查 firewalld 是否正在运行:
sudo firewall-cmd --state
如果返回 running,说明防火墙正在运行。如果防火墙未运行,可以使用以下命令启动它:
sudo systemctl start firewalld
2. 查看防火墙的当前区域和规则
firewalld 使用区域来管理不同的网络接口。可以使用以下命令查看当前使用的区域:
sudo firewall-cmd --get-default-zone
查看当前区域的详细规则:
sudo firewall-cmd --list-all
3. 临时开放端口
如果你希望临时开放某个端口(例如 9100 端口),可以使用以下命令:
sudo firewall-cmd --zone=public --add-port=9100/tcp
此命令会将 9100 端口开放,且仅在当前会话中有效。系统重启后设置会失效。
4. 永久开放端口
如果希望永久开放某个端口,可以使用 --permanent 参数:
sudo firewall-cmd --zone=public --add-port=9100/tcp --permanent
使用此命令后,规则会永久生效,即使系统重启也不会丢失。
5. 临时封禁端口
要临时封禁某个端口,可以使用以下命令:
sudo firewall-cmd --zone=public --remove-port=9100/tcp
这会立即封禁 9100 端口,但仅在当前会话中有效,重启后需要重新设置。
6. 永久封禁端口
如果希望永久封禁某个端口,可以使用 --permanent 参数:
sudo firewall-cmd --zone=public --remove-port=9100/tcp --permanent
该命令会将端口 9100 永久封禁,不会因为重启而丢失。
7. 查看开放的端口
查看当前已开放的所有端口:
sudo firewall-cmd --list-ports
此命令会列出当前所有开放的端口及协议类型。
8. 添加和移除服务
firewalld 也支持通过服务名来开放或封禁端口。例如,如果你需要开放 http 服务:
临时开放 HTTP 服务:
sudo firewall-cmd --zone=public --add-service=http
永久开放 HTTP 服务:
sudo firewall-cmd --zone=public --add-service=http --permanent
要移除服务,可以使用以下命令:
sudo firewall-cmd --zone=public --remove-service=http --permanent
9. 重新加载防火墙配置
在做出更改后,需要重新加载防火墙配置才能使更改生效:
sudo firewall-cmd --reload
10. 永久禁用 firewalld
如果你不需要使用 firewalld,可以选择禁用它:
sudo systemctl stop firewalld # 停止 firewalld 服务
sudo systemctl disable firewalld # 禁用 firewalld 服务
11. 查看防火墙日志
如果你希望查看防火墙的日志,以便了解哪些流量被阻止或放行,可以使用以下命令:
sudo journalctl -u firewalld
12. 设置防火墙的默认区域
你可以通过以下命令设置 firewalld 的默认区域:
sudo firewall-cmd --set-default-zone=public
13. 查看所有可用的服务和端口
你可以查看 firewalld 支持的所有服务及其对应的端口:
sudo firewall-cmd --get-services
总结
firewalld 是一个强大的防火墙管理工具,能够帮助用户灵活地控制系统的网络流量。通过以上命令,你可以实现对端口和服务的放行、封禁、查看等操作。在使用时,记得根据自己的需求选择临时或永久规则,并定期检查防火墙状态和配置,确保系统的安全。