Linux firewalld 命令詳解

唐青枫發表於2024-11-26

簡介

firewalld 是一個在 Linux 中的防火牆管理工具,提供動態介面管理網路流量,它使用區域來定義網路連線的信任級別,並支援 IPv4 和 IPv6。

常用示例

啟動防火牆

sudo systemctl start firewalld

停止防火牆

sudo systemctl stop firewalld

設定防火牆開機自啟動

sudo systemctl enable firewalld

禁止防火牆開機自啟動

sudo systemctl disable firewalld

檢查防火牆的狀態

sudo systemctl status firewalld

重新載入防火牆的配置

sudo firewall-cmd --reload

檢視活動防火牆狀態

sudo firewall-cmd --state

列出所有活動區域

sudo firewall-cmd --get-active-zones

檢視指定區域的規則

sudo firewall-cmd --list-all --zone=public

列出所有區域

sudo firewall-cmd --get-zones

設定預設的區域

sudo firewall-cmd --set-default-zone=trusted

新增一個介面到區域

sudo firewall-cmd --zone=public --add-interface=eth0

從區域中移除一個介面

sudo firewall-cmd --zone=public --remove-interface=eth0

檢視指定區域的介面

sudo firewall-cmd --get-zone-of-interface=eth0

列出所有支援的服務

sudo firewall-cmd --get-services

新增一個服務到區域

sudo firewall-cmd --zone=public --add-service=http

從區域中移除一個服務

sudo firewall-cmd --zone=public --remove-service=http

檢查服務是否是啟動的

sudo firewall-cmd --zone=public --query-service=http

使服務變更永久生效

sudo firewall-cmd --zone=public --add-service=http --permanent

臨時開啟一個埠

sudo firewall-cmd --zone=public --add-port=8080/tcp

臨時關閉一個埠

sudo firewall-cmd --zone=public --remove-port=8080/tcp

使變更埠永久生效

sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent

列出在區域中開啟的埠

sudo firewall-cmd --zone=public --list-ports

允許來自指定 IP 的流量

sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" 
source address="192.168.1.100" accept'

阻止來自指定 IP 的流量

sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" 
source address="192.168.1.100" drop'

記錄並丟棄來自指定 IP 的流量

sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" 
source address="192.168.1.100" log prefix="Blocked: " level="info" drop'

使規則永久生效

sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" 
source address="192.168.1.100" accept' --permanent

啟用偽裝

sudo firewall-cmd --zone=public --add-masquerade

停用偽裝

sudo firewall-cmd --zone=public --remove-masquerade

在區域之間轉發流量

sudo firewall-cmd --zone=trusted --add-forward-port
=port=80:proto=tcp:toport=8080:toaddr=192.168.1.100

在指令碼或恢復模式中使用 firewall-offline-cmd

firewall-offline-cmd --add-service=http

永久儲存所有變更到磁碟

sudo firewall-cmd --runtime-to-permanent

相關文章