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.