因此,我有一个服务器,每当用户或服务帐户登录到机器上时,系统日志中都会生成一个错误事件:
A Kerberos Error Message was received:
on logon session DOMAIN\serviceaccount
Client Time:
Server Time: 12:44:21.0000 10/9/2012 Z
Error Code: 0x19 KDC_ERR_PREAUTH_REQUIRED
Extended Error:
Client Realm:
Client Name:
Server Realm: DOMAIN
Server Name: krbtgt/DOMAIN
Target Name: krbtgt/DOMAIN@DOMAIN
Error Text:
File: e
Line: 9fe
Error Data is in record data.
因此,我当然在谷歌上搜索了这个信息,我得到的唯一信息就是“它不一定表示问题,你通常可以忽略它。”
好吧,天哪,太好了,但是这些错误每分钟都会在我的系统日志上乱发一次,我真的很想让它们停下来。有什么想法吗?
来自微软AskDS博客:
KDC_ERR_PREAUTH_REQUIRED如果您在跟踪中看到此错误,则它根本不表示存在问题。客户端请求一张票证,但没有包括它的预认证数据。您通常会看到同一请求再次发送,数据和域控制器发出票证。Windows使用此技术确定所支持的加密类型。
发布于 2013-03-17 04:48:37
我不能帮你阻止他们,恐怕我是个Linux的人。我至少可以解释一下。理解此消息需要深入了解Kerberos身份验证的工作原理。
基本的Kerberos身份验证过程是客户端从KDC请求加密的TGT,然后用其本地密钥对其进行解密。然而,简单地实现,攻击者就可以为您领域中的每个用户下载TGT,然后尝试在攻击者空闲时通过暴力攻击对其进行解密。因此,Kerberos添加了一种名为预身份验证的机制。
预身份验证的工作方式是,当KDC接收到TGT请求时,它会返回一个预身份验证挑战,而不仅仅是发送回TGT。预身份验证挑战可以采取各种形式,但最常见的要求客户端发送在客户端密钥中加密的当前时间。然后,KDC在发送TGT之前确认客户端可以这样做(这表示对客户端密钥的一些了解)。
但是,部分原因是预身份验证被添加,部分原因是客户端不知道将发送什么预身份验证挑战,客户端总是发送基本的TGT请求,然后KDC总是使用预身份验证挑战拒绝它。这些日志消息是Active Directory记录的,因为它在没有预验证的情况下收到了TGT请求,并返回了一个挑战。
您的猜测与我的猜测一样好,因为这是协议的一个正常部分,并不是很有趣,但是所有基于Linux的KDCs都会做同样的事情。
发布于 2018-06-11 16:37:07
KDC_ERR_PREAUTH_REQUIRED作为请求在初始Kerberos上返回。默认情况下,Windows Kerberos客户端在第一个请求中不包括身份验证前信息。响应包含有关KDC上支持的加密类型的信息,如果是AES,则包含用于加密密码哈希的盐类。
https://support.microsoft.com/en-us/help/262177/how-to-enable-kerberos-event-logging
发布于 2022-01-17 16:14:44
虽然用户@Tony已经回答了这个问题,但对于实际原因还不够清楚:
一天,有人打开服务器上Kerberos事件的详细记录。要禁用它,您应该删除以下注册表值:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
Registry Value: LogLevel
Value Type: REG_DWORD
事实上,完全删除指定的注册表项也会有效,但这不是最好的方法。
首先,它可能包含在某些情况下可能至关重要的任何其他重要设置(例如,MaxTokenSize,它解决了当用户帐户是大量域组成员时的身份验证问题)。
但主要原因是此注册表项存在于干净的Windows安装中,尽管其中不包含任何值。因此,最好将其保留在原始状态(空),而不是删除它。空荡荡的和不存在的绝对不是一回事。
我99%确信,删除这个特定的键不会在将来造成任何麻烦,但您和开发人员自己都不知道在执行意外的事情之后,事情会如何改变:)
https://serverfault.com/questions/436450
复制相似问题