У меня проблема с Kerberos при подключении хоста Linux к Windows KDC. Подозреваю, что виноват ключ Kerberos с неправильной версией.
Один из способов быть уверенным - удалить SPN и создать его заново, но это в производственной среде, и я должен отлаживать в режиме «только для чтения», если хотите.
Как я могу получить текущий Kerberos KVNO от участника в Active Directory?
С помощью командлетов AD PowerShell можно запросить kvno:
get-aduser <username> -property msDS-KeyVersionNumber
Я не понимаю, имеет ли КВНО какое-либо отношение к вашей проблеме, Хорошо, возможно, с клиентами Linux, но в любом случае используйте Wireshark / Network Monitor:
Номера версий ключей описаны в разделе 3.1.5.8 MS-KILE.
Кстати, Матиас Р. Джессен прав в том, что Windows обычно игнорирует KVNO. Но они по-прежнему реализованы в виде RFC-жалоб.
Нет, винда на КВНО внимания не обращает. Он просто игнорирует это.
Но KVNO имеет некоторое значение в среде RODC:
Дополнительная информация здесь: http://support.microsoft.com/kb/2716037
В среде с одним или несколькими контроллерами домена только для чтения может произойти сбой проверки подлинности при взаимодействии с определенными устройствами Kerberos на основе MIT в одном из следующих сценариев.
· Клиент - устройство MIT, получившее TGT от Windows KDC на RODC.
· Клиент передает TGT, созданный Windows KDC на RODC, на устройство MIT, которое, в свою очередь, использует TGT для запроса TGS от имени вызывающего пользователя.
В обоих сценариях TGT будет выдан RODC, где msDS-SecondaryKrbTgtNumber связанный с учетной записью krbtgt для этого контроллера домена только для чтения, будет иметь значение больше 32767.
В Linux вы можете использовать квно команда, чтобы получить его из KDC
[root@XXXX XXX]# kvno host/XXXX
host/XXXX@TEST.COM: kvno = 13
dsquery * -filter sAMAccountName=Accountname -attr msDS-KeyVersionNumber
Запрос от подключенного к AD сервера linux:
net ads search -P '(&(objectCategory=computer)(cn=HOSTNAME))' msDS-KeyVersionNumber
заменить HOSTNAME с вашим именем хоста.