FreeIPA migration: различия между версиями

Материал из ALT Linux Wiki
(Новая страница: «====Миграция данных и конфигурации FreeIPA сервера с P8 на P9.==== Процесс миграции FreeIPA отлично з…»)
 
мНет описания правки
 
(не показано 8 промежуточных версий 1 участника)
Строка 1: Строка 1:
====Миграция данных и конфигурации FreeIPA сервера с P8 на P9.====
=Миграция данных и конфигурации FreeIPA сервера с P8 на P9=


Процесс миграции FreeIPA отлично задокументирован RedHat <ref>''[https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/installing_identity_management/migrate-7-to-8_migrating Migrating IdM from RHEL 7 to 8]''</ref> <ref>''[https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/linux_domain_identity_authentication_and_policy_guide/migrate-6-to-7 Migrating Identity Management from Red Hat Enterprise Linux 6 to Version 7]''</ref>
Процесс миграции FreeIPA отлично задокументирован RedHat <ref>''[https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html/installing_identity_management/migrate-7-to-8_migrating Migrating IdM from RHEL 7 to 8]''</ref> <ref>''[https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/linux_domain_identity_authentication_and_policy_guide/migrate-6-to-7 Migrating Identity Management from Red Hat Enterprise Linux 6 to Version 7]''</ref>
Строка 9: Строка 9:
  p8.ipa.test - система на P8, на которой присутствует роль 'CA renewal master'.
  p8.ipa.test - система на P8, на которой присутствует роль 'CA renewal master'.
   
   
Существует несколько способов для определения наличия этой роли(в зависимости от версии FreeIPA).<br />
Существует несколько способов для определения наличия этой роли (в зависимости от версии FreeIPA).<br />
Чтобы определить какой из CA master является CA renewal master указанную команду необходимо выполнить на каждом IPA сервере.
Чтобы определить какой из CA master является CA renewal master указанную команду необходимо выполнить на каждом IPA сервере.
   
   
Строка 21: Строка 21:


==Предварительные требования для миграции FreeIPA c P8 на P9==
==Предварительные требования для миграции FreeIPA c P8 на P9==
 
<br />
 
На p8.ipa.test:
На p8.ipa.test:
* Система обновлена до текущего состояния репозитория.
* Система обновлена до текущего состояния репозитория.


{{Note|При обновлении нескольких FreeIPA серверов, соблюдайте интервал в как минимум 10 минут между каждым обновлением. В противном случае могут произойти ошибки репликации.|warn}}
{{Note|При обновлении нескольких FreeIPA серверов, соблюдайте интервал в как минимум 10 минут между каждым обновлением. В противном случае могут произойти ошибки репликации}}


На p9.ipa.test:
На p9.ipa.test:
* Система обновлена до текущего состояния репозитория.
* Система обновлена до текущего состояния репозитория.


==Установка реплики на P9==
==Установка реплики на P9==
 
<br />
Установите IPA сервер на p9.ipa.test как реплику p8.ipa.test IPA сервера, с теми ролями, которые были задействованы на p8.ipa.test, например:
Установите IPA сервер на p9.ipa.test как реплику p8.ipa.test IPA сервера с теми ролями, которые были задействованы на p8.ipa.test, например:
<syntaxhighlight lang="console">
<syntaxhighlight lang="console">
[root@p9.ipa.test ~]# ipa-replica-install --setup-ca --setup-dns --no-forwarders -P admin -w SecretPassword --no-reverse
[root@p9.ipa.test ~]# ipa-replica-install --setup-ca --setup-dns --no-forwarders -P admin -w SecretPassword --no-reverse
</syntaxhighlight>
</syntaxhighlight>


Строка 42: Строка 40:
  --setup-dns для включения роли DNS сервера
  --setup-dns для включения роли DNS сервера


Указывать явно P8 IPA сервер не потребуется, если корректно настроен DNS.
Указывать явно P8 IPA сервер не потребуется, если корректно настроен DNS.<br />
После установки реплики проверяем, что IPA службы запущены на p9.ipa.test:
После установки реплики проверяем, что IPA службы запущены на p9.ipa.test:


Строка 54: Строка 52:
Проверьте, что и p8.ipa.test, и p9.ipa.test выступают в роли CA master.
Проверьте, что и p8.ipa.test, и p9.ipa.test выступают в роли CA master.
  <syntaxhighlight lang="console">
  <syntaxhighlight lang="console">
