Итак, у меня есть сервер, и каждый раз, когда учетная запись пользователя или службы входит в систему, в системном журнале генерируется событие ошибки:
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.
Поэтому, конечно, я погуглил, и единственная информация, которую я получаю, это то, что «это не обязательно указывает на проблему, и вы обычно можете игнорировать ее».
Ну и дела, это здорово, но эти ошибки рассылают спам в моем системном журнале примерно раз в минуту, и я действительно хотел бы их остановить. Любые идеи?
Из блога Microsoft AskDS:
KDC_ERR_PREAUTH_REQUIRED
Если вы видите эту ошибку в трассировке, это вовсе не указывает на наличие проблемы. Клиент запросил билет, но не включил в него данные предварительной аутентификации. Обычно вы снова увидите тот же запрос, отправленный с данными, и контроллер домена, выписывающий билет. Windows использует этот метод для определения поддерживаемых типов шифрования.
Я не могу помочь вам их остановить; Боюсь, я человек Linux. По крайней мере, я могу их объяснить. Чтобы понять это сообщение, необходимо немного отвлечься от того, как работает проверка подлинности Kerberos.
Базовый процесс аутентификации Kerberos заключается в том, что клиент запрашивает зашифрованный TGT у KDC, который затем расшифровывается своим локальным ключом. Однако, наивно реализованный, это позволяет злоумышленнику загружать TGT для каждого пользователя в вашем мире, а затем пытаться расшифровать их с помощью атак грубой силы в свободное время. Поэтому Kerberos добавил механизм, называемый предварительной аутентификацией.
Принцип работы предварительной аутентификации заключается в том, что KDC, когда он получает запрос TGT, отправляет обратно запрос предварительной аутентификации, а не просто отправляет обратно TGT. Задача предварительной аутентификации может принимать различные формы, но наиболее часто требуется, чтобы клиент отправил текущее время, зашифрованное с помощью ключа клиента. Затем KDC подтверждает, что клиент может это сделать (что указывает на некоторое знание ключа клиента) перед отправкой TGT.
Однако частично из-за того, что была добавлена предварительная аутентификация, а частично из-за того, что клиент не знает, какой запрос предварительной аутентификации будет отправлен, клиент всегда отправляет базовый запрос TGT, а затем KDC всегда отклоняет его с помощью запроса предварительной аутентификации. Эти сообщения журнала представляют собой запись Active Directory о том, что она получила запрос TGT без предварительной аутентификации и отправила ответный запрос.
Ваше предположение так же хорошо, как и мое, о том, почему это нужно регистрировать, поскольку это нормальная часть протокола и не очень интересная, но все KDC на базе Linux делают то же самое.
У меня была такая же проблема на моем сервере, и он заполнял мой сервер ошибками. Я нашел этот ключ реестра (HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
) в базе знаний службы поддержки Microsoft (https://support.microsoft.com/en-us/kb/262177) и удалил его, и теперь он, кажется, отлично работает.
KDC_ERR_PREAUTH_REQUIRED возвращается по первоначальному запросу Kerberos AS. По умолчанию клиент Windows Kerberos не включает информацию предварительной проверки подлинности в этот первый запрос. Ответ содержит информацию о поддерживаемых типах шифрования на KDC, а в случае AES - о солях, которые будут использоваться для шифрования хэшей паролей.
Рекомендация: всегда игнорируйте этот код ошибки.
https://support.microsoft.com/en-us/help/262177/how-to-enable-kerberos-event-logging
Вы можете остановить эту ошибку, установив флажок «Не требовать предварительной проверки подлинности Kerberos» в свойствах учетной записи пользователя на вкладке «Учетная запись» для учетной записи службы в Active Directory - пользователи и компьютеры.