Linux 防火牆教學中,iptables 與 UFW 是核心安全工具。iptables 提供核心層級防火牆功能,能對每個網路封包進行細緻控制,適合有經驗的系統管理員進行精細化設定;UFW 則是簡化工具,透過簡單指令即可快速建立、防護規則。本文完整介紹安裝、啟用、防火牆規則設定與編輯檔案的方法,每行指令都附中文註解,幫助新手快速上手。
iptables 設定與檔案編輯
iptables 設定能控制 Linux 核心層網路流量,是 Linux 防火牆教學的重要部分。以下說明指令設定及如何編輯規則檔案永久生效。
安裝 iptables
# Ubuntu/Debian 系統
sudo apt update # 更新套件清單
sudo apt install iptables # 安裝 iptables
# CentOS/RHEL/AlmaLinux 系統
sudo dnf install iptables # 安裝 iptables 套件
基本指令設定 (逐行中文註解)
| 指令 | 說明 |
|---|---|
| sudo iptables -L -v | 列出目前所有規則及封包、流量統計 |
| sudo iptables -A INPUT -p tcp –dport 22 -j ACCEPT | 允許 TCP 協議連線到 22 端口 (SSH),確保遠端可登入 |
| sudo iptables -A INPUT -s 1.2.3.4 -j DROP | 封鎖來源 IP 為 1.2.3.4 的所有流量,阻擋惡意連線 |
| sudo iptables -P INPUT DROP | 設定預設策略為拒絕所有輸入流量,僅允許指定規則通過 |
| sudo iptables -A INPUT -i lo -j ACCEPT | 允許本機 (loopback) 介面所有流量,避免本地服務受阻 |
編輯 iptables 規則檔案以永久生效
# Ubuntu/Debian 系統
sudo nano /etc/iptables/rules.v4 # 編輯 IPv4 防火牆規則檔
sudo iptables-restore < /etc/iptables/rules.v4 # 立即套用規則
# 安裝 netfilter-persistent,確保規則重開機自動載入
sudo apt update
sudo apt install -y netfilter-persistent
# 儲存目前規則,讓系統開機自動套用
sudo netfilter-persistent save
# 確認服務開機自動啟動
sudo systemctl enable netfilter-persistent
# CentOS/RHEL 系統
sudo nano /etc/sysconfig/iptables # 編輯防火牆規則檔
sudo systemctl restart iptables # 套用修改後規則
sudo systemctl enable iptables # 開機自動啟動
實務案例 (逐行中文註解)
# 允許本機 HTTP/HTTPS 流量
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT # 允許 HTTP
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT # 允許 HTTPS
# 封鎖內網特定網段
sudo iptables -A INPUT -s 192.168.100.0/24 -j DROP # 封鎖指定內網段
# 保留回環介面
sudo iptables -A INPUT -i lo -j ACCEPT # 允許本機流量
UFW 安裝與設定檔編輯
UFW 安裝與設定適合新手快速建立防火牆規則,也可透過設定檔編輯達到永久生效。
安裝與啟用 UFW
sudo apt update # 更新套件清單
sudo apt install ufw # 安裝 UFW 防火牆套件
sudo ufw enable # 啟用防火牆
sudo ufw status verbose # 查看目前規則與防火牆狀態
UFW 規則設定 (逐行中文註解)
sudo ufw allow 22/tcp # 允許 SSH 連線
sudo ufw allow 80,443/tcp # 允許 HTTP/HTTPS 流量
sudo ufw deny from 1.2.3.4 # 封鎖特定來源 IP
sudo ufw default deny incoming # 預設拒絕所有輸入
sudo ufw default allow outgoing# 預設允許所有輸出
sudo ufw reset # 重置規則回復預設
編輯 UFW 設定檔案
sudo nano /etc/ufw/user.rules # 編輯自訂規則檔
sudo ufw reload # 套用修改後規則
FAQ 常見問題
iptables 與 UFW 有什麼差別?
iptables 提供核心層防火牆功能,可細緻控制每個封包;UFW 是簡化工具,透過簡單指令即可快速設定規則。
可以同時使用 iptables 與 UFW 嗎?
可以,但建議僅選擇其中一個,避免規則衝突。
如何保存 iptables 規則?
直接編輯規則檔:Ubuntu/Debian /etc/iptables/rules.v4,CentOS /etc/sysconfig/iptables,重啟後仍保持生效。
如何編輯 UFW 規則?
編輯 /etc/ufw/user.rules,修改完成後使用 sudo ufw reload 套用新規則。
防火牆封鎖 SSH 怎麼辦?
事先允許 SSH 連線,若已封鎖可透過主機控制台解除或重置防火牆。
如何只開放必要流量?
預設拒絕所有輸入,允許所有輸出,再依需求逐一開放 SSH、HTTP、HTTPS 等必要服務端口。
