Назад | Перейти на главную страницу

0x19 KDC_ERR_PREAUTH_REQUIRED в моем журнале событий

Итак, у меня есть сервер, и каждый раз, когда учетная запись пользователя или службы входит в систему, в системном журнале генерируется событие ошибки:

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 - пользователи и компьютеры.