技術文章 · IT 指令工具箱

Linux Firewall 指令:UFW、firewalld、nftables 查詢與安全變更

整理 UFW、firewalld、nftables 查規則、開服務、限制來源、runtime/permanent 差異、設定檢查與回復重點。

作者 Steve Chen · 發布  · 約 5 分鐘閱讀

IT 指令工具箱 — 廷皓技術專欄插圖

防火牆遠端修改最大的風險是把自己的管理連線一起擋掉。先保存規則、確認 console/OOB,先加允許管理來源,再收緊其他流量。

22 組範例Ubuntu UFWRHEL/Fedora firewalldnftables查核日期:2026-08-11
動手前:規則會直接改變連線。這裡只提供明確、最小範圍範例;正式主機不要用 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-all

permanent 與 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 filter

family、table 名稱換成實際值。

顯示 rule handlenftables

sudo nft -a list chain inet filter input

handle 可用來精準刪除單一規則。

檢查規則檔語法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 或系統內建說明確認,再以當版官方文件為準。

聯絡廷皓討論 看更多文章