FreeIPA/Настройка репликации

Материал из ALT Linux Wiki

Подготовка системы для установки реплики

Установка реплики на существующем клиенте FreeIPA

Примечание: Перед настройкой репликации в этом случае необходимо выполнить установку клиента (cм. установка клиента FreeIPA).


Создать обратный адрес для реплики на DNS-сервере основного сервера. Для этого в веб-интерфейсе FreeIPA необходимо перейти в «Сетевые службы»→«DNS»→«Зоны DNS», выбрать в таблице запись домена (например, example.test.), в открывшемся списке открыть запись реплики (например, ipabackup), нажать на IP-адрес в поле A записи и в открывшемся окне на ссылку «Создать запись DNS»:

IPAReplicaDNS.png

При установке реплики на существующем клиенте FreeIPA можно выбрать один из двух способов, чтобы авторизовать установку.

Способ 1. Включить узел в группу ipaservers:

  1. На любом узле FreeIPA получить билет Kerberos:
    $ kinit admin
    
  2. Добавить клиентскую машину в группу узлов ipaservers:
    $ ipa hostgroup-add-member ipaservers --hosts ipabackup.example.test
      Группа узлов: ipaservers
      Описание: IPA server hosts
      Узлы-участники: ipa.example.test, ipabackup.example.test
    -----------------------------------
    Количество добавленных участников 1
    -----------------------------------
    
Примечание: Членство в группе ipaservers предоставляет машине повышенные привилегии, аналогичные учетным данным администратора. Следовательно, на следующем этапе для запуска утилиты ipa-replica-install права администратора FreeIPA не потребуются.


Способ 2. Использовать учетные данные привилегированного пользователя:

  • пароль администратора FreeIPA будет запрошен в интерактивном режиме после запуска утилиты ipa-replica-install (поведение по умолчанию);
  • получить билет Kerberos администратора FreeIPA (по умолчанию пользователь admin) непосредственно перед запуском утилиты ipa-replica-install.

Установка реплики в системе, не зарегистрированой в домене FreeIPA

Примечание: Перед настройкой репликации необходимо настроить систему на использование DNS-сервера, который был сконфигурирован на сервере FreeIPA во время его установки см. Подготовка системы.


Установить необходимые пакеты:

# apt-get install freeipa-client freeipa-server-dns

При установке реплики в системе, которая еще не зарегистрирована в домене FreeIPA, утилита ipa-replica-install сначала регистрирует систему в качестве клиента, а затем устанавливает компоненты реплики. Для этого сценария также можно выбрать один из двух способов, чтобы авторизовать установку реплики.

Способ 1. Использовать случайный пароль, сгенерированный на сервере FreeIPA:

  1. На любом сервере FreeIPA получить билет Kerberos:
    $ kinit admin
    
  2. Добавить внешнюю систему в качестве узла FreeIPA (сгенерированный случайный пароль будет использоваться для последующей установки реплики):
    $ ipa host-add hostb.example.test --random --ip-address=192.168.0.145
    ----------------------------------
    Добавлен узел "hostb.example.test"
    ----------------------------------
      Имя узла: hostb.example.test
      Случайный пароль: 2AaT0Ix8itDsYugdDGoRtBt
      Пароль: True
      Таблица ключей: False
      Managed by: hostb.example.test
    
  3. Добавить систему в группу узлов ipaservers:
    $ ipa hostgroup-add-member ipaservers --hosts hostb.example.test
      Группа узлов: ipaservers
      Описание: IPA server hosts
      Узлы-участники: ipa.example.test, ipabackup.example.test, hostb.example.test
    -----------------------------------
    Количество добавленных участников 1
    -----------------------------------
    
Примечание: Сгенерированный пароль станет недействительным после регистрации машины в домене FreeIPA.


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

Способ 2. Использовать учетные данные привилегированного пользователя. Необходимо добавить параметры --principal admin и --admin-password password в команду ipa-replica-install непосредственно во время установки реплики.

Установка реплики

С интегрированными DNS и CA

Примечание: При настройке реплики с CA конфигурация CA реплики должна отражать конфигурацию CA другого сервера. Включение параметра --setup-ca в команду ipa-replica-install копирует конфигурацию CA исходного сервера.


Настройка репликации LDAP-каталога:

# ipa-replica-install
….
Done.
Finalize replication settings
Restarting the KDC

WARNING: The CA service is only installed on one server (ipa.example.test).
It is strongly recommended to install it on another server.
Run ipa-ca-install(1) on another master to accomplish this.

The ipa-replica-install command was successful

Добавить в DNS второй NTP-сервер:

# ipa dnsrecord-add example.test _ntp._udp --srv-priority=0 --srv-weight=100 --srv-port=123 --srv-target=ipabackup.example.test

Настроить репликацию DNS-зон:

# ipa-dns-install

Настроить репликацию CA:

# ipa-ca-install

