FreeIPA/Настройка репликации
Системные требования
Требования к установке реплики такие же, как и для установки сервера FreeIPA (см. Системные требования к серверу FreeIPA).
Введение
Для установки реплики используется утилита ipa-replica-install. Реплики необходимо устанавливать по одной. Установка нескольких реплик одновременно не поддерживается.
Новую реплику можно установить:
- на существующем клиенте FreeIPA путем преобразования клиента в реплику;
- на машине, которая еще не зарегистрирована в домене FreeIPA.
В обеих этих ситуациях можно настроить реплику, добавив нужные параметры в команду ipa-replica-install.
Для возможности установки реплики должны быть установлены те же пакеты, что и при установке сервера (см. установка сервера FreeIPA):
# apt-get install freeipa-server freeipa-server-dns
Установка реплики на существующем клиенте FreeIPA
При установке реплики на существующем клиенте FreeIPA можно выбрать один из двух способов, чтобы авторизовать установку.
Способ 1. Использовать учетные данные привилегированного пользователя:
- пароль администратора FreeIPA будет запрошен в интерактивном режиме после запуска утилиты ipa-replica-install (поведение по умолчанию);
- получить билет Kerberos администратора FreeIPA (по умолчанию пользователь admin) непосредственно перед запуском утилиты ipa-replica-install;
- указать имя и пароль пользователя непосредственно в ipa-replica-install:
# ipa-replica-install --principal admin --admin-password password
Способ 2. Включить узел в группу ipaservers (см. установка реплики). Членство в группе ipaservers предоставляет машине повышенные привилегии, аналогичные учетным данным администратора. Следовательно, на следующем этапе для запуска утилиты ipa-replica-install права администратора FreeIPA не потребуются.
Установка реплики в системе, не зарегистрированной в домене FreeIPA
При установке реплики в системе, которая еще не зарегистрирована в домене FreeIPA, утилита ipa-replica-install сначала регистрирует систему в качестве клиента, а затем устанавливает компоненты реплики. Для этого сценария также можно выбрать один из двух способов, чтобы авторизовать установку реплики.
Способ 1. Использовать учетные данные привилегированного пользователя, указав их непосредственно во время установки реплики:
# ipa-replica-install --principal admin --admin-password password
Способ 2. Использовать случайный пароль, сгенерированный на сервере FreeIPA (см. установка реплики).
Параметры утилиты ipa-replica-install
По умолчанию реплика устанавливается на первый сервер FreeIPA, обнаруженный установщиком клиента. Чтобы установить реплику на определенный сервер, необходимо добавить следующие параметры в ipa-replica-install:
- --server для указания полного доменного имени сервера (FQDN);
- --domain для указания домена DNS FreeIPA.
При запуске без параметров ipa-replica-install настраивает только основные службы сервера. Чтобы установить дополнительные службы, например, DNS или центр сертификации (CA), следует добавить соответствующие параметры в ipa-replica-install:
- ---setup-dns и --forwarder для установки реплики с DNS;
- --setup-ca для установки реплики с интегрированным CA;
- --dirsrv-cert-file, --dirsrv-pin, --http-cert-file и --http-pin для установки реплики без CA.
Полный список параметров, используемых для настройки реплики, см. man ipa-replica-install.
Установка реплики
Установка реплики на существующем клиенте FreeIPA, с использованием Host Keytab
В данной процедуре клиент FreeIPA повышается до реплики с использованием собственной таблицы ключей хоста. Данная процедура не требует предоставления учетных данных администратора или диспетчера каталогов (DM), поэтому она более безопасна (т.к. в командной строке не отображается конфиденциальная информация).
Создать обратный адрес для реплики на DNS-сервере основного сервера. Для этого в веб-интерфейсе FreeIPA необходимо перейти в «Сетевые службы»→«DNS»→«Зоны DNS», выбрать в таблице запись домена (например, example.test.), в открывшемся списке открыть запись реплики (например, ipabackup), нажать на IP-адрес в поле A записи и в открывшемся окне на ссылку «Создать запись DNS»:
- На любом узле FreeIPA получить билет Kerberos:
$ kinit admin
- Добавить клиентскую машину в группу узлов ipaservers:
$ ipa hostgroup-add-member ipaservers --hosts ipabackup.example.test Группа узлов: ipaservers Описание: IPA server hosts Узлы-участники: ipa.example.test, ipabackup.example.test ----------------------------------- Количество добавленных участников 1 -----------------------------------
- На клиенте запустить утилиту ipa-replica-install:
# ipa-replica-install
Установка реплики с использованием случайного пароля
В этой процедуре реплика устанавливается на машину, которая еще не является клиентом FreeIPA. Для авторизации регистрации используется случайный пароль, действительный только для одной регистрации этого клиента.
Данная процедура не требует предоставления учетных данных администратора или диспетчера каталогов (DM), поэтому она более безопасна (т.к. в командной строке не отображается конфиденциальная информация).
- На любом сервере FreeIPA получить билет Kerberos:
$ kinit admin
- Добавить внешнюю систему в качестве узла 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
- Добавить систему в группу узлов ipaservers:
$ ipa hostgroup-add-member ipaservers --hosts hostb.example.test Группа узлов: ipaservers Описание: IPA server hosts Узлы-участники: ipa.example.test, ipabackup.example.test, hostb.example.test ----------------------------------- Количество добавленных участников 1 -----------------------------------
- На клиенте запустить утилиту ipa-replica-install, указав сгенерированный пароль в параметре --password (т.к. пароль часто содержит специальные символы, следует заключить его в одинарные кавычки):
# ipa-replica-install --password '2AaT0Ix8itDsYugdDGoRtBt'
- Пример команды установки реплики с интегрированными DNS и CA:
# ipa-replica-install --password '2AaT0Ix8itDsYugdDGoRtBt' --setup-ca --setup-dns --forwarder 192.168.0.151 --forwarder 8.8.8.8
Установка реплики с использованием учётных данных привилегированного пользователя
В этой процедуре реплика устанавливается на машину, которая еще не является клиентом FreeIPA. Для авторизации регистрации используются учётные данные привилегированного пользователя FreeIPA.
- Предварительно необходимо убедиться, что при настройке DNS в процессе инициализации FreeIPA была создана обратная зона DNS («Сетевые службы»→«DNS»→«Зоны DNS»):
- В реверсивной зоне создать реверсивную запись для сервера репликации (кнопка «Добавить»):
- На клиенте запустить утилиту ipa-replica-install:
# ipa-replica-install --principal admin --admin-password 12345678
# ipa-replica-install --principal admin --admin-password 12345678 --setup-ca --setup-dns --forwarder 192.168.0.151 --forwarder 8.8.8.8
С интегрированным DNS и без CA
Здесь предполагается, что первый сервер был установлен в режиме CA-less (см. Установка сервера в режиме CA-less). В этом случае можно предоставить необходимые сертификаты вручную.
На сервере, где создавались сертификаты для сервера:
- Создать noise файл, заполненный случайными числами:
# head -c20 /dev/random > ~/test_ca/noise.txt
- Создать запрос на сертификат (в 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
- Подписать запрос на сертификат:
# 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
- Импортировать полученный сертификат (на запрос команды, следует ввести пароль к закрытому ключу):
# certutil -d ~/test_ca -A -i /tmp/replicacert.pem -n Replica-Cert -a -t ,, Enter Password or Pin for "NSS Certificate DB":
- Экспортировать сертификат в 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
- Скопировать сертификат в формате 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
Проверка реплики
После создания реплики можно проверить, реплицирует ли реплика данные должным образом:
- Создать пользователя на новой реплике:
$ ipa user-add test_user
- Убедиться, что пользователь виден на другой реплике:
$ ipa user-show test_user
После настройки репликации посмотреть топологию можно в веб-интерфейсе FreeIPA («IPA-сервер» → «Топология» → «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.