温馨提示×

怎样设置debian防火墙白名单

小樊
70
2026-09-02 08:10:55
栏目: 智能运维

在 Debian 上设置“防火墙白名单”(即默认拒绝,只允许指定 IP/端口)通常有三种常见做法:


一、使用 ufw(推荐,最简单)

1. 安装并启用 ufw

sudo apt update
sudo apt install ufw

2. 设置默认策略(关键)

sudo ufw default deny incoming
sudo ufw default allow outgoing

3. 添加白名单 IP(允许访问所有端口)

sudo ufw allow from 192.168.1.100

4. 添加白名单 IP + 指定端口

sudo ufw allow from 203.0.113.10 to any port 22
sudo ufw allow from 203.0.113.10 to any port 80,443

5. 允许子网

sudo ufw allow from 10.0.0.0/24

6. 启用防火墙

sudo ufw enable

7. 查看规则

sudo ufw status numbered

二、使用 iptables(更底层、更灵活)

1. 默认策略设为 DROP

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

2. 允许本地回环

iptables -A INPUT -i lo -j ACCEPT

3. 允许已建立连接

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

4. 白名单 IP

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

5. 白名单端口(可选)

iptables -A INPUT -p tcp --dport 22 -s 203.0.113.10 -j ACCEPT

6. 保存规则(Debian)

apt install iptables-persistent
netfilter-persistent save

三、使用 nftables(Debian 10+ 推荐新一代方案)

apt install nftables
systemctl enable nftables

示例白名单配置(/etc/nftables.conf):

table inet filter {
    chain input {
        type filter hook input priority 0;
        policy drop;

        iif "lo" accept
        ct state established,related accept

        ip saddr 192.168.1.100 accept
        ip saddr 10.0.0.0/24 accept
        tcp dport { 22, 80, 443 } ip saddr 203.0.113.10 accept
    }
}
nft -f /etc/nftables.conf

四、常见注意事项

  • SSH 白名单一定要小心,避免把自己锁在外面
  • 建议先 ufw allow from 你的IP 再 enable
  • 云服务器还需检查安全组
  • 生产环境推荐:默认 DROP + 白名单 + 日志

如果你能说明:

  • Debian 版本
  • 用 ufw / iptables / nftables 哪种
  • 白名单是IP 白名单还是端口白名单

我可以给你一份可直接用的配置。

0 踩