温馨提示×

ubuntu iptables怎么设置白名单

小樊
65
2026-09-19 02:26:11
栏目: 智能运维

在 Ubuntu 上用 iptables 设置白名单,核心思路是:
默认拒绝所有流量,只允许指定的 IP / 端口访问。

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


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

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

iptables -F
iptables -X

2. 设置默认策略为拒绝

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

✅ 此时:只有白名单 IP 能访问本机


二、白名单 + 只开放指定端口(如 22、80、443)

# 允许白名单 IP 访问 SSH
iptables -A INPUT -s 192.168.1.100 -p tcp --dport 22 -j ACCEPT

# 允许白名单 IP 访问 Web
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport 443 -j ACCEPT

三、白名单但允许 Ping(可选)

iptables -A INPUT -p icmp --icmp-type echo-request -s 192.168.1.0/24 -j ACCEPT

四、防止被自己锁外面(强烈建议)

在设置前先允许当前 SSH IP:

iptables -A INPUT -s 你的IP -p tcp --dport 22 -j ACCEPT

或设置定时还原:

crontab -e
*/5 * * * * iptables-restore < /etc/iptables.rules

五、保存 iptables 规则(Ubuntu)

Ubuntu 18.04 及以下

apt install iptables-persistent
netfilter-persistent save

Ubuntu 20.04 / 22.04

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

开机自动加载:

apt install iptables-persistent

六、查看当前规则

iptables -L -n -v

七、推荐更简单的方案(可选)

如果你觉得 iptables 太复杂,可以用:

  • ufw(Ubuntu 自带)
ufw default deny incoming
ufw allow from 192.168.1.100
ufw enable

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

  • 是 服务器公网白名单 还是 内网
  • 要保护的是 SSH / Web / 数据库
  • Ubuntu 版本

我可以给你一套可直接复制用的完整规则。

0 踩