[root@p9.ipa.test ~]# kinit admin
  [root@p9.ipa.test ~]# ipa-csreplica-manage list
  [root@p9.ipa.test ~]# ipa-csreplica-manage list
  p8.ipa.test: master
  p8.ipa.test: master
Строка 74: Строка 71:
{{Note|Только если используется интегрированный IPA CA}}
{{Note|Только если используется интегрированный IPA CA}}


На p9.ipa.test, добавим роль CA renewal master
На p9.ipa.test добавим роль CA renewal master
<syntaxhighlight lang="console">
[root@p9.ipa.test ~]# kinit admin
[root@p9.ipa.test ~]# ipa config-mod --ca-renewal-master-server p9.ipa.test
...
IPA CA servers: p8.ipa.test, p9.ipa.test
IPA CA renewal master: p9.ipa.test
</syntaxhighlight>


==Отключение генерации Certificate Revocation List (CRL) на p8.ipa.test==
{{Note|Только если используется интегрированный IPA CA}}


    [root@p9.ipa.test ~]# ipa config-mod --ca-renewal-master-server
В IPA 4.3.3 нет команды <span style="color:red">ipa-crlgen-manage</span>, которая автоматизирует указанные ниже шаги, поэтому делаем все вручную:
      ...
      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:
На p8.ipa.test необходимо проверить генерируется ли CRL:
[root@p8.ipa.test ~]# grep ca.crl.MasterCRL.enableCRLUpdates /etc/pki/pki-tomcat/ca/CS.cfg
<syntaxhighlight lang="console">
ca.crl.MasterCRL.enableCRLUpdates=true
[root@p8.ipa.test ~]# grep ca.crl.MasterCRL.enableCRLUpdates /etc/pki/pki-tomcat/ca/CS.cfg
ca.crl.MasterCRL.enableCRLUpdates=true
</syntaxhighlight>


Если значение true, то это CRL generation master.
Если значение <span style="color:blue">true</span>, то это CRL generation master.


останавливаем инстанс pki-tomcat PKI:
Останавливаем инстанс pki-tomcat PKI:
systemctl stop pki-tomcatd@pki-tomcat
<syntaxhighlight lang="console">
[root@p8.ipa.test ~]# systemctl stop pki-tomcatd@pki-tomcat
</syntaxhighlight>


устанавливаем значения ca.crl.MasterCRL.enableCRLCache и ca.crl.MasterCRL.enableCRLUpdates in /etc/pki/pki-tomcat/ca/CS.cfg в false:
Устанавливаем значения <span style="color:blue">ca.crl.MasterCRL.enableCRLCache</span> и <span style="color:blue">ca.crl.MasterCRL.enableCRLUpdates</span> в файле <span style="color:blue">/etc/pki/pki-tomcat/ca/CS.cfg</span> в <span style="color:blue">false</span>:
ca.crl.MasterCRL.enableCRLCache=false
ca.crl.MasterCRL.enableCRLUpdates=false


ca.crl.MasterCRL.enableCRLCache=false
Запускаем инстанс pki-tomcat PKI:
ca.crl.MasterCRL.enableCRLUpdates=false
<syntaxhighlight lang="console">
[root@p8.ipa.test ~]# systemctl start pki-tomcatd@pki-tomcat
</syntaxhighlight>


запускаем инстанс pki-tomcat PKI:
Настраиваем Apache для перенаправления CRL запросов на новый CRL master, раскомментировав RewriteRule на последней строке в <span style="color:blue">/etc/httpd2/conf/extra-enabled/ipa-pki-proxy.conf</span>
systemctl start pki-tomcatd@pki-tomcat
<pre># 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]</pre>


настраиваем Apache для перенаправления CRL запросов на новый CRL master, раскомментировав RewriteRule на последней строке в /etc/httpd2/conf/extra-enabled/ipa-pki-proxy.conf
Перезапускаем Apache:
# Only enable this on servers that are not generating a CRL
<syntaxhighlight lang="console">
RewriteRule ^/ipa/crl/MasterCRL.bin https://p8.ipa.test/ca/ee/ca/getCRL?op=getCRL&crlIssuingPoint=MasterCRL [L,R=301,NC]
[root@p8.ipa.test ~]# systemctl restart httpd2
</syntaxhighlight>


