应分阶段禁用ntlm并全面转向kerberos:先审计ntlm使用情况,再通过gpo逐步限制;确保时间同步、dns解析和spn注册正确;最后验证票据获取与域连接,并保留回滚方案。
在windows域环境中,禁用不安全的ntlm协议、全面转向kerberos认证,是提升身份验证安全性的重要运维动作。ntlm(尤其是ntlmv1)存在重放、中继等固有风险,而kerberos基于票据、支持双向认证与加密通道,是ad域推荐的标准认证机制。
确认当前NTLM使用情况
盲目禁用可能引发业务中断,需先摸清环境依赖:
- 使用Event Viewer检查安全日志(ID 4624),筛选Logon Type为3(网络登录)且Authentication Package为NTLM的事件;
- 通过PowerShell运行Get-NetLogon -Server DC01 | Select-Object *NTLM*(需RSAT工具),或查询域控注册表HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0下的NtlmMinClientSec和NtlmMinServerSec值;
- 对关键应用(如IIS、SQL Server、老旧.NET应用、第三方设备管理界面)做专项验证,确认是否硬编码依赖NTLM。
分阶段禁用NTLM策略配置
策略需在域级别统一部署,通过组策略对象(GPO)生效:
- 定位到Computer Configuration → Policies → Windows Settings → Security Settings → Local Policies → Security Options;
- 启用Network security: Restrict NTLM: NTLM authentication in this domain,设为Deny all(最终目标),但初期建议先设为Audit all并观察日志一周;
- 同步配置Network security: Restrict NTLM: Incoming NTLM traffic为Deny all(针对服务器端接收);
- 确保Domain controller: Allow server operators to schedule tasks等非认证类策略不受影响,避免误关关键服务权限。
保障Kerberos正常工作的前提条件
Kerberos不是“开箱即用”,以下三点必须满足:
- 时间同步:所有客户端、服务器与域控时间偏差必须≤5分钟,建议统一指向PDC仿真器,使用w32tm /resync强制校时;
- 正向/反向DNS解析:客户端能通过FQDN解析服务端IP,服务端也能PTR解析回客户端FQDN;SPN(Service Principal Name)注册必须准确,例如setspn -S HTTP/web01.contoso.com CONTOSO\websvc;
- 客户端配置:确保客户端加入域且域用户登录(非本地账户),IE/Edge信任站点已添加对应URL,避免降级到NTLM;现代应用应使用Negotiate而非NTLM作为认证头。
验证与回滚准备
策略上线后需快速验证效果并保留应急路径:
- 用klist tickets检查客户端是否成功获取TGT和服务票据;用nltest /dsgetdc:contoso.com确认域发现正常;
- 对失败连接,抓包分析(Wireshark过滤kerberos || ntlmssp),确认是SPN缺失、时间不同步还是DNS问题;
- 保留一个高权限GPO备份,并在策略描述中注明生效时间与回滚命令(如gpupdate /force后立即导入旧GPO);关键业务系统可单独链接例外GPO临时豁免NTLM限制。










