如何启用 Kerberos 事件日志记录

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

原始 KB 数: 262177

总结

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

重要

日志记录级别的更改将导致在事件中记录所有 Kerberos 错误。 在 Kerberos 协议中,某些错误应基于协议规范。 因此,启用 Kerberos 日志记录可能会生成包含预期误报错误的事件,即使没有 Kerberos 操作错误。

误报错误的示例包括:

  1. 初始 Kerberos AS 请求返回KDC_ERR_PREAUTH_REQUIRED。 默认情况下,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

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

    注意

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

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

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

详细信息

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

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

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