概述
firewalld 是一個控制系統網路流量的守護進程,通過預定義的區域(zone),可以根據網路介面或來源 IP 位址應用不同的安全級別。它提供了一個用戶友好的介面,而不是直接處理複雜的 iptables 規則。
主要特點
- 動態規則管理:無需重新啟動服務即可更改規則
- 基於區域(Zone):根據網路介面或來源應用不同的安全策略
- 服務和埠管理:方便開啟/阻止特定服務(如 SSH、HTTP 等)或埠
- 豐富規則(Rich Rules):可設定基於複雜條件的規則
- 支援 IPv4 和 IPv6
主要選項
這些選項用於運行 firewalld 守護進程本身。大多數防火牆規則管理通過 firewall-cmd 命令進行。
守護進程運行選項
生成的命令:
請試著組合命令。
這個 Django 應用程序是一個技術指南文檔,旨在為用戶輕鬆解釋 Linux 的各種命令。
`firewalld` 執行命令。
請將上述選項組合在一起,與 AI 一同虛擬執行命令。
使用範例
firewalld 服務主要通過 systemctl 命令管理。防火牆規則設定使用 firewall-cmd 命令。
啟動 firewalld 服務
sudo systemctl start firewalld
啟動 firewalld 守護進程。
啟用 firewalld 服務(開機時自動啟動)
sudo systemctl enable firewalld
設定 firewalld 在系統啟動時自動啟動。
檢查 firewalld 服務狀態
sudo systemctl status firewalld
檢查 firewalld 服務的當前狀態。
重新啟動 firewalld 服務
sudo systemctl restart firewalld
重新啟動 firewalld 服務。
重新載入 firewalld 設定(更改規則後)
sudo firewall-cmd --reload
在不中斷服務的情況下重新載入防火牆規則以應用更改。
安裝
firewalld 在 CentOS、Fedora、RHEL 等許多 Red Hat 系列 Linux 發行版中預設包含。在 Debian/Ubuntu 系列中可能需要手動安裝。
CentOS/Fedora/RHEL
sudo dnf install firewalld
使用 dnf(或 yum)安裝 firewalld。
Debian/Ubuntu
sudo apt install firewalld
使用 apt 安裝 firewalld。
提示與注意事項
有效使用 firewalld 的提示和注意事項。
利用 firewall-cmd
firewalld 的所有防火牆規則設定和管理都通過 'firewall-cmd' 命令進行。例如,開啟埠、添加服務、設定區域等都需要使用 firewall-cmd。
- 檢查當前活動區域:`firewall-cmd --get-active-zones`
- 開啟特定埠(例如:HTTP 80/tcp):`sudo firewall-cmd --zone=public --add-port=80/tcp --permanent`
- 應用更改:`sudo firewall-cmd --reload`
永久應用規則
使用 firewall-cmd 添加規則時,必須使用 '--permanent' 選項,規則才能在系統重新啟動後保留。使用 '--permanent' 選項後,必須執行 `firewall-cmd --reload` 來應用更改。
理解預設區域
firewalld 預設使用 'public' 區域,但也提供 'home'、'work'、'internal'、'external'、'trusted'、'drop'、'block' 等多種區域。每個區域具有不同的安全級別。
與 iptables 的關係
firewalld 在內部使用 iptables(或 nftables),但提供了一個比直接使用 iptables 命令更抽象的介面。在使用 firewalld 的系統中,建議避免直接操作 iptables 命令。