在 Debian 系统中配置 iptables 主要包括:安装 iptables、设置规则、保存规则和开机自动加载。下面按常见使用场景详细说明。
Debian 10 以后默认使用 nftables,但仍可安装并使用 iptables。
sudo apt update
sudo apt install iptables iptables-persistent
iptables-persistent用于保存和恢复规则(非常重要)
sudo iptables -L -n -v
常见参数说明:
-L:列出规则-n:不做 DNS 解析-v:显示详细信息sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
含义:
sudo iptables -A INPUT -i lo -j ACCEPT
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
✅ 建议配合源 IP 限制:
sudo iptables -A INPUT -p tcp -s 1.2.3.4 --dport 22 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
sudo iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT
sudo iptables -A INPUT -p tcp --syn -m limit --limit 1/s --limit-burst 3 -j ACCEPT
sudo iptables -L INPUT --line-numbers
sudo iptables -D INPUT 3
如果不保存,重启后规则会丢失。
sudo netfilter-persistent save
sudo netfilter-persistent reload
规则保存在:
/etc/iptables/rules.v4
保存:
sudo iptables-save > /etc/iptables.rules
恢复:
sudo iptables-restore < /etc/iptables.rules
编辑 /etc/network/if-pre-up.d/iptables:
sudo nano /etc/network/if-pre-up.d/iptables
内容示例:
#!/bin/bash
iptables-restore < /etc/iptables.rules
赋予执行权限:
sudo chmod +x /etc/network/if-pre-up.d/iptables
sudo iptables -F
sudo iptables -X
sudo iptables -Z
| 场景 | 建议 |
|---|---|
| Debian 10+ | ✅ 推荐使用 nftables |
| 老系统 / 兼容需求 | ✅ 使用 iptables |
| Docker / K8s | ✅ 通常仍使用 iptables |
*filter
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -i lo -j ACCEPT
-A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p tcp --dport 22 -j ACCEPT
-A INPUT -p tcp --dport 80 -j ACCEPT
-A INPUT -p tcp --dport 443 -j ACCEPT
COMMIT
如果你愿意,可以告诉我:
我可以帮你定制一套 可直接使用的安全 iptables 配置。