С интегрированным DNS и без CA

Здесь предполагается, что первый сервер был установлен в режиме CA-less (см. Установка сервера в режиме CA-less). В этом случае можно предоставить необходимые сертификаты вручную.

На сервере, где создавались сертификаты для сервера:

  1. Создать noise файл, заполненный случайными числами:
    # head -c20 /dev/random > ~/test_ca/noise.txt
    
  2. Создать запрос на сертификат (в CN необходимо указать имя хоста будущей реплики, на запрос «Enter value for the key identifier fields», следует ввести вывод команды echo $SKID):
    # SKID="0x`openssl rand -hex 20`"
    # echo $SKID
    0xa30f48abf89afae77e481c712d234ff0e312d44e
    # certutil -d ~/test_ca -R -s CN=ipabackup.example.test,O=IPA -o /tmp/replicacert.req -k rsa -g 2048 -z ~/test_ca/noise.txt -f ~/test_ca/password.txt -a --extSKID
    
    Generating key.  This may take a few moments...
    
    Adding Subject Key ID extension.
    Enter value for the key identifier fields,enter to omit:
    0xa30f48abf89afae77e481c712d234ff0e312d44e
    Is this a critical extension [y/N]? 
    n
    
  3. Подписать запрос на сертификат:
    # export CERT_SERIAL=$(($CERT_SERIAL + 1))
    #:# certutil -d ~/test_ca -C -c "CA" -i /tmp/replicacert.req -o /tmp/replicacert.pem -m $CERT_SERIAL -v 120 -f ~/test_ca/password.txt -1 -5 -a
    
    В ответ на запросы команды дать следующие ответы:
      2 - Key encipherment
      9 - done
      Is this a critical extension [y/N]? n
      1 - SSL Server
      9 - done
      Is this a critical extension [y/N]? n
    
  4. Импортировать полученный сертификат (на запрос команды, следует ввести пароль к закрытому ключу):
    # certutil -d ~/test_ca -A -i /tmp/replicacert.pem -n Replica-Cert -a -t ,,
    Enter Password or Pin for "NSS Certificate DB":
    
  5. Экспортировать сертификат в PKCS#12:
    # pk12util -o ~/test_ca/replicacert1.p12 -n Replica-Cert1 -d ~/test_ca -k ~/test_ca/password.txt -w ~/test_ca/password.txt
    pk12util: PKCS12 EXPORT SUCCESSFUL
    
  6. Скопировать сертификат в формате PKCS#12 на будущую реплику.

Настройка репликации LDAP-каталога:

# ipa-replica-install \
    --dirsrv-cert-file ~/test_ca/replicacert.p12 \
    --dirsrv-pin SECret.123 \
    --http-cert-file ~/test_ca/replicacert.p12 \
    --http-pin SECret.123 \
    --no-pkinit

….
The ipa-replica-install command was successful


С интегрированными DNS и CA в системе, не зарегистрированой в домене FreeIPA

Пример, настройки репликации LDAP-каталога:

# ipa-replica-install --password='2AaT0Ix8itDsYugdDGoRtBt'
Configuring client side components
This program will set up IPA client.
Version 4.9.7

Discovery was successful!
Client hostname: hostb.example.test
Realm: EXAMPLE.TEST
DNS Domain: example.test
IPA Server: ipa.example.test
BaseDN: dc=example,dc=test

The ipa-client-install command was successful

The ipa-replica-install command was successful
Примечание: Сначала будет установлен клиент, а затем реплика.


Проверка реплики

После создания реплики можно проверить, реплицирует ли реплика данные должным образом:

  1. Создать пользователя на новой реплике:
    $ ipa user-add test_user
    
  2. Убедиться, что пользователь виден на другой реплике:
    $ ipa user-show test_user
    

После настройки репликации посмотреть топологию можно в веб-интерфейсе FreeIPA («IPA-сервер» → «Топология» → «Topology Graph»):

FreeIPA. Topology Graph

Отладочная информация

При установке реплики FreeIPA отладочная информация добавляется в следующие файлы журнала на реплике:

  • /var/log/ipareplica-install.log
  • /var/log/ipareplica-conncheck.log
  • /var/log/ipaclient-install.log
  • /var/log/httpd2/error_log
  • var/log/dirsrv/slapd-INSTANCE-NAME/access
  • /var/log/dirsrv/slapd-INSTANCE-NAME/errors
  • /var/log/ipaserver-install.log

При установке реплики FreeIPA отладочная информация также добавляется в следующие файлы журнала на сервере FreeIPA:

  • /var/log/httpd2/error_log
  • var/log/dirsrv/slapd-INSTANCE-NAME/access
  • /var/log/dirsrv/slapd-INSTANCE-NAME/errors

Удаление реплики

Администратор FreeIPA может удалить реплику FreeIPA из топологии. Дополнительные сведения см. в Удаление сервера FreeIPA.