Kerberos AES-256 шифрование не работает

Сервер - это RHEL7, Kerberos - это AD (Windows). Я единственный клиент KDC.

Arcfour-hmac работает нормально, но когда я изменяю тип шифрования на aes-256 и настраиваю новую таблицу ключей, kinit по-прежнему работает, но не kvno. И даже если у пользователя, кажется, есть действующий билет (в klist), он больше не может запускать службы.

У меня нет доступа к Kerberos AD, но, похоже, он правильно настроен на использование aes-256, потому что конечные пользователи (на компьютерах с Windows) уже запрашивают билеты в этом типе шифрования.

Мой krb5.conf:

[libdefaults]
default_realm = TOTO.NET
dns_lookup_realm = false
dns_lookup_kdc = false
ticket_lifetime = 24h
renew_lifetime = 7d
forwardable = true
default_tkt_enctypes = aes256-cts aes128-cts des-cbc-md5 des-cbc-crc
default_tgs_enctypes = aes256-cts aes128-cts des-cbc-md5 des-cbc-crc
permitted_enctypes = aes256-cts aes128-cts des-cbc-md5 des-cbc-crc

[realms]
TOTO.NET = {
  kdc = kdc1.toto.net
  kdc = kdc2.toto.net
  admin_server = kdc1.toto.net
}

[domain_realm]
.toto.net = TOTO.NET
toto.net = TOTO.NET

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

[2477332] 1493147723.961912: Getting credentials myuser@TOTO.NET -> nn/myserver@TOTO.NET using ccache FILE:/tmp/krb5cc_0 
[2477332] 1493147723.962055: Retrieving myuser@TOTO.NET -> nn/myserver@TOTO.NET from FILE:/tmp/krb5cc_0 with result: -1765328243/Matching credential not found (filename: /tmp/krb5cc_0) 
[2477332] 1493147723.962257: Retrieving myuser@TOTO.NET -> krbtgt/TOTO.NET@TOTO.NET from FILE:/tmp/krb5cc_0 with result: 0/Success 
[2477332] 1493147723.962267: Starting with TGT for client realm: myuser@TOTO.NET -> krbtgt/TOTO.NET@TOTO.NET 
[2477332] 1493147723.962274: Requesting tickets for nn/myserver@TOTO.NET, referrals on 
[2477332] 1493147723.962309: Generated subkey for TGS request: aes256-cts/17DF 
[2477332] 1493147723.962363: etypes requested in TGS request: aes256-cts, aes128-cts 
[2477332] 1493147723.962504: Encoding request body and padata into FAST request 
[2477332] 1493147723.962575: Sending request (1716 bytes) to TOTO.NET 
[2477332] 1493147723.962725: Resolving hostname kdc1.TOTO.NET 
[2477332] 1493147723.963054: Initiating TCP connection to stream ip_of_kdc1:88 
[2477332] 1493147723.964205: Sending TCP request to stream ip_of_kdc1:88 
[2477332] 1493147724.3751: Received answer (329 bytes) from stream ip_of_kdc1:88 
[2477332] 1493147724.3765: Terminating TCP connection to stream ip_of_kdc1:88 
[2477332] 1493147724.3846: Response was not from master KDC 
[2477332] 1493147724.3879: Decoding FAST response 
[2477332] 1493147724.3965: TGS request result: -1765328370/KDC has no support for encryption type

klist -ket mykeytab

Keytab name: FILE:nn.service.keytab
KVNO Timestamp           Principal
---- ------------------- ------------------------------------------------------
   1 01/01/1970 01:00:00 nn/myserver01@TOTO.NET (aes256-cts-hmac-sha1-96)
   1 03/22/2017 16:34:55 nn/myserver02@TOTO.NET (aes256-cts-hmac-sha1-96)

Спасибо за вашу помощь

1 ответ

Решение

Попросите администратора AD включить поддержку типов шифрования AES-256 для учетной записи AD, связанной с таблицей ключей. Чтобы найти эту учетную запись, выполните эту команду:

setspn -Q nn/myserver01@TOTO.NET

На выходе будет указано имя учетной записи. Он начинается с CN=xxx, где "xxx" - это имя учетной записи AD. Чтобы включить поддержку типов шифрования AES-256 в учетной записи AD, скажите администратору AD, что флажок "Эта учетная запись поддерживает 256-битное шифрование Kerberos AES" должен быть установлен и находится на вкладке "Учетная запись", полностью внизу.

Я совсем недавно столкнулся с этой проблемой и смог ее решить.

для нас это было то, что AD использовала другую соль, чем то, что клиент Kerberos использовал по умолчанию.

То есть при использовании ktutil: addent -password -p servicepuppetnp@AMER.EXAMPLE.COM -k 4 -e arcfour-hmac Пароль для admspike_white@AMER.EXAMPLE.COM:

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

ktutil: addent -password -p admspike_white@AMER.EXAMPLE.COM -k 1 -e aes256-cts-hmac-sha1-96 Пароль для admspike_white@AMER.EXAMPLE.COM:

не создал файл keytab, который позволил бы успешно выполнить kinit. (ошибка предварительной аутентификации).

Пришлось сделать так:

ktutil: addent -password -p admspike_white@AMER.EXAMPLE.COM -k 1 -e aes256-cts-hmac-sha1-96 -f Пароль для admspike_white@AMER.EXAMPLE.COM:

который сообщает ktutil, что нужно получить информацию о соли из AD DC. тогда он использует правильную соль. Это создает файл keytab, который позволяет успешно выполнить kinit.

Другие вопросы по тегам