#!/bin/bash
# reset_iptables.sh - 重置 iptables 為預設允許所有
IPT=/usr/sbin/iptables
# 1. 設定預設政策為 ACCEPT
$IPT -P INPUT ACCEPT
$IPT -P FORWARD ACCEPT
$IPT -P OUTPUT ACCEPT
# 2. NAT 表預設政策
$IPT -t nat -P PREROUTING ACCEPT
$IPT -t nat -P POSTROUTING ACCEPT
$IPT -t nat -P OUTPUT ACCEPT
# 3. 清空所有規則 (filter & nat)
$IPT -F
$IPT -t nat -F
# 4. 刪除所有非預設鏈
$IPT -X
$IPT -t nat -X
echo "iptables 已重置為預設值 (全開放)"
$IPT -L -n -v
chmod +x reset_iptables.sh
./reset_iptables.sh
| 表別 | 預設鏈 | 用途 |
|---|---|---|
| filter (預設) | INPUT, FORWARD, OUTPUT | 封包過濾、防火牆核心 |
| nat | PREROUTING, POSTROUTING, OUTPUT | 網址轉換 (DNAT/SNAT/Masquerade) |
| mangle | PREROUTING, INPUT, FORWARD, OUTPUT, POSTROUTING | 封包標記、TOS、TTL 修改 |
| raw | PREROUTING, OUTPUT | 連線追蹤豁免 (NOTRACK) |
| security | INPUT, FORWARD, OUTPUT | SELinux 安全標記 |
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -X
# CentOS/RHEL 7+
service iptables save
# 或
iptables-save > /etc/sysconfig/iptables
# Ubuntu/Debian
iptables-save > /etc/iptables/rules.v4
# 需安裝 iptables-persistent
執行前必須確認:
1. 具備主機板/遠程管理 (IPMI/iDRAC/iLO) 存取權
2. 已備份現有規則:iptables-save > ~/iptables.backup.$(date +%F)
3. 確認 SSH 連線不會中斷 (重置後預設允許所有,但若在腳本中斷點前斷線...)
完整 iptables 配置教學:《iptables配置》 (站內搜尋)