Кто-нибудь знает о какой-либо существующей документации, HOWTO, вопросе SE или даже записи в блоге, где показан пример миграции базы данных Kerberos из Heimdal в MIT KDC? Кто-нибудь сам выполнял эту операцию, и если да, то обнаружили ли вы какие-либо подводные камни или все само заработало?
H5l.org не работает, поэтому я копаюсь в Wayback; я вижу документы по миграции из MIT в Heimdal, которые раньше всегда были там — перечитывая их сейчас, я понимаю, что они подразумевают, что вы сможете перейти в обоих направлениях, так что есть надежда:http://web.archive.org/web/20160610142834/http://www.h5l.org/manual/HEAD/info/heimdal/Migration.html#Migration
решение1
Вот что у меня есть на данный момент:
- Сбросьте базу данных Heimdal. Согласностарые документы Хеймдаля, должно быть возможно просто сделать дамп базы данных в формате MIT с помощью
kadmin -l dump -f MIT
. Но сборка Heimdal, с которой я имею дело, не поддерживает опцию MIT, поэтому мне пришлось сначала сделать дамп базы данных в формате по умолчанию:
# on old Heimdal KDC:
kadmin -l dump > /tmp/h5l.dump
- Затем я использовал Dockerfiles от NORDUnet для создания временных Heimdal и MIT KDC с помощью docker:
# on e.g. laptop:
cd /tmp
git clone [email protected]:NORDUnet/krb5-docker.git
cd krb5-docker
docker build -f Dockerfile.heimdal -t heimdal-alpine .
docker build -f Dockerfile.mit -t krb5-alpine .
- Теперь мы можем импортировать этот формат файла Heimdal по умолчанию и экспортировать как MIT:
# laptop:
mkdir /tmp/k5
rsync -avz old-kdc:/tmp/h5l.dump /tmp/k5/
docker run --rm -it -v /tmp/k5:/tmp/k5 heimdal-alpine
docker ps # get container ID
docker exec -it b4e57b1bdb9f sh
# in heimdal-alpine container:
kadmin -l load /tmp/k5/h5l.dump
kadmin -l dump -f MIT /tmp/k5/mit.dump
- Теперь у нас должен быть хороший файл дампа в формате MIT. Чтобы проверить это, я использовал контейнер MIT:
# laptop
docker run --rm -it -v /tmp/k5:/tmp/k5 mit-alpine
docker ps # get container ID
docker exec -it 3721be560d8f sh
# in mit-alpine container:
kdb5_util load -verbose /tmp/k5/mit.dump
Этотпочтиработает. Эта команда "load" завершается с нулевым кодом возврата, но a kdb5_util dump
говорит No such entry in the database while retrieving master entry
, без ничего на stdout. Я уверен, что я неправильно запускаю контейнер(ы), не инициализирую их базу данных правильно, нужно что-то сделать с принципалами и/или keytab. Уже поздно, поэтому я собираюсь отправить это сейчас и попробовать еще раз в следующий раз, когда у меня будет возможность.