跳至主要内容

UFW 基礎教學和常用指令

· 閱讀時間約 4 分鐘

以下是 ufw(Uncomplicated Firewall)的 常用指令 和一份 完整教學指南,適合剛接觸 Linux 防火牆的新手,也能應用在小型伺服器的防護設定上。

UFW 基礎教學和常用指令

🔰 一、UFW 基礎教學

✅ 開啟 / 關閉 UFW

sudo ufw enable      # 啟用防火牆
sudo ufw disable # 關閉防火牆

🔍 查看狀態

sudo ufw status              # 簡單顯示目前規則
sudo ufw status verbose # 顯示詳細規則與預設策略

🔐 二、允許/封鎖規則設定

📥 常見允許的設定(allow)

sudo ufw allow 22               # 允許所有協定的 22 port(通常是 SSH)
sudo ufw allow 80/tcp # 允許 TCP 的 HTTP (port 80)
sudo ufw allow 443/tcp # 允許 TCP 的 HTTPS (port 443)
sudo ufw allow from 192.168.1.0/24 to any port 22

🚫 封鎖設定(deny)

sudo ufw deny 21                # 封鎖 FTP
sudo ufw deny from 192.168.1.100

🎯 僅允許指定 IP 存取特定 port

sudo ufw allow from 203.0.113.5 to any port 22

⚙️ 三、預設政策(建議設定)

# 預設封鎖所有進入流量,但允許出去
sudo ufw default deny incoming
sudo ufw default allow outgoing

這樣可以讓伺服器只開啟你允許的進入服務,預設拒絕其他外部連線。

🧹 四、刪除/重設規則

刪除單一規則(根據編號或語法)

sudo ufw status numbered          # 查看規則編號
sudo ufw delete 2 # 刪除第 2 條規則
sudo ufw delete allow 22 # 刪除允許 port 22 的規則

重設所有規則(慎用)

sudo ufw reset                    # 所有規則會被清除

🧩 五、應用設定檔(App Profiles)

某些應用程式會註冊 profile 供 UFW 使用,例如 OpenSSH、Apache、Samba...

sudo ufw app list                       # 查看已註冊的 profile
sudo ufw allow "OpenSSH" # 啟用該 profile 的所有相關 port
sudo ufw app info "Apache Full" # 顯示該 profile 的詳細資訊

🧪 六、進階用法

指定 port 範圍

sudo ufw allow 1000:2000/tcp
sudo ufw allow 6000:6007/udp

限速(防爆破)

sudo ufw limit ssh                    # 當太多 SSH 嘗試時自動限制

IPv6 支援

若你有使用 IPv6,請確認 ufw 的設定檔中有開啟:

sudo nano /etc/ufw/ufw.conf
# 將 IPv6=yes

🔄 七、開機自動啟用防火牆

UFW 安裝後預設是開機自動啟動的,但可確認:

sudo systemctl enable ufw

🧰 八、查看目前開放 port

除了 ufw status,也可以用 ss 查看目前執行中的服務:

sudo ss -tuln      # 顯示所有開放的 TCP/UDP port

✅ 常見用途範例(組合)

sudo ufw reset
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22 # SSH
sudo ufw allow 80/tcp # HTTP
sudo ufw allow 443/tcp # HTTPS
sudo ufw enable