FreeIPA migration
Миграция данных и конфигурации FreeIPA сервера с P8 на P9.
Процесс миграции FreeIPA отлично задокументирован RedHat [1] [2] , но несмотря на это для миграции IPA c P8 на P9 существует ряд отличий.
Условные обозначения
p9.ipa.test - система на P9, на которую планируется добавить роль 'CA renewal master'. p8.ipa.test - система на P8, на которой присутствует роль 'CA renewal master'.
Существует несколько способов для определения наличия этой роли(в зависимости от версии FreeIPA).
Чтобы определить какой из CA master является CA renewal master указанную команду необходимо выполнить на каждом IPA сервере.
Для P8(4.3.x):
[root@p8.ipa.test ~]# getcert list -d /etc/pki/pki-tomcat/alias -n "subsystemCert cert-pki-ca" | grep post-save
post-save директива, которая выполняет renew_ca_cert, определена только для CA renewal master.
Предварительные требования для миграции FreeIPA c P8 на P9
На p8.ipa.test:
- Система обновлена до текущего состояния репозитория.
На p9.ipa.test:
- Система обновлена до текущего состояния репозитория.
Установка реплики на P9
Установите IPA сервер на p9.ipa.test как реплику p8.ipa.test IPA сервера, с теми ролями, которые были задействованы на p8.ipa.test, например:
[root@p9.ipa.test ~]# ipa-replica-install --setup-ca --setup-dns --no-forwarders -P admin -w SecretPassword --no-reverse
--setup-ca для включения роли Certificate System --setup-dns для включения роли DNS сервера
Указывать явно P8 IPA сервер не потребуется, если корректно настроен DNS. После установки реплики проверяем, что IPA службы запущены на p9.ipa.test:
root@p9.ipa.test# ipactl status
Directory Service: RUNNING
...
ipa: INFO: The ipactl command was successful
Проверьте, что и p8.ipa.test, и p9.ipa.test выступают в роли CA master.
[root@p9.ipa.test ~]# kinit admin
[root@p9.ipa.test ~]# ipa-csreplica-manage list
p8.ipa.test: master
p9.ipa.test: master
Дополнительно можно удостовериться в отсутствии ошибок репликации для сегмента ca:
[root@p9.ipa.test ~]# ipa-csreplica-manage list --verbose p9.ipa.test
Directory Manager password:
p8.ipa.test
last update status: Error (0) No replication sessions started since server startup
last update ended: 1970-01-01 00:00:00+00:00
Заменяем CA renewal master с p8.ipa.test на p9.ipa.test
На p9.ipa.test, добавим роль CA renewal master
[root@p9.ipa.test ~]# ipa config-mod --ca-renewal-master-server ... IPA CA servers: p8.ipa.test, p9.ipa.test IPA CA renewal master: p9.ipa.test
4. Отключение генерации Certificate Revocation List (CRL) на p8.ipa.test
замечание
Только если используется интегрированный IPA CA
В IPA 4.3.3 нет команды ipa-crlgen-manage, которая автоматизирует указанные ниже шаги:
На p8.ipa.test необходимо проверить генерируется ли CRL: [root@p8.ipa.test ~]# grep ca.crl.MasterCRL.enableCRLUpdates /etc/pki/pki-tomcat/ca/CS.cfg ca.crl.MasterCRL.enableCRLUpdates=true
Если значение true, то это CRL generation master.
останавливаем инстанс pki-tomcat PKI: systemctl stop pki-tomcatd@pki-tomcat
устанавливаем значения ca.crl.MasterCRL.enableCRLCache и ca.crl.MasterCRL.enableCRLUpdates in /etc/pki/pki-tomcat/ca/CS.cfg в false:
ca.crl.MasterCRL.enableCRLCache=false ca.crl.MasterCRL.enableCRLUpdates=false
запускаем инстанс pki-tomcat PKI: systemctl start pki-tomcatd@pki-tomcat
настраиваем Apache для перенаправления CRL запросов на новый CRL master, раскомментировав RewriteRule на последней строке в /etc/httpd2/conf/extra-enabled/ipa-pki-proxy.conf
- Only enable this on servers that are not generating a CRL
RewriteRule ^/ipa/crl/MasterCRL.bin https://p8.ipa.test/ca/ee/ca/getCRL?op=getCRL&crlIssuingPoint=MasterCRL [L,R=301,NC]
перезапускаем Apache:
[root@p8.ipa.test ~]# systemctl restart httpd
5. Включение роли CRL master на p9.ipa.test
замечание
Только если используется интегрированный IPA CA
[root@p9.ipa.test ~]# ipa-crlgen-manage enable Stopping pki-tomcatd Editing /var/lib/pki/pki-tomcat/conf/ca/CS.cfg Starting pki-tomcatd Editing /etc/httpd2/conf/extra-enabled/ipa-pki-proxy.conf Restarting httpd Forcing CRL update CRL generation enabled on the local host. Please make sure to have only a single CRL generation master. The ipa-crlgen-manage command was successful
Проверка статуса CRL
[root@p9.ipa.test ~]# ipa-crlgen-manage status CRL generation: enabled Last CRL update: 2020-09-10 06:35:44 Last CRL Number: 8 The ipa-crlgen-manage command was successful
6. Вывод из эксплуатации p8.ipa.test
Убедимся, что репликация в domain сегменте работает (P8->P9), например:
Добавим нового пользователя на p8.ipa.test:
[root@p8.ipa.test ~]# ipa user-add test First name: test Last name: test
Убедимся, что пользователь среплицирован на p9.ipa.test:
[root@p9.ipa.test ~]# ipa user-find test -------------- 1 user matched -------------- User login: test First name: test Last name: test
Останавливаем IPA на p8.ipa.test:
[root@p8.ipa.test ~]# ipactl stop Stopping ipa-otpd Service Stopping pki-tomcatd Service Stopping ipa-custodia Service Stopping httpd Service Stopping ipa_memcached Service Stopping named Service Stopping kadmin Service Stopping krb5kdc Service Stopping Directory Service ipa: INFO: The ipactl command was successful
Удаляем p8.ipa.test сервер из топологии на p9.ipa.test. После выполненной полной миграции IPA окружения настоятельно рекомендуется проверить установку с помощью ipa-healthcheck (пакет freeipa-healthcheck).