🛡️ 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