Skip to main content

iptables

基本指令

列出現有規則

iptables -L -n -v
iptables -L -n -v --line-numbers
iptables -L INPUT -n -v --line-numbers

重啟/清除所有規則

service iptables stop
service iptables start

iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT 
  • -F : Deleting (flushing) all the rules.
  • -X : Delete chain.
  • -t table_name : Select table (called nat or mangle) and delete/flush rules.
  • -P : Set the default policy (such as DROP, REJECT, or ACCEPT).

移除指定的規則

# 顯示所有規則的編號
iptables -L INPUT -n --line-numbers
iptables -L OUTPUT -n --line-numbers
iptables -L OUTPUT -n --line-numbers | less
iptables -L OUTPUT -n --line-numbers | grep 202.54.1.1

# 移除指定編號的規則
iptables -D INPUT 4

# 移除指定來源 IP 的規則
iptables -D INPUT -s 202.54.1.1 -j DROP

# 移除指定 Chain 包含的所有規則
iptables -F <chain-name>

# 移除指定 Chain
iptables -X <chain-name>

新增規則

# 顯示所有規則的編號
iptables -L INPUT -n --line-numbers

# 在編號 1-2 之間新增規則
iptables -I INPUT 2 -s 202.54.1.2 -j DROP

儲存所有規則

# For RedHat/CentOS/Fedora Linux
service iptables save

# For other Linux distro.
iptables-save > /root/my.active.firewall.rules
cat /root/my.active.firewall.rules

回復/還原規則

# For other Linux distro.
iptables-restore < /root/my.active.firewall.rules

# For RedHat/CentOS/Fedora Linux
service iptables restart

Learning