Ошибка kadmind - krb5_recvauth: start_seq_get не поддерживается в типе таблицы ключей HDBGET
Я пытаюсь перенести KIM heimdal с бэкэндом OpenLDAP с сервера Debian 5.x (heimdal 1.2.dfsg.1-2.1) на сервер Ubuntu 14.04 (heimdal 1.6~git20131207+dfsg-1ubuntu1.1) и проблемы с kadmind в системе 14.04.
Некоторые функции Kerberos работают нормально - я могу запустить kinit, получить билет и успешно использовать аутентификацию GSSAPI с sshd. Я даже могу успешно использовать kadmin с опцией -l. Однако, когда я опускаю опцию -l и пытаюсь поговорить с kadmind, я получаю ошибки. Например, если я экспортирую таблицу ключей kadmin/admin в файл /tmp/kadmin.keytab и запускаю:
kadmin -p kadmin/admin -K /tmp/kadmin.keytab get kadmin/admin
Я получаю ошибку:
kadmind[38823]: krb5_recvauth: start_seq_get is not supported in the HDBGET keytab type
Эта точно такая же команда с точно таким же файлом kadmin.keytab прекрасно работает в системе Debian 5.x.
Ситуация, в которой я получаю вышеуказанную ошибку, заключается в том, что я либо скопировал файл /var/lib/heimdal-kdc/heimdal.db с сервера Debian 5.x на сервер Ubuntu 14.04, либо файл heimdal.db не существует. Если я использую файл heimdal.db по умолчанию, который создается вместе с установкой пакета heimdal, я вижу ошибку, отличную от kadmind:
kadmind[38853]: krb5_recvauth: Decrypt integrity check failed for checksum type hmac-sha1-96-aes256, key type aes256-cts-hmac-sha1-96
Я не понимаю, почему содержимое heimdal.db имеет значение, так как я использую бэкэнд OpenLDAP. Кажется странным, что к статическому файлу БД как-то обращаются, когда участники находятся в каталоге LDAP. Я подтвердил, что скопировал каталог LDAP без изменений из системы Debian 5.x в систему Ubuntu 14.04, и мастер-ключ не используется (нет директивы mkey_file, и даже если я копирую m-ключ по умолчанию) файл, который был сгенерирован изначально в Debian 5.x, это не имеет никакого значения). Не уверен, что еще я мог бы сделать, чтобы конфигурации были максимально похожими.
Я также попытался перенести более свежий пакет heimdal 1.6rc2 на 14.04, но получил те же ошибки. Я попытался проследить поведение Кадминда с помощью GDB, но ничего не выскочило как очевидная проблема.
Кто-нибудь знает, что здесь может происходить? Вот файлы /etc/krb5.conf и /etc/heimdal-kdc/kdc.conf для иллюстрации конфигурации:
# /etc/krb5.conf
[libdefaults]
default_realm = EXAMPLE.COM
forwardable = true
proxiable = true
renewable = true
scan_interfaces = true
[realms]
EXAMPLE.COM = {
admin_server = localhost
kdc = localhost
}
[domain_realm]
example.com = EXAMPLE.COM
.example.com = EXAMPLE.COM
[logging]
default = SYSLOG:INFO
# /etc/heimdal-kdc/kdc.conf
[logging]
kdc = FILE:/var/log/heimdal-kdc.log
kdc = SYSLOG:INFO
[kdc]
database = {
dbname = ldap:dc=example,dc=com
hdb-ldap-create-base = ou=Kerberos,dc=example,dc=com
acl_file = /etc/heimdal-kdc/kadmind.acl
}
1 ответ
Похоже, что различные изменения кода между 1.2 и 1.6 привели к проблеме, которую я видел. Чтобы исправить проблему, я сделал следующее:
- Добавлен принципал kadmin / admin в /etc/krb5.keytab
- Добавив
--keytab=/etc/krb5.keytab
на аргументы kadmind в /etc/inetd.conf
Это говорит kadmind явно искать в /etc/krb5.keytab (вместо "HDBGET:") субъект kadmin / admin, который он использует для аутентификации в kdc.
Для получения дополнительной информации см. https://github.com/heimdal/heimdal/issues/133