Ошибка krb5 kinit после обновления до Ubuntu 20
У меня есть компьютер с Ubuntu 18.04, к которому я подключился (в качестве клиента) к файловой системе AFS через openafs и kinit (krb5), размещенной в моей компании (на основе MIT Kerberos). Это работает хорошо, вот журнал:
KRB5_TRACE=/dev/stdout kinit -V username
Using default cache: /tmp/krb5cc_5864_3P0GQm
Using principal: username@DOMAIN.COM
Getting initial credentials for username@DOMAIN.COM
Sending unauthenticated request
Sending request (198 bytes) to DOMAIN.COM
Resolving hostname SERVER.DOMAIN.COM
Sending initial UDP request to dgram IP:PORT
Received answer (572 bytes) from dgram IP:PORT
Response was not from master KDC
Salt derived from principal: DOMAIN.COMusername
Getting AS key, salt "DOMAIN.COMusername", params ""
Password for username@DOMAIN.COM:
AS key obtained from gak_fct: des3-cbc-sha1/****
Decrypted AS reply; session key is: des-cbc-crc/****
FAST negotiation: unavailable
Initializing FILE:/tmp/krb5cc_5864_3P0GQm with default princ username@DOMAIN.COM
Storing username@DOMAIN.COM -> krbtgt/DOMAIN.COM@DOMAIN.COM in FILE:/tmp/krb5cc_5864_3P0GQm
Warning: Your password will expire in XXX days
Authenticated to Kerberos v5
Сегодня обновился до Ubuntu 20.04 и 22.04 через do-release-upgrade, и после успешного завершения AFS-диски по-прежнему хорошо монтируются и читаются, но kinit-аутентификация перестала работать (уже в 20.04), с этой ошибкой точно так же и в 20.04, и в 22.04:
KRB5_TRACE=/dev/stdout kinit -V username
Using default cache: /tmp/krb5cc_1001
Using principal: username@DOMAIN.COM
Getting initial credentials for username@DOMAIN.COM
Error loading plugin module pkinit: 2/unable to find plugin [/usr/lib/x86_64-linux-gnu/krb5/plugins/preauth/pkinit.so]: No such file or directory
Sending unauthenticated request
Sending request (201 bytes) to DOMAIN.COM
Resolving hostname SERVER.DOMAIN.COM
Sending initial UDP request to dgram IP:PORT
Received answer (127 bytes) from dgram IP:PORT
Response was not from primary KDC
Received error from KDC: -1765328370/KDC has no support for encryption type
Retrying AS request with primary KDC
Getting initial credentials for username@DOMAIN.COM
Sending unauthenticated request
Sending request (201 bytes) to DOMAIN.COM (primary)
kinit: KDC has no support for encryption type while getting initial credentials
Есть идеи, как я могу решить эту ошибку, которая препятствует аутентификации?
Вот сравнение версий соответствующих пакетов:
krb5-config: 2.6 http://archive.ubuntu.com/ubuntu bionic/main amd64
krb5-user: 1.16-2ubuntu0.2 http://archive.ubuntu.com/ubuntu bionic-updates/universe amd64
openafs-krb5: 1.8.8.1-3~ppa0~ubuntu18.04.2 http://ppa.launchpad.net/openafs/stable/ubuntu bionic/main amd64
openafs-modules-dkms: 1.8.8.1-3~ppa0~ubuntu18.04.2 http://ppa.launchpad.net/openafs/stable/ubuntu bionic/main amd64
openafs-client: 1.8.8.1-3~ppa0~ubuntu18.04.2 http://ppa.launchpad.net/openafs/stable/ubuntu bionic/main amd64
против
krb5-config: 2.6+nmu1ubuntu1 http://archive.ubuntu.com/ubuntu jammy/main amd64
krb5-user: 1.19.2-2 http://archive.ubuntu.com/ubuntu jammy/universe amd64
openafs-krb5: 1.8.8.1-3~ppa0~ubuntu22.04.2 http://ppa.launchpad.net/openafs/stable/ubuntu jammy/main amd64
openafs-modules-dkms: 1.8.8.1-3~ppa0~ubuntu22.04.2 http://ppa.launchpad.net/openafs/stable/ubuntu jammy/main amd64
openafs-client: 1.8.8.1-3~ppa0~ubuntu22.04.2 http://ppa.launchpad.net/openafs/stable/ubuntu jammy/main amd64
Заранее спасибо.
1 ответ
Область Kerberos вашей компании настроена на использование очень устаревших типов шифрования; это аналогичная проблема с сообщениями AD, которые вы нашли, за исключением того, что рассматриваемый тип шифрования не RC4, а одиночный DES (т. е.des-cbc-crc
). Поддержка одиночного DES была полностью удалена из MIT Kerberos 1.18 и более поздних версий, и нет возможности повторно включить ее локально.
(И DES3, и RC4 все еще находятся в «в некотором роде приемлемом» диапазоне, поэтому тип шифрования «des3-cbc-sha1» по-прежнему поддерживается Krb5 1.20. С другой стороны, одиночный DES с его 56-битными ключами твердо находится в пределах диапазон «взламывается через несколько часов », поэтому его удаление является более срочным. Поскольку вы видите ошибку во время kinit, а не aklog, и поскольку смена пароля не устраняет ее, это означает, по сути, всю область Kerberos . работает на сеансовых ключах с одним DES.)
Единственное решение, которое я бы порекомендовал, — это удалить настроенные ограничения enctype в KDC (который определенно поддерживает как минимум des3) — если ваш сайт использует как минимум OpenAFS 1.4.15 или 1.6.5 (обе выпущены в 2013 году) с пакетом rxkad-kdf , aklog просто автоматически преобразует сеансовые ключи des3 или aes во что-то приемлемое для сервера AFS. (Что, честно говоря, по-прежнему 56-битное, потому что это все, с чем может справиться rxkad – но, по крайней мере, оно будет ограничено AFS, а не охватит всю область.)
Хотя, поскольку ваш KDC работает на SL4 (поддержка которого прекращена в 2011 году), я несколько сомневаюсь, что серверы AFS также получали какие-либо обновления за последнее десятилетие, поэтому единственный оставшийся вариант — понизить версию.libkrb5
и надеюсь, что ничего не сломается. (Вероятно, также потребуется понижение версии krb5-user для соответствия библиотекам, но поддержка шифрования не поддерживается.)
(Вы также можете создать контейнер Ubuntu 18.04, используяdebootstrap
иsystemd-nspawn
и использовать его для вещей Kerberos...)