温馨提示×

Debian iptables怎么设置白名单

小樊
77
2026-08-14 05:10:24
栏目: 智能运维

在 Debian 上用 iptables 设置白名单,核心思路是:
默认拒绝所有流量,只允许指定 IP/端口/协议通过。下面按常见场景给你完整示例。


一、基本思路(非常重要)

  1. 先允许已建立/相关连接(防止自己被踢出)
  2. 允许可信 IP
  3. 最后设置默认策略为 DROP

二、最常用:IP 白名单(推荐)

示例:只允许 1.2.3.4 和 5.6.7.8 访问本机

# 1. 允许回环
iptables -A INPUT -i lo -j ACCEPT

# 2. 允许已建立连接(必须)
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# 3. 白名单 IP
iptables -A INPUT -s 1.2.3.4 -j ACCEPT
iptables -A INPUT -s 5.6.7.8 -j ACCEPT

# 4. 其他一律拒绝
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

✅ 这样只有白名单 IP 能访问你
✅ 你访问外面不受影响


三、只开放指定端口(如 SSH)

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

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

⚠️ 注意顺序:允许在前,拒绝在后


四、白名单 + 多端口示例

iptables -A INPUT -p tcp -m multiport --dports 22,80,443 \
-s 1.2.3.4 -j ACCEPT

五、防止误锁自己(强烈建议)

临时测试(5 分钟后自动清除)

iptables -P INPUT DROP
sleep 300
iptables -P INPUT ACCEPT

六、保存 iptables 规则(否则重启失效)

Debian 10 及以下

apt install iptables-persistent
netfilter-persistent save

Debian 11+

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

七、查看 / 清空规则

iptables -L -n --line-number
iptables -F
iptables -X
iptables -P INPUT ACCEPT

八、常见错误

❌ 没加 ESTABLISHED,RELATED → 自己被踢
❌ 默认 DROP 放最前面 → 所有连接断开
❌ 忘了保存规则 → 重启失效


九、如果你愿意,我可以帮你

你可以直接告诉我:

  • ✅ 是 VPS / 服务器 / 本地 Debian
  • ✅ 只想白名单 SSH 还是 所有端口
  • ✅ 是否要 Docker / 内网 / NAT

我可以给你一份 可直接复制执行的完整脚本。

0 踩