==Включение роли CRL master на p9.ipa.test==
{{Note|Только если используется интегрированный IPA CA}}
<syntaxhighlight lang="console">
[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
</syntaxhighlight>


перезапускаем Apache:
Проверка статуса CRL
[root@p8.ipa.test ~]# systemctl restart httpd
<syntaxhighlight lang="console">
[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
</syntaxhighlight>


==Вывод из эксплуатации p8.ipa.test==
Убедимся, что репликация в domain сегменте работает (P8->P9), например:


5. Включение роли CRL master на p9.ipa.test
Добавим нового пользователя на p8.ipa.test:
замечание
<syntaxhighlight lang="console">
Только если используется интегрированный IPA CA
[root@p8.ipa.test ~]# ipa user-add test
First name: test
Last name: test
</syntaxhighlight>


    [root@p9.ipa.test ~]# ipa-crlgen-manage enable
Убедимся, что пользователь среплицирован на p9.ipa.test:
    Stopping pki-tomcatd
<syntaxhighlight lang="console">
    Editing /var/lib/pki/pki-tomcat/conf/ca/CS.cfg
[root@p9.ipa.test ~]# ipa user-find test
    Starting pki-tomcatd
--------------
    Editing /etc/httpd2/conf/extra-enabled/ipa-pki-proxy.conf
1 user matched
    Restarting httpd
--------------
    Forcing CRL update
User login: test
    CRL generation enabled on the local host. Please make sure to have only a single CRL generation master.
First name: test
    The ipa-crlgen-manage command was successful
Last name: test
</syntaxhighlight>


Останавливаем IPA на p8.ipa.test:
<syntaxhighlight lang="console">
[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
</syntaxhighlight>


    Проверка статуса CRL
Удаляем p8.ipa.test сервер из топологии на p9.ipa.test:
 
<syntaxhighlight lang="console">
    [root@p9.ipa.test ~]# ipa-crlgen-manage status
[root@p9.ipa.test ~]# ipa server-del p8.ipa.test
    CRL generation: enabled
</syntaxhighlight>
    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).


Запускаем процедуру обновления на p9.ipa.test:
<syntaxhighlight lang="console">
[root@p9.ipa.test ~]# ipa-server-upgrade
</syntaxhighlight>


Добавляем аттрибут <code>issuerName</code> к записям сертификатов:
<syntaxhighlight lang="console">
[root@p9.ipa.test ~]# pki-server db-upgrade
</syntaxhighlight>
После выполненной полной миграции IPA окружения настоятельно рекомендуется проверить установку с помощью утилиты <span style="color:blue">ipa-healthcheck</span> (пакет freeipa-healthcheck).


{{reflist}}
[[Категория:FreeIPA]]

Текущая версия от 10:51, 20 апреля 2022

Миграция данных и конфигурации 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 настроена в режиме CA-less, то любой из серверов IPA P8 может быть p8.ipa.test.


Предварительные требования для миграции FreeIPA c P8 на P9


На p8.ipa.test:

  • Система обновлена до текущего состояния репозитория.
Примечание: При обновлении нескольких FreeIPA серверов, соблюдайте интервал в как минимум 10 минут между каждым обновлением. В противном случае могут произойти ошибки репликации


На 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 ~]# 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

Примечание: Только если используется интегрированный IPA CA


На p9.ipa.test добавим роль CA renewal master

 [root@p9.ipa.test ~]# kinit admin
 [root@p9.ipa.test ~]# ipa config-mod --ca-renewal-master-server p9.ipa.test
 ...
 IPA CA servers: p8.ipa.test, p9.ipa.test
 IPA CA renewal master: p9.ipa.test

Отключение генерации 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:

 [root@p8.ipa.test ~]# systemctl stop pki-tomcatd@pki-tomcat

Устанавливаем значения ca.crl.MasterCRL.enableCRLCache и ca.crl.MasterCRL.enableCRLUpdates в файле /etc/pki/pki-tomcat/ca/CS.cfg в false:

ca.crl.MasterCRL.enableCRLCache=false
ca.crl.MasterCRL.enableCRLUpdates=false

Запускаем инстанс pki-tomcat PKI:

 [root@p8.ipa.test ~]# 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 httpd2

Включение роли 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

Вывод из эксплуатации 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:

 [root@p9.ipa.test ~]# ipa server-del p8.ipa.test

Запускаем процедуру обновления на p9.ipa.test:

 [root@p9.ipa.test ~]# ipa-server-upgrade

Добавляем аттрибут issuerName к записям сертификатов:

 [root@p9.ipa.test ~]# pki-server db-upgrade

После выполненной полной миграции IPA окружения настоятельно рекомендуется проверить установку с помощью утилиты ipa-healthcheck (пакет freeipa-healthcheck).