Linux 服务器防火墙白名单如何配

作者:袖梨 2026-08-10

Linux服务器配白名单核心是默认全拒再精准放行指定IP和端口,必须兼顾规则顺序、连接状态保留及持久化保存,且需根据系统选择firewalld(CentOS7+/RHEL7+)、iptables(旧系统)或ufw(Ubuntu/Debian),配置后须验证连通性并检查云安全组。

Linux 服务器配白名单,核心就一条:默认全拒,再精准放行指定 IP 和端口。不能只加一条允许规则就完事,顺序、状态、持久化缺一不可。

先确认用的是哪个防火墙工具

不同系统默认工具不同,必须先搞清:

  1. CentOS 7 / RHEL 7:默认 firewalld(推荐优先用)
  2. CentOS 6 / Ubuntu 16.04 及更老系统:默认 iptables
  3. Ubuntu 18.04+(含 Debian):常用 ufw(简单直观)
  4. 新版 CentOS 8+/RHEL 8+:底层已切到 nftables,但 firewalld 仍可管理

查当前状态:systemctl status firewalldufw statusiptables -L -n。没运行的得先启动。

firewalld 方式(推荐用于 CentOS/RHEL/AlmaLinux)

适合需要精确控制「某个 IP + 某个端口」的生产环境,不建议直接把 IP 加进 trusted zone(那会放开所有服务)。

  1. 只允 203.0.113.5 访问 SSH(22 端口):

    firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.5" port port="22" protocol="tcp" accept'

  2. 再加一条允许它访问 Web(80 端口):

    firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.5" port port="80" protocol="tcp" accept'

  3. 全部配完必须重载:

    firewall-cmd --reload

  4. 验证是否生效:

    firewall-cmd --list-rich-rules(看输出里有没有你刚加的 accept 规则)

iptables 方式(通用,适用于无 firewalld 的老系统)

关键在顺序:ACCEPT 规则必须在 DROP 之前,且要保留已有连接(否则 SSH 会断)。

  1. 设默认策略为丢弃:

    iptables -P INPUT DROP

  2. 放行本地回环:

    iptables -A INPUT -i lo -j ACCEPT

  3. 放行已有连接(保 SSH 不掉线):

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

  4. 放行目标 IP 的指定端口(如 203.0.113.5 的 22 和 80):

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

    iptables -A INPUT -s 203.0.113.5 -p tcp --dport 80 -j ACCEPT

  5. 保存规则(Debian/Ubuntu):

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

    (CentOS 6):

    service iptables save

ufw 方式(Ubuntu/Debian 用户最省心)

语法简洁,自带默认策略管理。

  1. 启用前先设默认策略:

    ufw default deny incoming

    ufw default allow outgoing

  2. 只让 203.0.113.5 访问 22 端口:

    ufw allow from 203.0.113.5 to any port 22 proto tcp

  3. 开启 ufw:

    ufw enable

  4. 查看效果:

    ufw status verbose

最后务必验证和检查

配完不是结束,三件事马上做:

  1. 从白名单 IP 外的机器尝试 telnet 或 curl,确认连不上
  2. 从白名单 IP 本机测试服务是否正常响应
  3. 检查云服务器的安全组——很多连不上,其实是云平台层面没开,防火墙配得再对也没用

相关文章

精彩推荐