如何启用 Kerberos 事件日志记录

本文介绍如何启用 Kerberos 事件日志记录。

适用于:Windows Server 2019、Windows Server 2016、Windows Server 2012 R2、Windows 10 版本 1809及更高版本、Windows 7 Service Pack 1
原始 KB 编号: 262177

摘要

Windows 7 Service Pack 1、Windows Server 2012 R2 及更高版本提供通过事件日志跟踪详细 Kerberos 事件的功能。 排查 Kerberos 问题时,可以使用此信息。

重要

日志记录级别的更改将导致事件中记录所有 Kerberos 错误。 在 Kerberos 协议中,根据协议规范,预期会出现一些错误。 因此,启用 Kerberos 日志记录可能会生成包含预期误报错误的事件,即使没有 Kerberos 操作错误也是如此。

误报错误的示例包括:

  1. KDC_ERR_PREAUTH_REQUIRED在初始 Kerberos AS 请求上返回。 默认情况下,Windows Kerberos 客户端不会在第一个请求中包含预身份验证信息。 响应包含有关 KDC 上支持的加密类型的信息,如果是 AES,则包含用于加密密码哈希的盐。

    建议:始终忽略此错误代码。

  2. kerberos 客户端使用KDC_ERR_S_BADOPTION来检索设置了特定选项的票证,例如,具有某些委派标志。 当请求的委派类型不可用时,返回的错误就是。 然后,Kerberos 客户端会尝试使用其他标志获取请求的票证,这可能会成功。

    建议:除非遇到委派问题,否则请忽略此错误。

  3. KDC_ERR_S_PRINCIPAL_UNKNOWN可能会记录应用程序客户端和服务器联络的各种问题。 原因可能是:

    • 在 AD 中注册的 SPN 缺失或重复。
    • 客户端使用的服务器名称或 DNS 后缀不正确,例如,客户端正在追逐 DNS CNAME 记录,并在 SPN 中使用生成的 A 记录。
    • 使用需要跨 AD 林边界解析的非 FQDN 服务器名称。

    建议:调查应用程序对服务器名称的使用。 这很可能是客户端或服务器配置问题。

  4. 如果 SPN 设置在不正确的帐户上,与运行服务器的帐户不匹配,则会记录KRB_AP_ERR_MODIFIED。 第二个常见问题是,颁发票证的 KDC 与承载服务的服务器之间的密码不同步。

    建议:与KDC_ERR_S_PRINCIPAL_UNKNOWN类似,检查是否正确设置了 SPN。

其他方案或错误需要系统或域管理员的注意。

重要

此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,请务必严格按照这些步骤操作。 为了加强保护,应先备份注册表,再进行修改。 如果出现问题,可以还原注册表。 有关详细信息,请参阅 如何在 Windows 中备份和还原注册表

在特定计算机上启用 Kerberos 事件日志记录

  1. 启动注册表编辑器。

  2. 添加以下注册表值:

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
    注册表值:LogLevel
    值类型:REG_DWORD
    值数据:0x1

    如果 参数 子项不存在,请创建它。

    注意

    当不再需要此注册表值时,请将其删除,以便在计算机上不会降低性能。 此外,可以删除此注册表值以在特定计算机上禁用 Kerberos 事件日志记录。

  3. 退出注册表编辑器。 此设置将在 Windows Server 2012 R2、Windows 7 及更高版本立即生效。

  4. 可以在系统日志中找到任何与 Kerberos 相关的事件。

更多信息

Kerberos 事件日志记录仅用于在定义的操作时间范围内需要 Kerberos 客户端的其他信息时进行故障排除。 如果不主动进行故障排除,应禁用 kerberos 日志记录。

从一般的角度来看,你可能会收到其他错误,这些错误由接收客户端正确处理,而无需用户或管理员干预。 经过重述,Kerberos 日志记录捕获的某些错误不会反映必须解决甚至无法解决的严重问题。

例如,当针对服务器 IP 地址 进行 共享访问而没有服务器名称时,将记录有关 Kerberos 错误的事件日志 3,该错误具有服务器名称 cifs/<IP 地址> 的错误代码0x7 KDC_ERR_S_PRINCIPAL_UNKNOWN。 如果记录了此错误,Windows 客户端会自动尝试故障回复到用户帐户的 NTLM 身份验证。 如果此操作有效,则不会收到任何错误。