温馨提示×

debian iptables如何设白名单

小樊
54
2026-09-07 18:07:05
栏目: 智能运维

在 Debian 上使用 iptables 设置白名单,通常思路是:

默认拒绝所有流量,只允许白名单中的 IP / 端口通过

下面按常见场景给你完整示例。


一、基础白名单(仅允许指定 IP 访问)

1. 清空现有规则(谨慎)

iptables -F
iptables -X

2. 设置默认策略为 DROP

iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

3. 允许本地回环

iptables -A INPUT -i lo -j ACCEPT

4. 允许已建立连接(非常重要)

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

5. 添加白名单 IP

iptables -A INPUT -s 192.168.1.100 -j ACCEPT
iptables -A INPUT -s 10.0.0.0/24 -j ACCEPT

二、白名单 + 指定端口(如 SSH)

只允许白名单 IP 访问 22 端口:

iptables -A INPUT -p tcp --dport 22 -s 192.168.1.100 -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j DROP

或整体白名单:

iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 22 -j ACCEPT

三、白名单 IP 列表(推荐方式)

1. 创建 IP 集合

ipset create whitelist hash:ip

2. 添加白名单

ipset add whitelist 1.2.3.4
ipset add whitelist 192.168.1.0/24

3. iptables 引用

iptables -A INPUT -m set --match-set whitelist src -j ACCEPT

✅ 优点:IP 多时性能更好,管理方便


四、保存 iptables 规则(Debian)

Debian 10+(nftables 前)

apt install iptables-persistent
netfilter-persistent save

或:

iptables-save > /etc/iptables/rules.v4

五、最小安全示例(SSH 白名单)

iptables -P INPUT DROP
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -s 203.0.113.10 -j ACCEPT

六、注意事项

⚠️ 远程服务器务必先加自己的 IP,否则会断连 ⚠️ 修改前最好有 console / VNC ⚠️ 云服务器优先用安全组


如果你愿意,可以告诉我:

  • 是 服务器还是内网
  • 要白名单 IP、端口还是服务
  • 是否使用 Docker / nftables

我可以给你更精确的配置。

0 踩