Используемые термины: FreeIPA, CentOS.
Мы добавим второй сервер FreeIPA и настроим репликацию с первым. Предполагается, что у нас уже есть сам сервер — в противном случае, нужно сначала выполнить действия из инструкции Установка и использование FreeIPA на CentOS.
Процедура выполняется по следующему плану:
Наша инструкция подойдет для Rocky Linux или CentOS 7.
Для работы FreeIPA принципиально важны правильные настройки времени, DNS и брандмауэра.
Клиентские компьютеры (а первое, что мы делаем, это настраиваем наш вторичный сервер в качестве клиента FreeIPA) должны быть настроены на использование DNS-сервера, который мы сконфигурировали на сервере FreeIPA во время его установки. В сетевых настройках указываем использовать наш сервер ipa для разрешения имен:
После внесения изменений мы должны перезагрузить сетевые службы и, желательно, убедиться, что используется нужный DNS-сервер (с помощью команды nslookup или dig).
Установим часовой пояс:
timedatectl set-timezone Europe/Moscow
* в данном примере используется московское время.
Затем устанавливаем и запускаем утилиту для синхронизации времени chrony.
yum install chrony
systemctl enable chronyd –now
Для корректной работы вторичного сервера, необходимо, задать ему полное доменное имя (FQDN). Выполняем команду:
hostnamectl set-hostname ipa-server-2.admins24.local
* где ipa-server-2.admins24.local — имя сервера, которое будет использоваться.
Необходимо открыть несколько портов, которые используются службами FreeIPA:
firewall-cmd –permanent –add-port=53/{tcp,udp} –add-port={80,443}/tcp –add-port={88,464}/{tcp,udp} –add-port=123/udp –add-port={389,636}/tcp
firewall-cmd –reload
* где:
Отключаем SELinux командами:
setenforce 0
sed -i ‘s/^SELINUX=.*/SELINUX=disabled/g’ /etc/selinux/config
Устанавливаем freeipa-server. Команды немного отличаются в зависимости от версии CentOS.
а) для Rocky Linux / CentOS 8:
dnf install @idm:DL1
yum install ipa-server ipa-server-dns
б) для CentOS 7:
* предполагается, что мы будем реплицировать данные каталога + DNS, поэтому мы установим также пакет ipa-server-dns.
После установки пакетов ipa-server и ipa-server-dns можно переходить к подключению к основному серверу.
Выполним конфигурирование клиента командой:
ipa-client-install –mkhomedir –domain=admins24.local –realm=DMOSK.LOCAL –server=ipa-server.admins24.local
Если в нашей сети всего один FreeIPA, система предупредит, что автообнаружение серверов для аварийного переключения не может работать. Соглашаемся и отвечаем yes:
If you proceed with the installation, services will be configured to always access the discovered server for all operations and will not fail over to other servers in case of failure.Proceed with fixed values and no DNS discovery? [no]: yes
Система отобразить настройки LDAP в консоли, например:
Client hostname: ipa-server-2.admins24.localRealm: DMOSK.LOCALDNS Domain: DMOSK.LOCALIPA Server: ipa-server.admins24.localBaseDN: dc=admins24,dc=local
Если эти настройки верны, отвечаем положительно на запрос Continue to configure the system with these values?
Continue to configure the system with these values? [no]: yes
Система спросит, от какого пользователя производить настройку — вводим admin:
User authorized to enroll computers: admin
… и пароль:
Password for [email protected]:
Начнется процесс конфигурации — после его завершения:
…Configured /etc/openldap/ldap.confNTP enabledConfigured /etc/ssh/ssh_configConfigured /etc/ssh/sshd_configConfiguring DMOSK.LOCAL as NIS domain.Client configuration complete.The ipa-client-install command was successful
… сразу проверим, что клиент может получать билет от сервера:
kinit admin
… и вводим пароль от пользователя admin.
Проверяем, что билет получен:
Ответ должен быть, примерно, следующим:
Ticket cache: KCM:0Default principal: [email protected]
Valid starting Expires Service principal09/20/2021 16:23:05 09/21/2021 15:25:28 krbtgt/[email protected]
Клиент настроен. Удаляем полученный билет:
И переходим к добавлению нового узла в группу серверов IPA.
На стороне сервера IPA нам необходимо добавить узел для нашего вторичного сервера в группу ipaservers. Это можно сделать в веб-интерфейсе (раздел Идентификация – Группы – Группы узлов). Но мы рассмотрим пример для работы из командной строки.
Авторизовываемся в консоли от администратора:
Добавляем наш хост в группу ipaservers:
ipa hostgroup-add-member ipaservers –hosts ipa-server-2.admins24.local
Мы должны увидеть что-то на подобие:
Host-group: ipaservers Description: IPA server hosts Member hosts: ipa-server.admins24.local, ipa-server-2.admins24.local————————-Number of members added 1
Теперь можно переходить к настройке репликации.
Репликация будет настраиваться в несколько шагов:
Рассмотрим их выполнение подробнее.
На сервере создаем запись PTR в обратной зоне DNS. Это можно сделать через веб-интерфейс в разделе Сетевые службы – DNS – Зоны DNS.
А также, в момент установки у нас еще нет корректно работающей DNS на вторичном узле, но система может требовать разрешения имени хоста — добавим нужную запись в hosts:
vi /etc/hosts
…192.168.0.15 ipa-server.admins24.local192.168.0.16 ipa-server-2.admins24.local
* предполагается, что у нас хост ipa-server с адресом 192.168.0.15 и ipa-server-2 с 192.168.0.16.
Выполняем команду:
ipa-replica-install –setup-dns –no-forwarders
Мы увидим ошибку, что невозможно разрешить обратное имя нашего хоста, либо игнорируем ее:
Lookup failed: Preferred host ipa-server-2.admins24.local does not provide DNS.Reverse DNS resolution of address 192.168.0.16 (ipa-server-2.admins24.local) failed. Clients may not function properly. Please check your DNS setup. (Note that this check queries IPA DNS directly and ignores /etc/hosts.)Continue? [no]: yes
,,, либо возвращаемся к вопросу добавления записи PTR — возможно, была допущена ошибка.
Ждем — в конечном итоге мы увидим:
…The ipa-replica-install command was successful
После настройки репликации мы увидим предупреждение:
WARNING: The CA service is only installed on one server (ipa-server.admins24.local).It is strongly recommended to install it on another server.Run ipa-ca-install(1) on another master to accomplish this.
Оно означает, что роль центра сертификации пока находится только на первом сервере. Рекомендуется ее также установить на вторичный сервер. Для этого запускаем команду:
ipa-ca-install
Дожидаемся ее выполнения. Мы должны увидеть:
…Done configuring certificate server (pki-tomcatd).Updating DNS system records
Наш вторичный сервер готов к работе и может выполнять запросы. Нам нужно провести несколько проверок и изменить сетевые настройки для серверов и клиентов.
Рассмотрим процесс подробнее.
1. Проверка работы DNS.
С любого компьютера в сети выполняем dns-запрос к новому серверу, например:
nslookup ipa-server.admins24.local 192.168.0.16
* в данном примере мы делаем запрос адреса для первичного сервера через DNS вторичного.
Система должна вернуть ответ на подобие:
Server: 192.168.0.16Address: 192.168.0.16#53
Name: ipa-server.admins24.localAddress: 192.168.0.15
2. Проверяем состояние работы контроллеров.
Для этого есть утилита ipa-healthcheck. Ставим ее командой:
yum install ipa-healthcheck
Для общего анализа вводим:
ipa-healthcheck –failures-only
Для проверки репликации:
ipa-healthcheck –source ipahealthcheck.ds.replication –failures-only
3. Смена DNS.
И так, у нас дополнительный сервер IPA и DNS. Стоит добавить вторичный сервер, как альтернативный DNS на серверах и клиентах.
Делать новый сервер первичным или вторичным — дело десятое. Главное, чтобы клиенты могли отправлять соответствующие запросы.
Примеры настроек сети для различных систем:
Также если в нашей сети используется DHCP, добавляем для раздачи новый DNS.
Рассмотрим некоторые ошибки, с которыми сталкивался я при работе с репликой FreeIPA.
С данной ошибкой мы, скорее всего, столкнемся при проверке ipa-healthcheck на вторичном сервере. Полный текст:
… No DNA range defined. If no masters define a range then users and groups cannot be created.
Причина: данное предупреждение нам говорит о том, что на вторичном сервере не задан диапазон DNA, который определяет начальный и конечный идентификаторы создаваемых объектов (UIDs). Таким образом, вторичный сервер не сможет использоваться для создания новых объектов.
Решение: задаем данный диапазон. Это можно сделать с мастера.
ipa-replica-manage dnarange-show
Она нам покажет, какие на данный момент заданы диапазоны, например:
ipa-server.admins24.local: 849400000-849599999ipa-server-2.admins24.local: No range set
* как видим, для нашего нового сервера ipa-server-2.admins24.local диапазон не задан.
Посмотреть начальное значение и максимальное для количества идентификатором можно командой:
ipa idrange-find
Разбиваем наш диапазон на два:
ipa-replica-manage dnarange-set ipa-server.admins24.local 849400000-849499999
ipa-replica-manage dnarange-set ipa-server-2.admins24.local 849500000-849599999
Готово — теперь оба наших сервера могут выдавать идентификаторы для объектов.
Ошибка появляется в момент настройки CA на реплике на одном из этапов команды ipa-ca-install. Полный текст:
PKINIT certificate request failed: Certificate issuance failed (CA_UNREACHABLE: Server at https://ipa-server-2.admins24.local/ipa/json failed request, will retry: 4016 (Failed to authenticate to CA REST API).)Failed to configure PKINITFull PKINIT configuration did not succeedThe setup will only install bits essential to the server functionalityYou can enable PKINIT after the setup completed using ‘ipa-pkinit-manage’
При этом, сама настройка CA отрабатываем корректно.
Для решения выполним команду, которую нам рекомендует мастер настройки:
ipa-pkinit-manage enable
Если у нас появилась необходимость удалить один из серверов FreeIPA, мы должны удалить настройку реплики и после уже можно удалять саму роль FreeIPA.
Список текущих серверов можно посмотреть командой:
ipa-replica-manage list
Для удаления реплики вводим (на любом хосте FreeIPA):
ipa-replica-manage del ipa-server.admins24.local
* указываем, что мы отключаем реплику для сервера ipa-server.admins24.local.
Теперь удаляем настройку для FreeIPA (на хосте, который нужно удалить):
ipa-server-install –uninstall -U
Готово.
На клиентских компьютерах не забываем убрать из списка DNS удаленный сервер.
Рассмотрим настройки, которые не являются обязательными, но могут оказаться полезными.
Данная запись не является обязательной и не создается по умолчанию ни при поднятии мастера, ни при настройке реплики. Давайте это исправим:
ipa dnsrecord-add admins24.local _ntp._udp –srv-priority=0 –srv-weight=100 –srv-port=123 –srv-target=ipa-server.admins24.local.
ipa dnsrecord-add admins24.local _ntp._udp –srv-priority=0 –srv-weight=100 –srv-port=123 –srv-target=ipa-server-2.admins24.local.
* в данном примере мы создадим 2 записи типа SRV для двух наших серверов.
Выше мы уже говорили про диапазоны идентификаторов, которые задействуются при создании объектов. По умолчанию, создается диапазон с большими значениями. На практике, могут встретиться приложения, которые не смогут работать с учетными записями, имеющими данные большие значения.
Сменить настройки диапазона нельзя — система выдаст ошибку. Но мы можем создать новый диапазон и использовать его.
Создаем диапазон:
ipa idrange-add “New Range” –base-id=50000 –range-size=20000
* в данном примере мы создаем диапазон с названием New Range, первый идентификатор равен 50000, всего идентификаторов 20000.
Теперь мы можем назначить значения из нового диапазона для наших серверов:
ipa-replica-manage dnarange-set ipa-server.admins24.local 50000-59999
ipa-replica-manage dnarange-set ipa-server-2.admins24.local 60000-69999
Для инфраструктуры FreeIPA характерно использование только одного мастера по отзыву сертификатов (Certificate Revocation List). Проверить статус работы сервиса можно командой:
ipa-crlgen-manage status
Если мы видим:
CRL generation: enabled
… то данный сервер является мастером.
Если мы хотим перенести данную роль на другой сервер, то сначала мы отключаем crlgen на текущем сервере:
ipa-crlgen-manage disable
После разрешаем ее на новом сервере:
ipa-crlgen-manage enable
Продолжая использовать данный сайт вы принимаете политику конфиденциальности и cookies