確保網路安全是 Fedora Linux 用戶的首要任務。實現這一目標的一種有效方法是使用 Firewalld,這是一款專為 Linux 系統(包括 Fedora)量身定制的動態防火牆管理器。
Firewalld 提供了幾個突出的功能:
- 動態管理:Firewalld 允許使用者即時更改防火牆設置,而無需重新啟動服務。
- 分區管理:使用者可以將網路介面分組到不同的區域,每個區域都有特定的防火牆規則,從而允許不同程度的信任。
- 豐富的語言規則:此功能提供對防火牆設定的詳細控制,以適應不同網路需求的複雜規則和例外。
- 特定於服務的配置:Firewalld 允許使用者為單一服務或應用程式設定特定的防火牆規則,從而新增另一層自訂。
- IPv6支援:憑藉 IPv6 相容性,Firewalld 可確保您的系統在互聯網過渡到下一代 IP 位址時保持安全。
對於桌面和伺服器 Fedora 用戶來說,Firewalld 都是無價的。在桌面端,它控制傳入和傳出流量,確保更安全的瀏覽體驗、更好的隱私並降低惡意軟體或資料外洩風險。對於通常更多地暴露在互聯網上的伺服器來說,Firewalld 對不同網路區域的服務管理和特定防火牆配置對於減少漏洞至關重要。
現在,讓我們繼續安裝firewalld。在本指南結束時,您將具備增強 Fedora 系統安全性並確保安全且有效率的網路環境的能力。
驗證 Firewalld 是否存在
在安裝 Firewalld 之前,檢查您的系統上是否已安裝 Firewalld 至關重要。此初步驗證有助於避免後續安裝過程中潛在的衝突或冗餘。完成此操作的命令很簡單:
firewall-cmd --version
當您執行此命令時,如果您的系統上安裝了防火牆版本,則應返回防火牆版本。如果 Firewalld 不存在,您將收到錯誤訊息,指示其不存在。
透過DNF命令安裝Firewalld
如果您的系統沒有安裝 Firewalld,下一步就是安裝它。我們透過以下方式實現這一目標 dnf
套件管理器,Fedora Linux 中管理軟體的可靠工具。若要安裝 Firewalld,請執行以下命令:
sudo dnf install firewalld
該命令指示 dnf
安裝 Firewalld 軟體包,從 Fedora 儲存庫中提取它。此步驟對於您加強網路安全和有效流量管理的旅程至關重要。
啟用防火牆
成功安裝後,以下操作將確保 Firewalld 已啟用。這表示 Firewalld 將在每次系統啟動時自動啟動,為您的網路維護一致的安全防護。啟用Firewalld的指令是:
sudo systemctl enable firewalld
該指令使用 systemctl
啟用 Firewalld 服務的工具。每次您的 Fedora 系統啟動時,Firewalld 也會啟動,保護您的網路。
驗證 Firewalld 服務運行
本節的最後一步是驗證 Firewalld 是否正常運作。此關鍵步驟確認前面的步驟已成功執行且 Firewalld 可以運作。若要驗證 Firewalld 服務,請使用下列命令:
sudo systemctl status firewalld
此命令傳回 Firewalld 服務的狀態。如果 Firewalld 正在運行,您將看到一個輸出,指示該服務處於活動狀態並正在運行。否則,您必須重新訪問前面的步驟來糾正遇到的任何問題。
基本 Firewalld 指令
了解 Firewalld 命令的語法對於正確使用它們至關重要。基本語法採用以下形式:
firewall-cmd [options] command
firewall-cmd
是 Firewalld 的命令列客戶端。options
是可以修改行為的附加參數firewall-cmd
。一些常見的選項包括--zone
(指定防火牆區域),--permanent
(使變更在重新啟動後保持不變),以及--reload
(立即套用變更)。command
是執行特定操作的命令,例如新增或刪除服務。
在了解語法後,我們現在將探討十個最常用的基本 Firewalld 指令。
顯示所有帶有 Firewalld 的區域
此命令可讓您查看 Firewalld 中的所有現有區域。
firewall-cmd --list-all-zones
使用 Firewalld 取得預設區域
使用此命令,您可以檢索預設區域的名稱。
firewall-cmd --get-default-zone
使用 Firewalld 設定預設區域
您可以使用以下命令設定新的預設區域,將“zone_name”替換為您的首選區域的名稱。
firewall-cmd --set-default-zone=zone_name
使用 Firewalld 列出區域中的服務
您可以使用此命令列出特定區域內的所有服務,並將“zone_name”替換為您的區域名稱。
firewall-cmd --zone=zone_name --list-services
使用 Firewalld 將服務新增至區域
此命令使向區域添加服務變得簡單。將“zone_name”替換為您的區域名稱,將“service_name”替換為您要新增的服務。
firewall-cmd --zone=zone_name --add-service=service_name
使用 Firewalld 從區域中刪除服務
如果需要從特定區域中刪除服務,請使用此命令。將“zone_name”替換為您的區域名稱,將“service_name”替換為您要刪除的服務。
firewall-cmd --zone=zone_name --remove-service=service_name
重新載入防火牆
此命令可讓您在不中斷現有連線的情況下套用變更。
firewall-cmd --reload
使用 Firewalld 列出區域中的所有規則
若要查看區域內的所有規則,請使用下列命令,將「zone_name」替換為您的區域名稱。
firewall-cmd --zone=zone_name --list-all
使用 Firewalld 將連接埠新增至區域
使用此命令將特定連接埠新增至區域非常簡單。將“zone_name”替換為您的區域,將“port_number”替換為連接埠號,將“protocol”替換為協定(tcp 或 udp)。
firewall-cmd --zone=zone_name --add-port=port_number/protocol
使用 Firewalld 從區域中刪除端口
相反,如果需要從區域中刪除端口,請使用以下命令。將“zone_name”替換為您的區域,將“port_number”替換為連接埠號,將“protocol”替換為協定。
firewall-cmd --zone=zone_name --remove-port=port_number/protocol
進階 Firewalld 命令和場景
瀏覽 Firewalld 的進階環境需要了解更複雜的命令和場景。讓我們探討五個這樣的場景,以進一步加深您對 Firewalld 的掌握。
場景 1:使用 Firewalld 將連接埠新增至區域
若要將特定連接埠新增至區域,請使用:
sudo firewall-cmd --zone=your_zone --add-port=your_port/protocol
將“your_zone”、“your_port”和“協定”替換為您的區域名稱、所需連接埠和協定(tcp 或 udp)。
場景 2:使用 Firewalld 從區域中刪除端口
若要從區域中刪除連接埠:
sudo firewall-cmd --zone=your_zone --remove-port=your_port/protocol
同樣,「your_zone」、「your_port」和「協定」應替換為您的具體詳細資料。
情境 3:使用 Firewalld 建立新區域
建立新區域:
sudo firewall-cmd --new-zone=your_zone --permanent
將“your_zone”替換為您想要的新區域名稱。
情境 4:使用 Firewalld 刪除區域
刪除區域:
sudo firewall-cmd --delete-zone=your_zone --permanent
此處,「your_zone」應替換為您要刪除的區域的名稱。
情境 5:使用 Firewalld 封鎖 IP 位址
最後,要封鎖特定的 IP 位址:
sudo firewall-cmd --zone=your_zone --add-source=ip_address
sudo firewall-cmd --zone=your_zone --add-rich-rule='rule family="ipv4" source address="ip_address" reject'
在這些命令中,「your_zone」和「ip_address」應替換為您要封鎖的區域名稱和 IP 位址。第一個命令將 IP 位址新增至區域,而第二個命令拒絕來自該 IP 的所有流量。
結束對 Firewalld 的思考
在本指南中,我們全面概述了在 Fedora Linux 上安裝和管理 Firewalld。從安裝到實施基本命令和處理高級場景,概述的步驟應該使任何使用者(無論其專業知識水平如何)都能熟練地瀏覽 Firewalld。為了持續取得成功,建議繼續探索這個強大的防火牆解決方案的功能,並使用官方資源進行持續學習和故障排除。