FreeIPA/Настройка репликации: различия между версиями
(не показано 10 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
{{ | == Системные требования == | ||
Требования к установке реплики такие же, как и для установки сервера FreeIPA (см. [[FreeIPA/Установка_сервера_FreeIPA#Системные_требования|Системные требования к серверу FreeIPA]]). | |||
== Введение == | |||
Для установки реплики используется утилита {{cmd|ipa-replica-install}}. Реплики необходимо устанавливать по одной. Установка нескольких реплик одновременно не поддерживается. | |||
Новую реплику можно установить: | |||
* на существующем клиенте FreeIPA путем преобразования клиента в реплику; | |||
* на машине, которая еще не зарегистрирована в домене FreeIPA. | |||
В обеих этих ситуациях можно настроить реплику, добавив нужные параметры в команду {{cmd|ipa-replica-install}}. | |||
Для возможности установки реплики должны быть установлены те же пакеты, что и при установке сервера (см. [[FreeIPA/Установка_сервера_FreeIPA#Установка_пакетов| установка сервера FreeIPA]]): | |||
<syntaxhighlight lang="bash"># apt-get install freeipa-server freeipa-server-dns</syntaxhighlight> | |||
=== Установка реплики на существующем клиенте FreeIPA === | === Установка реплики на существующем клиенте FreeIPA === | ||
{{Note| | При установке реплики на существующем клиенте FreeIPA можно выбрать один из двух способов, чтобы авторизовать установку. | ||
Способ 1. Использовать учетные данные привилегированного пользователя: | |||
*пароль администратора FreeIPA будет запрошен в интерактивном режиме после запуска утилиты {{cmd|ipa-replica-install}} (поведение по умолчанию); | |||
*получить билет Kerberos администратора FreeIPA (по умолчанию пользователь admin) непосредственно перед запуском утилиты {{cmd|ipa-replica-install}}; | |||
*указать имя и пароль пользователя непосредственно в {{cmd|ipa-replica-install}}: | |||
*:<syntaxhighlight lang="bash"># ipa-replica-install --principal admin --admin-password password</syntaxhighlight> | |||
Способ 2. Включить узел в группу ipaservers (см. [[FreeIPA/Настройка_репликации#Установка_реплики_на_существующем_клиенте_FreeIPA,_с_использованием_Host_Keytab|установка реплики]]). Членство в группе ipaservers предоставляет машине повышенные привилегии, аналогичные учетным данным администратора. Следовательно, на следующем этапе для запуска утилиты {{cmd|ipa-replica-install}} права администратора FreeIPA не потребуются. | |||
=== Установка реплики в системе, не зарегистрированной в домене FreeIPA === | |||
{{Note|Перед настройкой репликации необходимо настроить систему на использование DNS-сервера, который был сконфигурирован на сервере FreeIPA во время его установки см. [[FreeIPA/Клиент#Подготовка_системы_к_установке_клиента_FreeIPA|Подготовка системы]].}} | |||
При установке реплики в системе, которая еще не зарегистрирована в домене FreeIPA, утилита {{cmd|ipa-replica-install}} сначала регистрирует систему в качестве клиента, а затем устанавливает компоненты реплики. Для этого сценария также можно выбрать один из двух способов, чтобы авторизовать установку реплики. | |||
Способ 1. Использовать учетные данные привилегированного пользователя, указав их непосредственно во время установки реплики: | |||
<syntaxhighlight lang="bash"># ipa-replica-install --principal admin --admin-password password</syntaxhighlight> | |||
Способ 2. Использовать случайный пароль, сгенерированный на сервере FreeIPA (см. [[FreeIPA/Настройка_репликации#Установка_реплики_с_использованием_случайного_пароля| установка реплики]]). | |||
{{Note|Сгенерированный пароль станет недействительным после регистрации машины в домене FreeIPA.}} | |||
== Параметры утилиты ipa-replica-install == | |||
По умолчанию реплика устанавливается на первый сервер FreeIPA, обнаруженный установщиком клиента. Чтобы установить реплику на определенный сервер, необходимо добавить следующие параметры в {{cmd|ipa-replica-install}}: | |||
* <tt>--server</tt> для указания полного доменного имени сервера (FQDN); | |||
* <tt>--domain</tt> для указания домена DNS FreeIPA. | |||
При запуске без параметров {{cmd|ipa-replica-install}} настраивает только основные службы сервера. Чтобы установить дополнительные службы, например, DNS или центр сертификации (CA), следует добавить соответствующие параметры в {{cmd|ipa-replica-install}}: | |||
* <tt>---setup-dns</tt> и <tt>--forwarder</tt> для установки реплики с DNS; | |||
* <tt>--setup-ca</tt> для установки реплики с интегрированным CA; | |||
* <tt>--dirsrv-cert-file</tt>, <tt>--dirsrv-pin</tt>, <tt>--http-cert-file</tt> и <tt>--http-pin</tt> для установки реплики без CA. | |||
Полный список параметров, используемых для настройки реплики, см. {{cmd|man ipa-replica-install}}. | |||
== Установка реплики == | |||
=== Установка реплики на существующем клиенте FreeIPA, с использованием Host Keytab=== | |||
В данной процедуре клиент FreeIPA повышается до реплики с использованием собственной таблицы ключей хоста. Данная процедура не требует предоставления учетных данных администратора или диспетчера каталогов (DM), поэтому она более безопасна (т.к. в командной строке не отображается конфиденциальная информация). | |||
Создать обратный адрес для реплики на DNS-сервере основного сервера. Для этого в веб-интерфейсе FreeIPA необходимо перейти в «Сетевые службы»→«DNS»→«Зоны DNS», выбрать в таблице запись домена (например, example.test.), в открывшемся списке открыть запись реплики (например, ipabackup), нажать на IP-адрес в поле A записи и в открывшемся окне на ссылку «Создать запись DNS»: | |||
[[Файл:IPAReplicaDNS.png]] | [[Файл:IPAReplicaDNS.png]] | ||
# На любом узле FreeIPA получить билет Kerberos: | |||
#:<syntaxhighlight lang="bash">$ kinit admin</syntaxhighlight> | |||
# Добавить клиентскую машину в группу узлов ipaservers: | |||
#На любом узле FreeIPA получить билет Kerberos: | #:<syntaxhighlight lang="bash">$ ipa hostgroup-add-member ipaservers --hosts ipabackup.example.test | ||
#:< | |||
#Добавить клиентскую машину в группу узлов ipaservers: | |||
#:< | |||
Группа узлов: ipaservers | Группа узлов: ipaservers | ||
Описание: IPA server hosts | Описание: IPA server hosts | ||
Строка 22: | Строка 71: | ||
----------------------------------- | ----------------------------------- | ||
Количество добавленных участников 1 | Количество добавленных участников 1 | ||
-----------------------------------</ | -----------------------------------</syntaxhighlight> | ||
# На клиенте запустить утилиту {{cmd|ipa-replica-install}}: | |||
#:<syntaxhighlight lang="bash"># ipa-replica-install</syntaxhighlight> | |||
=== Установка реплики с использованием случайного пароля === | |||
В этой процедуре реплика устанавливается на машину, которая еще не является клиентом FreeIPA. Для авторизации регистрации используется случайный пароль, действительный только для одной регистрации этого клиента. | |||
Данная процедура не требует предоставления учетных данных администратора или диспетчера каталогов (DM), поэтому она более безопасна (т.к. в командной строке не отображается конфиденциальная информация). | |||
#На любом сервере FreeIPA получить билет Kerberos: | #На любом сервере FreeIPA получить билет Kerberos: | ||
#:<source lang="text" highlight="1">$ kinit admin</source> | #:<source lang="text" highlight="1">$ kinit admin</source> | ||
Строка 53: | Строка 101: | ||
Количество добавленных участников 1 | Количество добавленных участников 1 | ||
-----------------------------------</source> | -----------------------------------</source> | ||
{{ | # На клиенте запустить утилиту {{cmd|ipa-replica-install}}, указав сгенерированный пароль в параметре <tt>--password</tt> (т.к. пароль часто содержит специальные символы, следует заключить его в одинарные кавычки): | ||
#:<syntaxhighlight lang="bash"># ipa-replica-install --password '2AaT0Ix8itDsYugdDGoRtBt'</syntaxhighlight> | |||
#:Пример команды установки реплики с интегрированными DNS и CA: | |||
#:<syntaxhighlight lang="bash"># ipa-replica-install --password '2AaT0Ix8itDsYugdDGoRtBt' --setup-ca --setup-dns --forwarder 192.168.0.151 --forwarder 8.8.8.8</syntaxhighlight> | |||
=== Установка реплики с использованием учётных данных привилегированного пользователя === | |||
В этой процедуре реплика устанавливается на машину, которая еще не является клиентом FreeIPA. Для авторизации регистрации используются учётные данные привилегированного пользователя FreeIPA. | |||
#Предварительно необходимо убедиться, что при настройке DNS в процессе инициализации FreeIPA была создана обратная зона DNS («Сетевые службы»→«DNS»→«Зоны DNS»): | |||
#:[[Файл:Freeipa-DNS-01.png|FreeIPA. Зоны DNS]] | |||
#:И в обратной зоне создана реверсивная запись для основного сервера 192.168.0.113: | |||
#:[[Файл:Freeipa-DNS-02.png|FreeIPA. Реверсивная запись для основного сервера]] | |||
#В реверсивной зоне создать реверсивную запись для сервера репликации (кнопка «Добавить»): | |||
#:[[Файл:Freeipa-DNS-03.png|FreeIPA. Реверсивная запись для сервера репликации]] | |||
#:Реверсивную запись можно также создать, выполнив команду: | |||
#:<syntaxhighlight lang="bash"># ipa dnsrecord-add 0.168.192.in-addr.arpa 145 --ptr-rec 'replica.example.test.'</syntaxhighlight> | |||
# На клиенте запустить утилиту {{cmd|ipa-replica-install}}: | |||
#:<syntaxhighlight lang="bash"># ipa-replica-install --principal admin --admin-password 12345678</syntaxhighlight> | |||
{{Note| | {{Note|Пример запуска утилиты {{cmd|ipa-replica-install}} с указанием дополнительных параметров: | ||
<syntaxhighlight lang="bash"># ipa-replica-install --principal admin --admin-password 12345678 --setup-ca --setup-dns --forwarder 192.168.0.151 --forwarder 8.8.8.8</syntaxhighlight>}} | |||
< | |||
=== С интегрированным DNS и без CA === | === С интегрированным DNS и без CA === | ||
Строка 113: | Строка 147: | ||
#Подписать запрос на сертификат: | #Подписать запрос на сертификат: | ||
#:<source lang="text" highlight="1-2"># export CERT_SERIAL=$(($CERT_SERIAL + 1)) | #:<source lang="text" highlight="1-2"># 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</source> | |||
#:В ответ на запросы команды дать следующие ответы: | #:В ответ на запросы команды дать следующие ответы: | ||
#:<source lang="text"> 2 - Key encipherment | #:<source lang="text"> 2 - Key encipherment | ||
Строка 139: | Строка 173: | ||
…. | …. | ||
The ipa-replica-install command was successful</source> | The ipa-replica-install command was successful</source> | ||
=== С интегрированными DNS и CA в системе, не зарегистрированой в домене FreeIPA === | === С интегрированными DNS и CA в системе, не зарегистрированой в домене FreeIPA === | ||
Строка 191: | Строка 224: | ||
*{{path|/var/log/dirsrv/slapd-INSTANCE-NAME/errors}} | *{{path|/var/log/dirsrv/slapd-INSTANCE-NAME/errors}} | ||
== Удаление реплики == | |||
Администратор FreeIPA может удалить реплику FreeIPA из топологии. Дополнительные сведения см. в [[FreeIPA/Установка_сервера_FreeIPA#Удаление_неудачной_установки_сервера_FreeIPA|Удаление сервера FreeIPA]]. | |||
[[Категория:FreeIPA]] | [[Категория:FreeIPA]] |
Текущая версия от 21:43, 1 марта 2023
Системные требования
Требования к установке реплики такие же, как и для установки сервера 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.