Windows终端服务未启用网络级身份验证 (NLA)【原理扫描】
网络级身份验证 (Network Level Authentication, NLA) 是 RDP (Remote Desktop Protocol) 的一种安全机制,要求用户在建立完整的远程桌面会话之前先通过身份验证。启用 NLA:用户需先输入有效凭据,服务器验证通过后才会建立会话。未启用 NLA:客户端直接连接到服务器,在登录界面才输入凭据,存在安全风险。未启用 NLA 可能存在以下风险:暴力破解攻击。攻击者可反复尝试密码(如利用工具 hydra 或 Ncrack);拒绝服务 (DoS)。未认证的连接占用服务器资源,可能导致服务崩溃;漏洞利用(如 BlueKeep)。CVE-2019-0708等漏洞可直接绕过认证攻击未启用 NLA 的系统;中间人攻击 (MITM)。未加密的初始通信可能被窃听或篡改。
建议Windows终端服务启用网络级身份验证 (NLA)。
这个在哪改?我的应用发布服务器也勾了仅允许运行使用网络级别身份验证的远程桌面的计算机连接
堡垒机扫描报「Windows 终端服务未启用 NLA」完整根治方案
核心现象说明
你已经在 sysdm.cpl 勾选仅允许运行使用网络级别身份验证的远程桌面的计算机连接,但堡垒机原理扫描依然判定未开启 NLA,本质 4 类根源:
组策略强制覆盖图形界面配置(最常见)
注册表 RDP-Tcp UserAuthentication 值异常
系统依赖服务异常、CredSSP/NTLM 安全策略拦截探测报文
堡垒机扫描器无账号密码,纯空握手探测无法识别 NLA 状态(扫描机制误报)
一、第一步:图形界面确认(你已操作,复核)
Win+R 输入 sysdm.cpl → 远程
远程桌面勾选:仅允许运行使用网络级别身份验证的远程桌面的计算机连接 (更安全)
系统属性远程面板
应用、确定,重启远程桌面服务生效
cmd
net stop termservice
net start termservice
二、第二步:组策略强制启用 NLA(解决域策略覆盖问题)
1. 打开本地组策略 gpedit.msc
路径:
计算机配置 → 管理模板 → Windows 组件 → 远程桌面服务 → 远程桌面会话主机 → 安全
策略名:要求使用网络级别的身份验证对远程连接的用户进行身份验证
设置为:已启用
RDP-Tcp属性NLA勾选框
2. 刷新组策略
cmd
gpupdate /force
域服务器优先检查域控下发 GPO,若域策略设为「未配置 / 禁用」,本地图形勾选会被覆盖,扫描依旧告警。
三、第三步:注册表兜底修复(策略不生效时强制写入 NLA 开关)
Win+R 输入 regedit,定位路径:
plaintext
HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp
找到 DWORD 值 UserAuthentication,值 =1 代表启用 NLA,0 = 关闭
无该键则右键新建 DWORD,命名UserAuthentication,数值填 1
重启 TermService 服务生效
一键执行 CMD(管理员):
cmd
reg add "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp" /v UserAuthentication /t REG_DWORD /d 1 /f
net stop termservice && net start termservice
四、第四步:修复堡垒机扫描探测失败的配套安全策略(关键,90% 误报根源)
堡垒机原理扫描不带账号密码,仅空握手探测 RDP 3389;若 Windows 收紧 NTLM/CredSSP 策略,扫描器无法完成 NLA 协商,直接判定 “未启用 NLA”。
1. 本地安全策略放行 NTLM(secpol.msc)
本地策略 → 安全选项
找到:网络安全:限制 NTLM:传入 NTLM 流量
设置为:允许所有
若设为「拒绝所有」,堡垒机无账号探测时无法完成 NLA 协商,扫描误报未开启 NLA
2. 关闭 FIPS 加密兼容限制(冲突会阻断 NLA 握手)
secpol.msc → 本地策略 → 安全选项
系统加密:将 FIPS 兼容算法用于加密、哈希和签名 → 禁用
3. 检查依赖服务是否正常运行(NLA 底层依赖)
cmd
# 查看网络感知服务(NLA核心服务)
sc query nlasvc
# 必须处于自动、正在运行
sc config nlasvc start= auto
net start nlasvc
依赖服务:RpcSs、DcomLaunch、CryptSvc、EventLog,全部设为自动启动。
五、第五步:堡垒机侧验证 & 消除误报
场景 1:漏洞扫描为「原理扫描(无账号)」
纯空连接探测存在机制缺陷,有两种处理方式:
资产录入堡垒机,填写正确账号密码,使用带凭据扫描
带账号密码的完整 RDP 握手能正常识别 NLA 状态,告警直接消失;
若无法录入账号,在堡垒机漏洞扫描模板中,将该漏洞添加白名单 / 例外(确认服务器已合规开启 NLA)。
场景 2:堡垒机正常 RDP 登录测试
堡垒机资产填写正确账号密码,发起 RDP 连接;
能正常登录 = NLA 配置真实生效,扫描属于误报;
若堡垒机 RDP 连接报错身份验证失败,说明服务器 CredSSP 策略拦截,执行下方兼容修复。
六、堡垒机连接 NLA 服务器报错修复(CredSSP 兼容)
管理员 CMD 执行注册表修复 CredSSP 协商:
cmd
reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\CredSSP\Parameters" /v AllowEncryptionOracle /t REG_DWORD /d 2 /f
重启服务器后堡垒机可正常带 NLA 连接。
七、完整落地操作顺序(按步骤执行即可消除告警)
sysdm.cpl 勾选 NLA,重启 TermService;
gpedit.msc 启用 NLA 强制策略,gpupdate /force;
注册表写入 UserAuthentication=1 兜底;
secpol.msc 放开 NTLM 传入流量、关闭 FIPS;
确认 NlaSvc 服务自动运行;
堡垒机录入资产账号密码,重新执行漏洞扫描;
扫描仍告警则漏洞白名单豁免(已合规配置)。
八、常见坑点
仅图形勾选、不检查组策略:域 GPO 覆盖本地配置,扫描持续告警;
NTLM 策略拒绝所有传入流量:无账号扫描器无法协商 NLA,误报;
未重启远程桌面服务:注册表 / 策略修改不即时生效;
堡垒机扫描不填账号:纯空握手识别逻辑缺陷,必然出现误报。
亲~登录后才可以操作哦!
确定你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作
举报
×
侵犯我的权益
×
侵犯了我企业的权益
×
抄袭了我的内容
×
原文链接或出处
诽谤我
×
对根叔社区有害的内容
×
不规范转载
×
举报说明
没有cve