以下是 firewalld 學習筆記
firewall 網路來源優先
- 有設定 IP source 優先
- 有設定 網卡 優先
- 預設區域
區域簡介
firewalld 的區域(zone)可用來設定網路連線、介面等所處的運作環境,對內使用的區域其防火牆規則會較為寬鬆,反之若是對外的區域其規則會較為嚴謹。
一條網路連線或介面只能隸屬於一個區域,我們可以自訂區域的設定,也可以直接從 firewalld 預設的幾個區域中選擇:
| 區域 | 描述 | 
|---|---|
| drop | 任何往內的封包都會被丟棄,只允許往外傳送的封包。 | 
| block | 任何來自於外部的連線都會被阻擋,只允許自己系統主動建立的連線。 | 
| public | 公開區域,預設不信任其他電腦與網路,只有被允許的連線才能進入。通常大部分的連線設定都會放在這裡。 | 
| external | 公開區域,適用於 NAT 網路環境。 | 
| dmz | 非軍事區域(demilitarized zone,有點像是放在外頭的危險區域),允許外部的連線進入,但其對內的連線則有限制,只有被允許的連線才能連進內部網路。 | 
| work | 公司內部等工作區域,在此區域中不應該會有惡意的攻擊者。只有被允許的連線可以進入。 | 
| home | 家裡頭的網路區域,在此區域中不應該會有惡意的攻擊者。只有被允許的連線可以進入。 | 
| internal | 內部網路區域,在此區域中不應該會有惡意的攻擊者。只有被允許的連線可以進入。 | 
| trusted | 完全信任的區域,接受所有連線。 | 
| libvirt | KVM 主機介面 | 
| docker | docker 網路介面 | 
firewall-cmd命令中使用的參數以及作用
| 參數 | 作用 | 
|---|---|
| –get-default-zone | 查訪默認的區域名稱 | 
| –set-default-zone=<區域名稱> | 設置默認的區域,使其永久生效 | 
| –get-zones | 顯示可用的區域 | 
| –get-services | 顯示預定義的服務 | 
| –get-active-zones | 顯示當前正在使用的區域、來源地址和網卡名稱 | 
| –add-source= | 將源自此IP或子網的流量導向指定的區域 | 
| –remove-source= | 不再將源自此IP或子網的流量導向這個區域 | 
| –add-interface=<網卡名稱> | 將源自該網卡的所有流量都導向某個指定區域 | 
| –change-interface=<網卡名稱> | 將某個網卡與區域進行關聯 | 
| –list-all | 顯示當前區域的網卡配置參數、資源、端口以及服務等信息 | 
| –list-all-zones | 顯示所有區域的網卡配置參數、資源、端口以及服務等信息 | 
| –add-service=<服務名> | 設置默認區域允許該服務的流量 | 
| –add-port=<端口號/協議> | 設置默認區域允許該端口的流量 | 
| –remove-service=<服務名> | 設置默認區域不再允許該服務的流量 | 
| –remove-port=<端口號/協議> | 設置默認區域不再允許該端口的流量 | 
| –reload | 讓“永久生效”的配置規則立即生效,並覆蓋當前的配置規則 | 
| –panic-on | 開啟應急狀況模式 | 
| –panic-off | 關閉應急狀況模式 | 
遷移網卡到別的區域
- 查詢網卡名稱
sudo ifconfig
- 移除網卡原有區域
- 新增至目標區域
sudo firewall-cmd --permanent --zone=public --change-interface=ens160
sudo firewall-cmd  --permanent --zone=trusted --change-interface=virbr1
sudo firewall-cmd  --permanent --zone=internal --change-interface=eth1
查詢那協正在運作的 zone
sudo firewall-cmd --get-active-zones
規則
開放特定 port
sudo firewall-cmd --permanent --zone=public --add-port=10010/tcp
sudo firewall-cmd --permanent --zone=public --add-port=10020/tcp
sudo firewall-cmd --permanent --zone=libvirt --add-port=33899/tcp
設定IP 只通哪個Port
sudo firewall-cmd --permanent --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.56.1" accept'
允許特定IP/網段
sudo firewall-cmd --permanent --zone=public --remove-rich-rule='rule family="ipv4" source address="172.18.17.0/24" accept'
注意事項
- 設定完需要重新讀取設定
## 重新讀取設定
sudo firewall-cmd --reload
檢查默認區域設置
sudo firewall-cmd --list-all
sudo firewall-cmd --list-internal
- 檢查永久設置
firewall-cmd --zone=work --list-all --permanent
查看指定區域設置
sudo firewall-cmd --zone=trusted --list-all   
查詢版本
sudo firewall-cmd --version
查看firewalld的運行狀態
firewall-cmd --state
 PolloChang 工作筆記
    
    
    
        PolloChang 工作筆記