概述
firewall-cmd 與 firewalld 服務交互以控制系統的網絡流量。您可以區分應用永久規則和運行時規則,並通過各種網絡區域(zone)提供靈活的安全策略。這有助於增強服務器的安全性,並允許或阻止對特定服務的訪問。
主要功能
- 端口和服務管理(添加/刪除)
- 網絡區域(Zone)配置和管理
- 基於 IP 地址和網絡的規則(Rich Rules)
- 應用運行時和永久規則
- NAT(Masquerading)和端口轉發配置
主要選項
firewall-cmd 允許您使用各種選項查詢和配置防火牆規則。
規則應用和管理
信息查詢
生成的命令:
請試著組合命令。
這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。
`firewall-cmd` 執行命令。
請將上述選項組合在一起,與 AI 一同虛擬執行命令。
使用範例
使用 firewall-cmd 配置和管理防火牆規則的各種範例。
檢查當前活動區域和規則
firewall-cmd --list-all
檢查默認區域(public)的所有當前運行時配置。
檢查特定區域的所有配置
firewall-cmd --zone=internal --list-all
檢查指定區域(例如:internal)的所有配置。
添加 HTTP 服務(運行時)
sudo firewall-cmd --zone=public --add-service=http
臨時允許 public 區域的 HTTP 服務。重啟後將失效。
添加 HTTP 服務(永久)
sudo firewall-cmd --zone=public --add-service=http --permanent
永久允許 public 區域的 HTTP 服務。需要執行 --reload 來應用更改。
重新加載防火牆規則
sudo firewall-cmd --reload
將所有永久設置的規則應用到當前的運行時防火牆。
添加端口 8080/tcp(永久)
sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent
永久允許 public 區域的 TCP 8080 端口。應用後需要重新加載。
移除 SSH 服務(永久)
sudo firewall-cmd --zone=public --remove-service=ssh --permanent
從 public 區域永久移除 SSH 服務。應用後需要重新加載。
應用所有永久規則
sudo firewall-cmd --reload
立即應用所有永久更改的規則。
安裝
firewall-cmd 是 firewalld 軟件包的一部分。大多數最新的 Linux 發行版都預裝了它,或者可以輕鬆安裝。
CentOS/RHEL/Fedora
sudo dnf install firewalld
在 Red Hat 系列 Linux 上安裝 firewalld。
Ubuntu/Debian
sudo apt install firewalld
在 Debian 系列 Linux 上安裝 firewalld。
啟動和啟用服務
sudo systemctl start firewalld
sudo systemctl enable firewalld
安裝後,啟動 firewalld 服務並啟用它以在系統啟動時自動運行。
提示與注意事項
使用 firewall-cmd 時需要注意的事項和有用的提示。
運行時規則 vs 永久規則
- 沒有 `--permanent` 選項的規則僅適用於當前會話,重啟後將失效。
- 要永久應用,請使用 `--permanent` 選項,然後執行 `firewall-cmd --reload` 命令來應用更改。
理解區域(Zone)
- firewalld 通過將網絡接口分配給多個安全區域來進行管理。每個區域可以具有不同的安全級別。
- 默認區域是 `public`,用於大多數外部連接。還有 `home`、`internal`、`trusted` 等多種區域。
使用服務名稱
- 使用預定義的服務名稱,如 `http`、`https`、`ssh`,而不是端口號(例如 80/tcp),在可讀性和管理便利性方面更好。
- 您可以使用 `firewall-cmd --get-services` 命令查看可用服務列表。
備份與測試
- 在進行重要更改之前,建議使用 `firewall-cmd --list-all --zone=<zone>` 命令記錄當前配置。
- 應用更改後,請務必測試相關服務是否正常運行。