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

Проверить основной протокол аутентификации для Active Directory (NTLM или Kerberos?)

Как я могу проверить с клиентского компьютера (в глобальной группе) (также являющегося локальным администратором), аутентифицирует ли контроллер домена мой запрос на вход в домен с помощью NTLM или Kerberos?

Я знаю, что Kerberos включен по умолчанию, но администратор домена всегда может заставить клиентов авторизоваться с помощью других протоколов. Поэтому я просто хочу быть уверенным, какой протокол они используют. Есть ли какие-то способы проверить?

Любая помощь будет оценена

Ответ Грега в порядке, но в вашем вопросе конкретно указано, что вы хотите проверить это с клиента, а не с контроллера домена. Так что я займусь этим.

Во-первых, включите ведение журнала Kerberos на своем клиенте:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\Kerberos\Parameters
    LogLevel DWORD 0x1

После включения ведения журнала Kerberos войдите в систему и просмотрите журнал событий. Если вы используете Kerberos, вы увидите активность в журнале событий. Если вы передаете свои учетные данные и не видите никаких действий Kerberos в журнале событий, значит, вы используете NTLM.

Во-вторых, вы можете использовать утилиту klist.exe, чтобы увидеть ваши текущие билеты Kerberos. Это определенно поможет вам, если вы впервые аутентифицируетесь в службе, потому что вы получите новый билет ... но для последующих аутентификаций в той же службе вы можете повторно использовать один и тот же билет, и поэтому klist.exe может иметь ограниченную пользу для вас.

В-третьих, посмотрите, как проходит аутентификация с помощью Wireshark.

Один из способов - проверить журнал событий безопасности контроллера домена на наличие событий с кодом 4624 (вход в систему), где AuthenticationPackageName - NTLM или Kerberos. Вы также должны убедиться, что на ваших контроллерах домена включен аудит и что они фиксируют необходимые события аудита.

Вы можете создавать собственные фильтры средства просмотра событий, чтобы упростить эту задачу, и фильтровать другие поля, такие как имя пользователя или имя рабочей станции:

<QueryList>  
  <Query Id="0" Path="Security">
    <Select Path="Security">*[EventData[Data[@Name="AuthenticationPackageName"] = "NTLM"] and System[(EventID=4624)]]</Select>
  </Query> 
</QueryList>  


<QueryList>  
  <Query Id="0" Path="Security">
    <Select Path="Security">*[EventData[Data[@Name="AuthenticationPackageName"] = "Kerberos"] and System[(EventID=4624)]]</Select>
  </Query> 
</QueryList> 

Вы можете заставить своего клиента использовать только один или другой, чтобы убедиться, что вы используете Kerberos (или NTLM, если вы по какой-то причине предпочитаете это).

У Microsoft есть руководство, которое может оказаться полезным. В нем рассказывается, как оценивать и ограничивать использование NTLM. Руководство по аудиту и ограничению использования NTLM