Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> Linux 教學

Linux iptables 防火牆基礎應用完整教學

編輯:Linux 教學

iptables 是 Linux 系統中最常用的防火牆管理工具,透過網路封包過濾機制保護伺服器安全。本文將詳細介紹 iptables 的安裝、規則管理、連接埠開放、IP 封鎖等核心功能操作指令。

一、安裝 iptables 防火牆

大多數 Linux 發行版預設已安裝 iptables,若未安裝可透過套件管理器安裝:

  • CentOS/RHEL 系統:
    yum install iptables
  • Debian/Ubuntu 系統:
    apt-get install iptables

二、清除現有規則

在設定新規則前,建議先清空現有所有規則避免衝突:

iptables -F  # 清除所有鏈的規則
iptables -X  # 刪除所有自定義鏈
iptables -Z  # 將所有計數器歸零

三、開放指定連接埠

採用「預設拒絕,僅開放必要連接埠」的安全策略:

# 允許本地回環介面 (本機訪問本機)
iptables -A INPUT -s 127.0.0.1 -d 127.0.0.1 -j ACCEPT

# 允許已建立或相關連線的封包通行
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 允許所有本機向外的訪問
iptables -A OUTPUT -j ACCEPT

# 開放 SSH 連接埠 (22)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 開放 HTTP 連接埠 (80)
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

# 開放 FTP 服務連接埠 (20, 21)
iptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPT

# 拒絕其他未允許的入站與轉發連線
iptables -A INPUT -j REJECT
iptables -A FORWARD -j REJECT

四、IP 封鎖與解封

可針對單一 IP 或整個網段進行封鎖:

# 封鎖單一 IP
iptables -I INPUT -s 123.45.6.7 -j DROP

# 封鎖整個 C 類網段 (123.0.0.1 - 123.255.255.254)
iptables -I INPUT -s 123.0.0.0/8 -j DROP

# 封鎖 B 類網段 (123.45.0.1 - 123.45.255.254)
iptables -I INPUT -s 124.45.0.0/16 -j DROP

# 封鎖特定 C 類網段 (123.45.6.1 - 123.45.6.254)
iptables -I INPUT -s 123.45.6.0/24 -j DROP

五、查看與刪除規則

查看規則:

iptables -L -n          # 顯示規則 (不解析域名)
iptables -L -n -v       # 顯示詳細資訊 (封包/位元組計數)
iptables -L -n -v -x    # 禁止自動單位換算 (K/M)
iptables -L -n --line-numbers  # 顯示規則編號

刪除指定規則:

# 先用 --line-numbers 找出規則編號,再刪除
iptables -D INPUT 8  # 刪除 INPUT 鏈第 8 條規則

六、規則持久化與開機自啟

CentOS/RHEL 系統

# 設定開機自啟
chkconfig --level 345 iptables on

# 儲存目前規則
service iptables save

Debian/Ubuntu 系統

Debian/Ubuntu 預設不會自動儲存規則,需建立網路介面啟動/關閉腳本:

# 建立關閉網卡時儲存規則的腳本
cat > /etc/network/if-post-down.d/iptables << 'EOF'
#!/bin/bash
iptables-save > /etc/iptables.rules
EOF
chmod +x /etc/network/if-post-down.d/iptables

# 建立啟動網卡時載入規則的腳本
cat > /etc/network/if-pre-up.d/iptables << 'EOF'
#!/bin/bash
iptables-restore < /etc/iptables.rules
EOF
chmod +x /etc/network/if-pre-up.d/iptables

更多進階用法請參考 iptables --help 或查閱官方文件。

Copyright © Windows教程網 All Rights Reserved