防火牆遠端修改最大的風險是把自己的管理連線一起擋掉。先保存規則、確認 console/OOB,先加允許管理來源,再收緊其他流量。
動手前:規則會直接改變連線。這裡只提供明確、最小範圍範例;正式主機不要用 allow any 或 flush 全規則處理問題。變更前準備自動回復或現場 console。
UFW
看 UFW 狀態與編號Ubuntu/UFW
sudo ufw status numbered先盤點規則與順序。
看詳細預設政策Ubuntu/UFW
sudo ufw status verbose確認 default incoming/outgoing。
允許 SSH 服務Ubuntu/UFW
sudo ufw allow OpenSSH使用 application profile 前先 ufw app info OpenSSH。
只允許管理網段連 SSHUbuntu/UFW
sudo ufw allow from 192.0.2.0/24 to any port 22 proto tcp範例網段需換成實際受信任來源。
允許 HTTPSUbuntu/UFW
sudo ufw allow 443/tcp仍需確認服務只綁預期介面。
刪除指定編號規則Ubuntu/UFW
sudo ufw delete <規則編號>先重新 status numbered,編號會隨刪除改變。
查看 application profilesUbuntu/UFW
sudo ufw app list不要假設 profile 開哪些 port。
firewalld
看 active zonesRHEL/Fedora
sudo firewall-cmd --get-active-zones介面與 zone 對應是判讀規則前提。
看目前 zone 完整規則RHEL/Fedora
sudo firewall-cmd --zone=public --list-all預設查 runtime 設定。
列出永久設定RHEL/Fedora
sudo firewall-cmd --permanent --zone=public --list-allpermanent 與 runtime 可能不同。
暫時允許 HTTPSRHEL/Fedora
sudo firewall-cmd --zone=public --add-service=https只改 runtime,重載或重開後消失。
永久允許 HTTPSRHEL/Fedora
sudo firewall-cmd --permanent --zone=public --add-service=https還要 reload 才套到 runtime;先在暫時規則測試。
套用永久規則RHEL/Fedora
sudo firewall-cmd --reload可能影響連線;先確認永久規則完整。
檢查設定檔RHEL/Fedora
sudo firewall-cmd --check-config支援度依 firewalld 版本。
查單一 service 是否允許RHEL/Fedora
sudo firewall-cmd --zone=public --query-service=https依結束碼回 yes/no。
nftables
列出完整 rulesetnftables
sudo nft list ruleset先保存輸出作為變更前基準。
列出 tablenftables
sudo nft list tables不修改規則。
列出特定 tablenftables
sudo nft list table inet filterfamily、table 名稱換成實際值。
顯示 rule handlenftables
sudo nft -a list chain inet filter inputhandle 可用來精準刪除單一規則。
檢查規則檔語法nftables
sudo nft --check --file /etc/nftables.conf只檢查,不套用。
以數字顯示規則nftables
sudo nft -n list ruleset避免名稱解析造成延遲與混淆。
監看 nft 事件nftables
sudo nft monitor會持續執行,按 Ctrl+C 結束。
怎麼確認有做對
- 從既有 SSH 連線之外,再開第二條測試連線。
- 從允許與不允許來源分別測 port。
- 重開或 reload 後再次確認 runtime 與 permanent 規則一致。
常見錯誤
- 遠端先啟用 default deny,還沒允許管理來源。
- firewalld 只改 permanent 卻忘了 runtime,或反過來。
- nft flush ruleset 當成一般排錯。
- 只看防火牆,沒確認服務 listen address。
版本與官方文件
參數會隨工具版本與作業系統實作改變。正式環境先用 --help、-h 或系統內建說明確認,再以當版官方文件為準。