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 是一個強大的防火墻管理工具,能夠幫助用戶靈活地控制系統的網絡流量。通過以上命令,你可以實現對端口和服務的放行、封禁、查看等操作。在使用時,記得根據自己的需求選擇臨時或永久規則,并定期檢查防火墻狀態和配置,確保系統的安全。