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

Kerberos KDC не поддерживает тип шифрования при получении учетных данных

Я настраиваю аутентификацию apache / SSO с AD с Kerberos. Мой http-сервер - это Debian Wheezy, а AD - это Windows Server 2012.

Я создал файлы keytabs на WS2012 с помощью kpass команда для каждого типа шифрования, доступного на WS2012.

Когда я пытаюсь открыть сеанс с пользователем test@DOMAIN.COM с участием kinit, оно работает.

Когда я пытаюсь открыть сеанс с моим HTTP/web.domain.com@DOMAIN.COM, Я получаю сообщение:

kvno HTTP/web.domain.com@DOMAIN.COM
kvno: KDC has no support for encryption type while getting credentials for HTTP/web.domain.com@DOMAIN.COM

Кроме того, когда я проверяю шифрование, используемое для test@DOMAIN.COM, У меня есть:

root@SERVER:~# klist -e
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: test@DOMAIN.COM

Valid starting       Expires              Service principal
03/04/2015 12:48:21  03/04/2015 22:48:17  krbtgt/DOMAIN.COM@DOMAIN.COM
        renew until 04/04/2015 12:48:21, Etype (skey, tkt): arcfour-hmac, arcfour-hmac

Я пытался настроить свой /etc/krb5.conf с участием:

  default_tgs_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5
  default_tkt_enctypes = arcfour-hmac-md5 des-cbc-crc des-cbc-md5

И используя файл keytab, зашифрованный с помощью arcfour-hmac безуспешно.

Я не понимаю, как изменить тип шифрования, используемый для связи, почему он всегда хочет arcfour-hmac и почему, когда я даю ему шифрование arcfour-hmac, ничего не меняется ...

Как быть уверенным в том, что изменения /etc/krb5.conf эффективны, и как заставить работать создание тикетов Kerberos?

Типы шифрования, поддерживаемые контроллером домена Active Directory, перечислены в msDS-SupportedEncryptionTypes атрибут объекта компьютера контроллера домена. При установке по умолчанию они обычно выглядят примерно так:

RC4_HMAC_MD5
AES128_CTS_HMAC_SHA1_96
AES256_CTS_HMAC_SHA1_96

Это битовая маска, которая работает до десятичного числа 28, поэтому это будет что-то вроде 00011100.

Поэтому, когда вы спрашиваете, почему контроллеру домена «всегда нужен только ARC4-HMAC», это потому, что ваш клиент не имеет ни одного из двух других типов шифрования, общих с контроллером домена, поэтому они исключаются в процессе согласования.

(Примечание: RC4_HMAC_MD5 действительно является наихудшим и самым слабым из всех возможных типов шифрования, но иногда также необходимо поддерживать устаревшие сценарии и совместимость с продуктами сторонних производителей.)

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

http://wiki.squid-cache.org/ConfigExamples/Authenticate/Kerberos

; for Windows 2008 with AES
   default_tgs_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
   default_tkt_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5
   permitted_enctypes = aes256-cts-hmac-sha1-96 rc4-hmac des-cbc-crc des-cbc-md5

Обратите внимание, что, помимо поддержки лучших типов шифрования, они также указывают rc4-hmac в их конфигурации, которая отличается от того, что у вас есть, arcfour-hmac-md5. (Также не забывайте permitted_enctypes строчку, которую я не увидел в вашем посте.)

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

Это наиболее общая проблема при настройке Kerberos. Решите ее, выполнив следующие действия.

1) vi /var/kerberos/krb5kdc/kdc.conf

2) проверьте supported_enctypes , используйте любые упомянутые там методы шифрования.

Надеюсь, это решит проблему.