401.3错误特指ntfs权限不足,源于iis匿名用户(如iusr)对资源acl无访问权;需检查并赋予iusr账户对网站目录的读取、读取和运行、列出文件夹内容权限。
直接禁用ntlm而不摸清依赖,大概率导致iis 401、sql连接失败、老旧.net应用白屏。必须按“看见→限制→切换”三步走,每步都带验证点。
第一步:精准识别NTLM真实使用位置
别靠猜测,用日志和配置说话:
- 查域控安全日志:筛选ID 4624事件,Logon Type = 3 且 Authentication Package = NTLM,重点关注目标服务名(如HTTP/xxx、MSSQLSvc/xxx)和固定IP来源
- 看注册表强度策略:检查HKLM:\SYSTEM\CurrentControlSet\Control\Lsa\MSV1_0下NtlmMinClientSec和NtlmMinServerSec值,确认是否还允许NTLMv1或LM
- 扫硬编码点:Web.config里auth=NTLM、PowerShell中Invoke-WebRequest -Credential没加-UseDefaultCredentials、第三方设备直连http://192.168.1.10/admin而非FQDN
第二步:GPO分阶段收紧NTLM策略
微软官方推荐节奏,不是一步到位:
- 第一周设为审计模式:将Network security: Restrict NTLM: NTLM authentication in this domain设为Audit all,同时开启“审核敏感权限使用”
- 确认无误后,先堵入向:把Incoming NTLM traffic设为Deny all,不影响本机发起的Kerberos认证
- 等所有关键服务(如IIS、SQL、SharePoint)都能稳定获取并使用Kerberos票据(klist tickets可见HTTP/、MSSQLSvc/条目),再启用全域Deny all
第三步:确保Kerberos能真正跑通
Kerberos失败,90%不是协议问题,而是基础没对齐:
- 时间同步:客户端和服务端与PDC仿真器偏差必须≤5分钟,执行w32tm /resync /force强制同步
- DNS正反解:服务FQDN必须能A记录解析,且对应IP能PTR反向解析到同一FQDN,否则kinit成功但访问失败
- SPN唯一注册:用setspn -L 帐户名确认无重复,用setspn -S HTTP/web01.contoso.com contoso\web01svc正确绑定,避免0x80090322错误
第四步:验证与回滚准备
切换后必须验证,也必须留退路:
- 验证方式:在客户端运行klist tickets看是否有目标服务票据;用Wireshark过滤kerberos确认流量存在且无KRB_AP_ERR_BAD_INTEGRITY
- 回滚方案:提前备份GPO,保留一个测试OU不应用最终策略;域控上保留NtlmMinServerSec注册表值可快速调低强度应急










