Linux 防火牆 iptables / ufw 教學

Linux 防火牆 iptables 與 UFW 教學|完整指令解說與設定檔編輯

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 等必要服務端口。

    PAGE TOP