NLA 把认证提前
网络级身份验证(NLA)让远程桌面在建立会话之前先完成认证:未通过认证的连接拿不到登录界面,也占用不到会话资源。它把预认证阶段的攻击面显著收窄,让针对 RDP 的暴力尝试更难奏效。配置上可以改注册表或用组策略,域内建议 GPO 统一下发;同时客户端与服务端的 CredSSP 都要保持更新,否则认证环节会失败或存在已知缺陷。
基本信息
| 适用平台 | Windows Server / Windows 10、11 |
|---|---|
| 注册表路径 | HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp |
| 关键值 | UserAuthentication(1 为启用 NLA) |
| GPO 路径 | 计算机配置 → 管理模板 → Windows 组件 → 远程桌面服务 → 远程桌面会话主机 → 安全 |
| 基线 | NLA 已启用,且配套 CredSSP 已更新 |
典型使用场景
- 公网或跨网段开放 RDP 时的基础加固
- 域内统一策略:用 GPO 一次性覆盖所有成员机与服务器
- 漏洞应急:RDP 相关高危漏洞爆发期作为缓解手段之一
- 合规核查:远程管理通道是否要求强身份验证
- 排障定位:客户端日志提示凭据委派相关错误时检查两端配置
配置与核查
配置与核查
Get-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' | Select-Object UserAuthentication, SecurityLayer
Set-ItemProperty 'HKLM:\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp' -Name UserAuthentication -Value 1
# GPO:远程桌面会话主机 → 安全 → 要求使用网络级身份验证 = 启用
Get-NetFirewallRule -DisplayName '*远程桌面*' | Select-Object DisplayName, Enabled, Profile
Get-WinEvent -LogName 'Microsoft-Windows-TerminalServices-RemoteConnectionManager/Operational' -MaxEvents 5 -ErrorAction SilentlyContinue取值与现象读法
| 项 | 含义 | 正常与异常 |
|---|---|---|
| UserAuthentication=1 | 启用 NLA | 基线要求值 |
| UserAuthentication=0 | 允许未认证连接进入登录界面 | 暴露预认证攻击面 |
| SecurityLayer | RDP 安全层协商 | 0=协商,1=TLS,2=不推荐 |
| 连接超时或立刻失败 | 常见于客户端不支持 NLA | 需升级客户端或调整策略 |
| 客户端提示凭据错误 | 可能是 CredSSP 版本不匹配 | 检查两端补丁级别 |
NLA 与 CredSSP 配合使用:历史上 CredSSP 出现过严重漏洞(CVE-2018-0886),触发路径就与预认证流程有关,两端都要保证补丁完整。
落地要点
- 域内用 GPO 下发,本地逐台改容易漏项且无法复核
- 启用前确认接入端版本:XP 时代的老瘦客户端不支持 NLA
- NLA 不等于限制来源:RDP 端口仍应通过防火墙限制到管理网段
- 与网络级别以外的控制配套:账号锁定策略、RDP 会话超时、审计日志
- 把 RDP 暴露面纳入巡检:是否存在直接对公网的 3389 放行
把 RDP 直接暴露在公网即使启用了 NLA 也是高风险配置:应结合 VPN 或堡垒机收敛管理入口。