Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

Linux 防火牆 iptables 配置速查手冊

編輯:Linux 系統常見問題解答

核心文件與服務管理

項目路徑/命令
配置文件/etc/sysconfig/iptables
啟動service iptables start / systemctl start iptables
停止service iptables stop / systemctl stop iptables
重啟 (生效配置)service iptables restart / systemctl restart iptables
保存當前規則到文件/etc/rc.d/init.d/iptables save / iptables-save > /etc/sysconfig/iptables
查看當前規則iptables -L -n -v --line-numbers

常用規則示例


# 1. 允許本地回環
iptables -A INPUT -i lo -j ACCEPT

# 2. 允許已建立/相關連接
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 3. 開放 SSH (22)
iptables -A INPUT -p tcp --dport 22 -j ACCEPT

# 4. 開放 HTTP/HTTPS
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

# 5. 允許特定 IP 訪問 MySQL (3306)
iptables -A INPUT -p tcp -s 192.168.1.100 --dport 3306 -j ACCEPT

# 6. 拒絕其他所有入站 (默認策略建議 DROP)
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# 7. NAT 轉發 (內網 192.168.1.0/24 通過 eth0 上網)
iptables -t nat -A POSTROUTING -s 192.168.1.0/24 -o eth0 -j MASQUERADE

規則持久化最佳實踐

  1. 編輯 /etc/sysconfig/iptables 文件直接維護規則集 (可讀、可版本控制)。
  2. 修改後執行 service iptables restart 生效。
  3. 或使用 iptables-save > /etc/sysconfig/iptables 導出當前內存規則覆蓋文件。

鏈與表結構

  • filter 表 (默認):INPUT (進站)、OUTPUT (出站)、FORWARD (轉發)。
  • nat 表:PREROUTING (目的 NAT)、POSTROUTING (源 NAT)、OUTPUT (本機發出 DNAT)。
  • mangle 表:修改包標記 (QoS、策略路由)。
  • raw 表:連接跟蹤豁免 (NOTRACK)。

調試技巧


# 顯示規則編號、計數器
iptables -L -n -v --line-numbers

# 刪除指定編號規則 (如 INPUT 鏈第 3 條)
iptables -D INPUT 3

# 插入規則到指定位置 (如 INPUT 鏈第 1 條)
iptables -I INPUT 1 -p tcp --dport 8080 -j ACCEPT

# 實時監控匹配包
watch -n1 'iptables -L -n -v'

注意事項

  • 規則順序至關重要:-A 追加末尾,-I 插入首部/指定位。
  • 遠程配置防火牆必先放行 SSH,再設置默認 DROP,否則斷連。
  • CentOS 7+ 默認使用 firewalld (動態管理),若習慣 iptables 需禁用 firewalld:systemctl disable firewalld --now; yum install iptables-services; systemctl enable iptables --now。
Copyright © Windows教程網 All Rights Reserved