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

Windows Server:用 PowerShell 精准控制 IP 白名单
推荐使用命令行方式,便于审计与复用:
- 放行指定运维 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 - 若需允许多个 IP,用逗号分隔:
-RemoteAddress 203.0.113.45,203.0.113.46 - 如需 CIDR 网段(如 10.5.20.0/24),直接写:
-RemoteAddress 10.5.20.0/24 - 务必确认当前登录会话的 IP 已包含在白名单中,否则可能被锁出;建议先启用日志:
Set-NetFirewallSetting -LogAllowed True
Linux(firewalld):必须用 rich-rule,禁用裸 service 开放
直接 --add-service=ssh 是全局开放,等于没设白名单。正确做法是:
宝塔面板11.3.0是一款针对Linux服务器设计的可视化管理工具,通过重构核心模块实现资源占用显著降低,尤其适合低配置服务器环境。它将复杂的命令行操作转化为直观的图形界面,帮助开发者快速完成网站部署、环境配置及日常运维工作,无需专业技术背景即可高效管理服务器。
- 先清理可能存在的冲突规则:
sudo firewall-cmd --permanent --remove-service=ssh - 显式放行本机回环(避免 localhost 失联):
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="127.0.0.1" service name="ssh" accept' - 放行可信管理 IP(如跳板机):
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="203.0.113.45" port port="22" protocol="tcp" accept' - 加一条明确拒绝规则(让客户端快速失败,便于排查):
sudo firewall-cmd --permanent --add-rich-rule='rule family="ipv4" port port="22" protocol="tcp" reject' - 重载前检查顺序:
sudo firewall-cmd --permanent --list-all | grep -A 10 "rich rules",确保 accept 在 reject 之前 - 最后执行:
sudo firewall-cmd --reload
通用关键点:不配错、不失效、可验证
无论哪种系统,以下三点必须落实:
-
最小权限:只填实际需要的 IP(优先 /32 单 IP),绝不填
0.0.0.0/0或宽泛网段 -
持久化生效:Windows 规则默认永久;Linux firewalld 必须带
--permanent,iptables 要保存(iptables-save > /etc/sysconfig/iptables) -
立即验证:从白名单 IP 执行
telnet server_ip 22或nc -zv server_ip 80;再从非白名单 IP 尝试,应明确返回Connection refused(不是超时)










