一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

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

时间:2026-08-18 20:57:49 编辑:袖梨 来源:一聚教程网

服务器防火墙白名单配置核心是只放行可信来源、其余一律拒绝,须按IP+端口+协议三要素精准授权,并确保规则顺序正确、持久化生效且可验证;Windows Server推荐PowerShell命令(如New-NetFirewallRule)配置IP白名单,Linux firewalld必须使用rich-rule而非裸service开放,且需显式放行回环地址、设置明确reject规则并reload前验证顺序。

服务器防火墙白名单配置,核心是**只放行可信来源,其余一律拒绝**。不能简单“开个端口”,而要按 IP + 端口 + 协议三要素精准授权,且规则顺序、持久化和验证缺一不可。

Windows Server:用 PowerShell 精准控制 IP 白名单

推荐使用命令行方式,便于审计与复用:

  1. 放行指定运维 IP 访问 RDP(3389):

    PowerShell(管理员运行):

    New-NetFirewallRule -DisplayName "Allow-RDP-from-Admin-IP" -Direction Inbound -Protocol TCP -LocalPort 3389 -RemoteAddress 203.0.113.45 -Action Allow -Profile Domain

  2. 若需允许多个 IP,用逗号分隔:

    -RemoteAddress 203.0.113.45,203.0.113.46

  3. 如需 CIDR 网段(如 10.5.20.0/24),直接写:

    -RemoteAddress 10.5.20.0/24

  4. 务必确认当前登录会话的 IP 已包含在白名单中,否则可能被锁出;建议先启用日志:

    Set-NetFirewallSetting -LogAllowed True

Linux(firewalld):必须用 rich-rule,禁用裸 service 开放

直接 --add-service=ssh 是全局开放,等于没设白名单。正确做法是:

  1. 先清理可能存在的冲突规则:

    sudo firewall-cmd --permanent --remove-service=ssh

  2. 显式放行本机回环(避免 localhost 失联):

    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="127.0.0.1" service name="ssh" accept'

  3. 放行可信管理 IP(如跳板机):

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

  4. 加一条明确拒绝规则(让客户端快速失败,便于排查):

    sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port port="22" protocol="tcp" reject'

  5. 重载前检查顺序:

    sudo firewall-cmd --permanent --list-all | grep -A 10 "rich rules",确保 accept 在 reject 之前

  6. 最后执行:

    sudo firewall-cmd --reload

通用关键点:不配错、不失效、可验证

无论哪种系统,以下三点必须落实:

  1. 最小权限:只填实际需要的 IP(优先 /32 单 IP),绝不填 0.0.0.0/0 或宽泛网段
  2. 持久化生效:Windows 规则默认永久;Linux firewalld 必须带 --permanent,iptables 要保存(iptables-save > /etc/sysconfig/iptables
  3. 立即验证:从白名单 IP 执行 telnet server_ip 22nc -zv server_ip 80;再从非白名单 IP 尝试,应明确返回 Connection refused(不是超时)

热门栏目