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 -L -n

若安裝時啟用防火牆,通常會看到預設開放 SSH(22)、HTTP(80)、SMTP(25) 等規則,以及一條最終拒絕所有的 REJECT 規則。若未啟用,則三條主鏈 (INPUT、FORWARD、OUTPUT) 均為空、政策為 ACCEPT。

二、清除現有規則

iptables -F  # 清除 filter 表所有內建鏈規則
iptables -X  # 刪除使用者自訂鏈

執行後再次檢視,所有鏈應恢復為空狀態。注意:命令列下的修改重啟即失效,需持久化儲存。

三、設定預設鏈政策

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
  • INPUT / FORWARD 設為 DROP:採用「白名單」機制,僅允許明確授權的流量進入或轉發,安全性最高。
  • OUTPUT 設為 ACCEPT:本機主動發出的連線預設信任,減少維護負擔。若需極高安全性,可三條鏈皆設 DROP,但需為每項服務額外添加 OUTPUT 規則。

警告: 若透過 SSH 遠端管理,輸入第一條 `INPUT DROP` 瞬間連線即會中斷。請在本機主控台操作,或先添加 SSH 允許規則再改政策。

四、新增允許規則 (INPUT 鏈)

基本語法:iptables -A INPUT -p 協定 --dport 埠號 -j ACCEPT

常用服務埠號對照表

iptables -A INPUT -p tcp --dport 22 -j ACCEPTiptables -A INPUT -p tcp --dport 80 -j ACCEPTiptables -A INPUT -p tcp --dport 443 -j ACCEPTiptables -A INPUT -p tcp --dport 25 -j ACCEPTiptables -A INPUT -p tcp --dport 110 -j ACCEPTiptables -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -A INPUT -p tcp --dport 20 -j ACCEPTiptables -A INPUT -p tcp --dport 53 -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j ACCEPT
服務協定埠號命令範例
SSHtcp22
HTTPtcp80
HTTPStcp443
SMTPtcp25
POP3tcp110
FTPtcp20, 21
DNStcp/udp53

必要系統流量

# 允許 ICMP (ping)
iptables -A INPUT -p icmp -j ACCEPT

# 允許 Loopback 介面 (本機溝通必備)
iptables -A INPUT -i lo -j ACCEPT

OUTPUT 鏈補充 (若 OUTPUT 政策為 DROP)

iptables -A OUTPUT -p tcp --sport 22 -j ACCEPT  # SSH 回應
iptables -A OUTPUT -p tcp --sport 80 -j ACCEPT  # HTTP 回應
iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

五、狀態模組:允許已建立連線

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

此規則允許回應封包與相關聯流量 (如 FTP 資料連線) 通過,極大簡化規則撰寫,建議放在鏈首部。

六、儲存與生效

service iptables save      # 寫入 /etc/sysconfig/iptables
service iptables restart   # 重載規則

或使用 `iptables-save > /etc/sysconfig/iptables` 手動儲存。

七、進階技巧

  • 限制來源 IP: `-s 192.168.1.0/24` 僅允許特定網段
  • 防暴力破解: 結合 `recent` 模組限制 SSH 連線頻率
  • 日誌記錄: `-j LOG --log-prefix "IPTables-DROP: "` 記錄被拒流量
  • NAT 轉發: 使用 `nat` 表配合 `POSTROUTING` 實現網路共享

結語

IPTables 雖然底層複雜,但掌握「預設拒絕、按需開放、狀態檢測、持久化儲存」四大原則,即可構建穩健的主機防火牆。建議在測試環境驗證無誤後再套用至生產機器。

Copyright © Windows教程網 All Rights Reserved