在Debian系統中,iptables是一個用于配置Linux內核防火墻(netfilter)規則的工具。它允許系統管理員定義規則來過濾流量和NAT(網絡地址轉換)。iptables規則被組織成不同的表(tables),每個表包含一組特定的鏈(chains)。以下是如何管理和操作這些鏈和表的基本指南:
iptables有五個內置表:
filter:默認表,用于控制流量是否被允許通過。nat:用于網絡地址轉換(NAT),如源地址轉換(SNAT)和目的地址轉換(DNAT)。mangle:用于特殊的數據包修改,比如更改TTL值。raw:用于配置免除連接跟蹤的規則。security:用于強制訪問控制(MAC)規則。每個表包含預定義的鏈,以及用戶自定義的鏈:
INPUT:處理進入本機的數據包。FORWARD:處理通過本機轉發的數據包。OUTPUT:處理從本機發出的數據包。PREROUTING:用于目標地址轉換(DNAT)的規則,在路由決策之前處理數據包。POSTROUTING:用于源地址轉換(SNAT)的規則,在路由決策之后處理數據包。查看所有規則:
sudo iptables -L -n -v
清空所有規則:
sudo iptables -F
刪除特定規則:
sudo iptables -D INPUT 1
這將刪除INPUT鏈中的第一條規則。
添加新規則:
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
這將添加一條規則,允許進入的SSH連接。
允許已建立的連接:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
保存規則:
sudo iptables-save > /etc/iptables/rules.v4
這將保存IPv4的規則。對于IPv6,使用iptables-save > /etc/iptables/rules.v6。
恢復規則:
sudo iptables-restore < /etc/iptables/rules.v4
在Debian系統中,iptables規則默認不會在重啟后保留。要使規則持久化,可以使用iptables-persistent包。
安裝iptables-persistent:
sudo apt-get update
sudo apt-get install iptables-persistent
在安裝過程中,系統會提示你是否保存當前的iptables規則。選擇“是”以保存規則。
如果你已經安裝了iptables-persistent,但忘記了保存規則,可以手動保存:
sudo netfilter-persistent save
或者,如果你使用的是IPv6:
sudo netfilter-persistent save --ipv6
請注意,管理防火墻規則可能會影響系統的網絡連接和安全性。在進行更改之前,請確保你了解每個命令的作用,并在生產環境中謹慎操作。