iptables 是 Linux 內核 Netfilter 的用戶態管理工具。本文涵蓋臨時/永久開放端口、保存規則、查看狀態、永久關閉、配置文件結構解析與修改最佳實踐。
iptables -I INPUT -p tcp --dport 80 -j ACCEPT iptables -I INPUT -p tcp --dport 22 -j ACCEPT
-I INPUT 插入 INPUT 鏈首部(優先匹配)-A INPUT 追加至尾部service iptables save # 或 /etc/init.d/iptables save # 實際寫入 /etc/sysconfig/iptables
service iptables status service iptables stop # 臨時關閉 service iptables restart # 重新載入配置文件 iptables -L -n -v --line-numbers # 詳細規則帶行號
chkconfig --level 35 iptables off # 運行級 3/5 關閉自啟 # systemd 系統: systemctl disable iptables systemctl stop iptables
*filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :RH-Firewall-1-INPUT - [0:0] -A INPUT -j RH-Firewall-1-INPUT -A FORWARD -j RH-Firewall-1-INPUT # 允許本地回環 -A RH-Firewall-1-INPUT -i lo -j ACCEPT # 允許 ICMP -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j ACCEPT # 允許 ESP/AH (IPsec) -A RH-Firewall-1-INPUT -p 50 -j ACCEPT -A RH-Firewall-1-INPUT -p 51 -j ACCEPT # 允許已建立/相關連接 -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT # 開放具體端口 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 53 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m udp -p udp --dport 53 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT # 默認拒絕 -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited COMMIT
cp /etc/sysconfig/iptables /etc/sysconfig/iptables.bakvim /etc/sysconfig/iptables 在 COMMIT 前插入/刪除規則lo、ESTABLISHED,RELATED、SSH(22)、管理端口(VNC 5900 等)service iptables restart 重載iptables -L -n -v 驗證生效iptables -I INPUT -p tcp --dport 3000:5000 -j ACCEPT # 配置文件寫法: -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3000:5000 -j ACCEPT
掌握「臨時命令調試 → 配置文件固化 → 服務重載驗證」閉環,構建可審計、可版本控制的防火牆管理體系。