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

Сервер Kerberos KDC в контейнере докеров

Для удобства я запускаю экземпляры сервера MIT Kerberos KDC и Kadmin в контейнере докеров. Я могу создать и запустить его без проблем, с извлечением только важных конфигураций и томов докеров. Я также подключаю KDC к OpenLDAP через модуль kldap.

Однако я вижу одну возможную проблему: при каждой перестройке кажется, что KDC инициирует разные цепочки ключей или что-то еще, что приводит к сбою старых аутентификаций. Все это имеет смысл и не является проблемой.

Мой вопрос: можно ли хранить внутреннюю базу данных KDC (или где она хранит учетные данные) на томе докера? Если да, то на какую часть я должен смотреть?

Моя цель состоит в том, чтобы при любой перестройке контейнера я мог подключиться к той же старой базе данных KDC, которая была создана старыми контейнерами. Это возможно?

Вы должны проверить конфигурационный файл kdc.conf. Это скажет вам, где хранятся файлы, которые используются.

exec в контейнер, когда он запущен, и найдите файл kdc.conf. Также файл krb5.conf будет содержать расположение других файлов.

https://web.mit.edu/kerberos/krb5-1.12/doc/admin/conf_files/kdc_conf.html

kdc.conf The KDC configuration file contains configuration information for the KDC and admin servers. kadmind uses settings in this file to locate the Kerberos database, and is also affected by the acl_file, dict_file, kadmind_port, and iprop-related settings.

Я подозреваю, что у вас могут возникнуть проблемы с изменением имени хоста и генерацией разных ключей.

Вы можете посмотреть на проделанную работу над проектом ниже, чтобы увидеть, как они это сделали. Их решение - Heimdal Kerberos 5, работающий в Docker на MacOS (который использует VirtualBox). https://github.com/tillt/docker-kdc/blob/master/kdc

Недостаточно просто подключить том к пути к базе данных KDC по умолчанию контейнера, например docker run -v /var/local/docker-volumes/krb5kdc:/usr/local/var/krb5kdc <kdc_image>? Или вы можете указать database_name в конфигурации области в kdc.conf, если вам нужна другая точка монтирования в контейнере.