🛡️ Ubuntu UFW 完整使用教學

2025-05-01

標籤: 架站

廣告

UFW (Uncomplicated Firewall) 是 Ubuntu 預設的防火牆管理工具,簡化了 iptables 的複雜度,讓我們可以透過簡單的指令設定入站、出站規則。

以下章節將帶你從安裝、設定到進階用法,全方位掌握 UFW!


1. 安裝與啟用 UFW

Ubuntu 20.04+ 版本通常已預裝 UFW。若未安裝,可以執行:

sudo apt update
sudo apt install ufw -y

啟用 UFW:

sudo ufw enable

注意:啟用後預設會拒絕所有入站連線(deny incoming),允許所有出站連線(allow outgoing)。請先設定必要規則再啟用,避免鎖死自己。


2. 檢查狀態與預設策略

查看防火牆狀態:

sudo ufw status verbose

輸出範例:

Status: active
Logging: on (low)
Default: deny (incoming), allow (outgoing), disabled (routed)
New profiles: skip
  • Default incoming policy: 入站預設動作
  • Default outgoing policy: 出站預設動作

若要修改預設策略:

sudo ufw default deny incoming    # 預設拒絕所有入站
sudo ufw default allow outgoing   # 預設允許所有出站

3. 基本允許/拒絕規則

3.1 允許 (Allow)

# 允許 SSH (預設 port 22)
sudo ufw allow ssh

# 允許 HTTP (port 80)
sudo ufw allow http

# 允許 HTTPS (port 443)
sudo ufw allow https

# 指定 port 允許,例如 8080\sudo ufw allow 8080

# 本機介面限制,僅限 192.168.1.0/24 網段
sudo ufw allow from 192.168.1.0/24 to any port 22

3.2 拒絕 (Deny)

# 拒絕所有來自特定 IP
sudo ufw deny from 203.0.113.42

# 拒絕特定 port
sudo ufw deny 3306       # 例如 MySQL

3.3 限速 (Limit)

阻擋可能的暴力破解:

# 限制 SSH,每分鐘最多六次連線嘗試,超過則封鎖
sudo ufw limit ssh

4. 使用服務名稱與應用檔案

UFW 會載入 /etc/ufw/applications.d/ 下的應用程式設定,查看已知服務:

sudo ufw app list

查看某服務詳細資訊:

sudo ufw app info "Nginx Full"

使用服務名稱設定:

sudo ufw allow "OpenSSH"
sudo ufw allow "Nginx HTTP"

5. 日誌與監控

5.1 啟用日誌

sudo ufw logging on

日誌級別可調整:

  • off, low, medium, high, full
sudo ufw logging medium

日誌檔案:/var/log/ufw.log

5.2 觀察日誌

sudo tail -f /var/log/ufw.log

6. 編輯規則順序與刪除

6.1 列出規則

sudo ufw status numbered

6.2 刪除規則

根據編號刪除:

sudo ufw delete 3   # 刪除第3條規則

或直接以規則文字刪除:

sudo ufw delete allow 80/tcp

7. 高級用法

7.1 IPv6 支援

編輯 /etc/default/ufw,將 IPV6=no 改為 IPV6=yes,重新載入:

sudo ufw reload

7.2 Route 規則

開啟路由轉發:

sudo ufw route allow in on eth0 out on eth1 to 10.0.0.0/24

7.3 Web 介面管理 (GUFW)

若偏好圖形介面,可安裝 GUFW:

sudo apt install gufw -y

8. 重置與還原

警告:會刪除所有規則並關閉 UFW

sudo ufw reset

再次啟用:

sudo ufw enable
廣告