SSH和RDP虽同为高危远程协议,但白名单策略需差异化设计:SSH重连接行为与防误封,RDP重IP动态更新与登录触发;云防火墙须调优IPS、调整规则顺序、适配NAT场景;Windows防火墙需分层阻断+动态IP脚本;Linux须结合sshd_config账户控制与firewalld rich rule双层落地。

SSH 和 RDP 都是高危暴露面,单独靠系统自带防火墙或云防火墙默认规则很难兼顾安全与可用。真正有效的白名单控制,必须把协议特性、IP识别逻辑和防火墙策略层级三者对齐——不是“加一条允许规则”就完事。
先分清两类流量的白名单本质不同
SSH(Linux/Windows OpenSSH)和 RDP(Windows 远程桌面)虽然都是远程管理协议,但它们在防火墙视角下的处理逻辑差异很大:
- SSH 更依赖连接行为特征:短连接多、密钥认证快、自动化脚本(如 Ansible)会高频建连,容易被 IPS 误判为扫描;白名单重点要防“被临时封禁”,不单是放行端口。
- RDP 更依赖源 IP 稳定性:通常人工登录,连接时间长、报文特征明显(尤其开启 NLA 后),但动态公网 IP 下手动维护白名单极难;白名单重点要支持“登录即更新”,而非静态填 IP。
云防火墙(如阿里云)白名单配置关键动作
以阿里云国际站云防火墙为例,只在控制台点“添加白名单”大概率失效,因为策略优先级和模块冲突没解决:
- 关闭入侵防御(IPS)模块对 SSH/RDP 端口的自动阻断,或将其调为“观察模式”——否则即使白名单生效,IPS 仍可能临时封禁源 IP。
- 新建访问控制策略时,务必把白名单规则拖到默认拒绝规则之上,云防火墙按从上到下顺序匹配,位置错就等于没配。
- 对 NAT 网关后或代理出口的流量,不要用“源 IP 白名单”,改用“应用层识别 + 源端口范围 + 目标端口”组合条件,避免共享出口 IP 被误伤。
Windows 本地防火墙配合 RDP 白名单的实操要点
Windows 自带防火墙可精细控制 RDP(3389 或自定义端口),但要注意规则顺序和作用域:
- 先创建一条“阻止所有 IP 访问 3389”的通用规则,确保它排在最下方(最低优先级)。
- 再为每个可信客户端 IP 单独建“允许”规则,勾选“仅适用于指定的配置文件”(如域网络),避免公网网卡也被放通。
- 若使用动态 IP,可搭配 PowerShell 脚本实现登录触发式更新:用户通过 Web 页面输入密码鉴权后,脚本自动获取当前公网 IP 并更新 Windows 防火墙规则(无需登录服务器)。
Linux 侧 SSH 白名单建议双层落地
不能只靠 iptables 或 firewalld 放行端口,要结合服务层控制:
- 系统级:用
sshd_config的AllowUsers或AllowGroups锁定可登录账户,比 IP 控制更可靠。 - 网络级:firewalld 中设置 rich rule,例如
rule family="ipv4" source address="203.0.113.5" port port="22" protocol="tcp" accept,并确保 zone 设置为 public 或对应的活动区域。 - 增强项:启用 fail2ban,但把 SSH 白名单 IP 加入
ignoreip,防止自己被误封。

















