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

Переход с Heimdal на MIT Kerberos

Кто-нибудь знает какую-либо существующую документацию, HOWTO, вопросы SE или даже сообщение в блоге, в котором показан пример миграции базы данных Kerberos из Heimdal в MIT KDC? Кто-нибудь проделывал эту операцию самостоятельно, и если да, то обнаруживали ли вы какие-нибудь подводные камни, или это просто сработало?

H5l.org не работает, поэтому я копаюсь на обратном пути; Я вижу документы по миграции из Массачусетского технологического института в Хеймдаль, которые раньше всегда были там - перечитывая их сейчас, они подразумевают, что вы должны иметь возможность пойти в обе стороны, так что есть надежда: http://web.archive.org/web/20160610142834/http://www.h5l.org/manual/HEAD/info/heimdal/Migration.html#Migration

Вот что у меня есть на данный момент:

  1. Сделайте дамп базы данных Heimdal. В соответствии с старые документы Heimdal, должно быть возможно просто выгрузить db в формате MIT, используя kadmin -l dump -f MIT. Но сборка Heimdal, с которой я имею дело, не поддерживает опцию MIT, поэтому мне пришлось сначала выгрузить db в формате по умолчанию:
# on old Heimdal KDC:
kadmin -l dump > /tmp/h5l.dump
  1. Затем я использовал Dockerfiles от NORDUnet для создания временных KDC Heimdal и MIT с помощью docker:
# on e.g. laptop:
cd /tmp
git clone git@github.com:NORDUnet/krb5-docker.git
cd krb5-docker
docker build -f Dockerfile.heimdal -t heimdal-alpine .
docker build -f Dockerfile.mit -t krb5-alpine .
  1. Теперь мы можем импортировать этот формат файла по умолчанию 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
  1. Теперь у нас должен быть хороший файл дампа в формате 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" завершается с нулевым кодом возврата, но kdb5_util dump говорит No such entry in the database while retrieving master entry, ни с чем на stdout. Я уверен, что я неправильно запускаю контейнер (ы), неправильно инициализирую их db, мне нужно что-то делать с принципалами и / или клавишами. Уже поздно, поэтому я собираюсь нажать "Отправить" сейчас и попробовать еще раз, когда у меня будет шанс.