温馨提示×

debian iptables怎么设白名单

小樊
63
2026-09-25 22:55:08
栏目: 智能运维

在 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 1.2.3.4 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -j ACCEPT

没在白名单里的 IP 都会被 DROP。


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

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

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

或更严格:

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

三、白名单 IP 列表(推荐用 ipset)

如果白名单很多,用 ipset 更高效。

1. 安装 ipset

apt update
apt install ipset

2. 创建 IP 集合

ipset create whitelist hash:ip
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
iptables -P INPUT DROP

四、保存 iptables 规则(非常重要)

Debian 默认重启会丢失规则。

方法 1:iptables-persistent

apt install iptables-persistent
netfilter-persistent save

方法 2:手动保存

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

开机恢复:

iptables-restore < /etc/iptables/rules.v4

五、常见注意事项

  • ⚠️ 远程服务器先加自己 IP,再 DROP,否则会断连
  • 云服务器注意安全组可能优先于 iptables
  • 建议保留一个管理 IP 白名单
  • IPv6 是 ip6tables,规则独立

六、示例:最小安全白名单

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

如果你有具体需求(比如:只白名单某个端口 / 某个服务 / Docker 环境 / 防 SSH 爆破),可以告诉我,我给你定制规则。

0 踩