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 核心網路封包過濾框架 (Netfilter) 的用戶空間管理工具,掌握核心命令與持久化機制是伺服器安全基線。

核心配置檔與服務

  • 規則儲存檔:/etc/sysconfig/iptables (RHEL/CentOS) 或 /etc/iptables/rules.v4 (Debian/Ubuntu iptables-persistent)。
  • 服務名:iptables (IPv4)、ip6tables (IPv6)。

常用管理命令


# 查看規則 (含行號、計數器)
iptables -nvL --line-numbers

# 開放 TCP 埠 (例: Oracle 1521)
iptables -A INPUT -p tcp --dport 1521 -j ACCEPT
# 建議加上狀態匹配,僅允許新連線
iptables -A INPUT -m state --state NEW -p tcp --dport 1521 -j ACCEPT

# 開放 UDP 埠 (例: DNS 53)
iptables -A INPUT -p udp --dport 53 -j ACCEPT

# 允許特定 IP 存取 SSH
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT

# 拒絕預設政策 (謹慎使用,確保已放行 SSH)
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

# 刪除規則 (按行號)
iptables -D INPUT 5

# 插入規則 (優先順序靠前)
iptables -I INPUT 1 -i lo -j ACCEPT

服務控制


# SysVinit
service iptables stop|start|restart|status
/sbin/service iptables save   # 將記憶體規則寫入配置檔

# systemd
systemctl stop|start|restart|status iptables
systemctl enable iptables     # 開機自動載入規則

# 手動持久化
iptables-save > /etc/sysconfig/iptables
# 或
iptables-save > /etc/iptables/rules.v4

避免 ipchains 衝突


# 確保 ipchains 服務關閉並禁用
service ipchains stop
chkconfig ipchains off
# systemd
systemctl stop ipchains
systemctl disable ipchains

進階:多埠段、模組匹配


# 多埠 (multiport 模組)
iptables -A INPUT -p tcp -m multiport --dports 80,443,8080 -j ACCEPT

# 連線速率限制 (limit 模組,防暴力破解)
iptables -A INPUT -p tcp --dport 22 -m limit --limit 3/min --limit-burst 5 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

# 近期連線模組 (recent,SSH 防暴力)
iptables -A INPUT -p tcp --dport 22 -m recent --name sshattack --set
iptables -A INPUT -p tcp --dport 22 -m recent --name sshattack --update --seconds 60 --hitcount 4 -j DROP

驗證與除錯


# 觀察封包匹配計數器
watch -n 1 'iptables -nvL INPUT --line-numbers'

# 追蹤特定封包流經鏈 (需核心支援 NFLOG/NFQUEUE)
iptables -A INPUT -p tcp --dport 22 -j NFLOG --nflog-group 1
# 用戶空間工具 ulogd2 接收日誌

現代替代:nftables

  • Linux 3.13+ 核心內建,語法統一 IPv4/IPv6/ARP/EBTABLES。
  • nft list ruleset、nft add rule 等命令取代 iptables/ip6tables/arptables/ebtables。
  • RHEL 8+/CentOS 8+/Debian 10+/Ubuntu 20.04+ 預設遷移 nftables,iptables 命令透過 iptables-nft 相容層轉譯。

iptables 雖歷經二十年仍是主流生產環境標準,熟練「開放埠 → 持久化 → 驗證」三步驟,配合 fail2ban、ufw/firewalld 高層工具,構建纵深防禦體系。

Copyright © Windows教程網 All Rights Reserved