Настройка дополнительного сервера FreeIPA

В предыдущей публикации мы кратко рассмотрели что такое FreeIPA и как настроить первый сервер. В этой публикации будет рассмотрена настройка дополнительного сервера FreeIPA. Или по-другому – настройка реплики сервера FreeIPA.

Далее в статье для установки сервера FreeIPA я по-прежнему буду использовать Fedora Server 35.

Предварительные требования

Аппаратные требования для сервера копии точно такие же, как и для основного сервера.

Для запуска сервера FreeIPA требуется минимум 1.2 ГБ оперативной памяти. Для демонстрационной системы рекомендуется минимум 2 ГБ оперативной памяти. Соответственно, для боевой системы размер оперативной памяти должен составлять 4-8 ГБ.

Конфигурация моей демонстрационной виртуальной системы, следующая:

ПараметрЗначение
Количество ядер ЦП2 х 3.6 ГГц
Объем оперативной памяти, ГБ4
Объем жесткого диска, ГБ20

Однако, версия устанавливаемого сервера FreeIPA должна совпадает на обоих серверах – как на основном сервере, так и на сервере реплике.

Схема развертывания

Возьмем за основу тот факт, что сервера ipa1.itproblog.ru и клиент client.itproblog.ru уже настроены, как указано вот тут.

В этой публикации мы будем выполнять настройку сервера ipa2.itproblog.ru.

Подготовка операционной системы

Мы не будет рассматривать процесс остановки операционной системы, т.к. есть огромное количество соответствующего материала на просторах Интернета. Мы только рассмотрим шаги, которые необходимо выполнить сразу после установки операционной системы.

1. Актуализируем репозитории и выполняет обновление пакетов.

sudo dnf upgrade --refresh

Дожидаемся окончания процесса обновления пакетов.

2. Устанавливаем FQDN имя сервера. В соответствии с нашей схемой развертывания имя должно быть ipa2.itproblog.ru:

sudo hostnamectl set-hostname ipa2.itproblog.ru

Проверяем FQDN имя сервера:

sudo hostnamectl

 Static hostname: ipa2.itproblog.ru
       Icon name: computer-vm
         Chassis: vm
      Machine ID: 5ce449f832604acdba372ed06a675205
         Boot ID: efeb1269aace4715987bcc5af8e915b4
  Virtualization: vmware
Operating System: Fedora Linux 35 (Server Edition)
     CPE OS Name: cpe:/o:fedoraproject:fedora:35
          Kernel: Linux 5.14.10-300.fc35.x86_64
    Architecture: x86-64

3. Для первоначального корректного разрешения имен явно в файле hosts пропишем имена нашего сервера:

sudo vi /etc/hosts

Пример нужной нам записи:

10.10.10.24 ipa2.itproblog.ru ipa2

Сохраняем изменения в текстовом редакторе vi:

ESC
:wq!

Проверяем:

ping ipa2.itproblog.ru
[roman@fedora ~]$ ping ipa2.itproblog.ru
PING ipa2.itproblog.ru (10.10.10.24) 56(84) bytes of data.
64 bytes from ipa2.itproblog.ru (10.10.10.24): icmp_seq=1 ttl=64 time=0.038 ms
64 bytes from ipa2.itproblog.ru (10.10.10.24): icmp_seq=2 ttl=64 time=0.043 ms
64 bytes from ipa2.itproblog.ru (10.10.10.24): icmp_seq=3 ttl=64 time=0.046 ms
^C
--- ipa2.itproblog.ru ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2049ms
rtt min/avg/max/mdev = 0.038/0.042/0.046/0.003 ms
[roman@fedora ~]$ ^C

4. Устанавливаем в качестве адреса DNS сервера адрес сервера ipa1.itproblog.ru:

sudo vi /etc/systemd/resolved.conf
[Resolve]
DNS=10.10.10.26

Сохраняем изменения в текстовом редакторе vi:

ESC
:wq!

Перезагружаем сервер.

Проверяем:

sudo resolvectl
Global
         Protocols: LLMNR=resolve -mDNS -DNSOverTLS DNSSEC=no/unsupported
  resolv.conf mode: stub
Current DNS Server: 10.10.10.26
       DNS Servers: 10.10.10.26

Link 2 (ens33)
Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
     Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
   DNS Servers: 10.10.10.254

Проверяем разрешение имени основного сервера:

ping ipa1.itproblog.ru
PING ipa1.itproblog.ru (10.10.10.26) 56(84) bytes of data.
64 bytes from 10.10.10.26 (10.10.10.26): icmp_seq=1 ttl=64 time=0.323 ms
64 bytes from 10.10.10.26 (10.10.10.26): icmp_seq=2 ttl=64 time=0.300 ms
^C64 bytes from 10.10.10.26: icmp_seq=3 ttl=64 time=0.255 ms

--- ipa1.itproblog.ru ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2004ms
rtt min/avg/max/mdev = 0.255/0.292/0.323/0.028 ms
[roman@ipa2 ~]$ ^C

Разрешение FQDN имени работает корректно.

5. Добавим исключения в брандмауэр на сервере ipa1.itproblog.ru:

sudo firewall-cmd --permanent --add-port={9443/tcp,9444/tcp,9445/tcp,7389/tcp}
sudo firewall-cmd --reload

Эти порты используются в процессе репликации между экземплярами FreeIPA.

6. Добавим исключения в брандмауэр на сервере ipa2.itproblog.ru:

sudo firewall-cmd --permanent --add-port={9443/tcp,9444/tcp,9445/tcp,7389/tcp}
sudo firewall-cmd --reload

7. Переводим selinux в режим “предупреждать, но не запрещать”:

sudo vi /etc/selinux/config

Нам нужно переключить параметр SELINUX в режим permissive:

SELINUX=permissive

Сохраняем изменения в текстовом редакторе vi:

ESC
:wq!

8. Перезагружаем сервер ipa2.itproblog.ru.

9. проверяем режим selinux. Режим должен быть permissive:

sudo getenforce
[roman@ipa2 ~]$ sudo getenforce
[sudo] password for roman:
Permissive
[roman@ipa2 ~]$

Установка дополнительного сервера FreeIPA

Приступим к непосредственной установке сервера FreeIPA. Сначала необходимо установить и настроить клиент FreeIPA, а затем инициализировать процедуру создания реплики.

1. Устанавливаем пакеты для клиента FreeIPA:

sudo dnf install freeipa-client freeipa-server freeipa-server-dns

2. Подключаем клиента к домену FreeIPA:

sudo ipa-client-install --mkhomedir --domain itproblog.ru --realm ITPROBLOG.RU --enable-dns-updates

Мастер настройки клиента попробует выполнить обнаружение сервера. В случае успешного обнаружения сервера мастер сформируем для нас сводку с параметрами настройки клиента и запросит подтверждение на продолжение настройки:

This program will set up IPA client.
Version 4.9.9

Discovery was successful!
Do you want to configure chrony with NTP server or pool address? [no]:
Client hostname: ipa2.itproblog.ru
Realm: ITPROBLOG.RU
DNS Domain: itproblog.ru
IPA Server: ipa1.itproblog.ru
BaseDN: dc=itproblog,dc=ru

Continue to configure the system with these values? [no]: yes

3. Подтверждаем, что мы намерены продолжить установку. На определенном этапе мастер запросит у нас учетную запись пользователя, у которой есть привилегии для присоединения клиента к домену FreeIPA. Используем учетную запись admin. Указываем логин и пароль:

Synchronizing time
No SRV records of NTP servers found and no NTP server or pool address was provided.
Using default chrony configuration.
Attempting to sync time with chronyc.
Time synchronization was successful.
User authorized to enroll computers: admin
Password for admin@ITPROBLOG.RU:

11. Дожидаемся окончания процесса настройки клиента FreeIPA:

Successfully retrieved CA cert
    Subject:     CN=Certificate Authority,O=ITPROBLOG.RU
    Issuer:      CN=Certificate Authority,O=ITPROBLOG.RU
    Valid From:  2022-05-14 07:48:42
    Valid Until: 2042-05-14 07:48:42

Enrolled in IPA realm ITPROBLOG.RU
Created /etc/ipa/default.conf
Configured /etc/sssd/sssd.conf
Configured /etc/krb5.conf for IPA realm ITPROBLOG.RU
Systemwide CA database updated.
Adding SSH public key from /etc/ssh/ssh_host_ecdsa_key.pub
Adding SSH public key from /etc/ssh/ssh_host_ed25519_key.pub
Adding SSH public key from /etc/ssh/ssh_host_rsa_key.pub
SSSD enabled
Configured /etc/openldap/ldap.conf
Configured /etc/ssh/ssh_config
Configured /etc/ssh/sshd_config.d/04-ipa.conf
Configuring itproblog.ru as NIS domain.
Client configuration complete.
The ipa-client-install command was successful
[roman@ipa2 ~]$

12. На сервере ipa1.itproblog.ru добавим PTR запись для сервера реплики:

sudo kinit admin
sudo ipa dnsrecord-add 10.10.10.in-addr.arpa 24 --ptr-rec ipa2.itproblog.ru.

13. На сервере ipa2.itproblog.ru добавляем исключения в брандмауэр для сервера FreeIPA:

sudo firewall-cmd --permanent --add-service={http,https,ldap,ldaps,dns,ntp,kerberos}
sudo firewall-cmd --permanent --add-port=464/tcp
sudo firewall-cmd --reload

14. Запустим процесс настройки реплики:

sudo ipa-replica-install  --setup-dns --forwarder 8.8.8.8

Когда мастер установки попросит, то указываем пароль пользователя admin:

Password for admin@ITPROBLOG.RU:

Дожидаемся окончания процесса настройки реплики сервера FreeIPA:

WARNING: The CA service is only installed on one server (ipa1.itproblog.ru).
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

15. Устанавливаем копию центра сертификации (CA):

sudo ipa-ca-install

В процессе установки мастер попросит нас указать пароль Directory Manager:

Directory Manager (existing master) password:

Дожидаемся окончания процесса установки реплики CA:

Done configuring certificate server (pki-tomcatd).

Updating DNS system records

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

Проверяем список серверов FreeIPA:

 sudo ipa-replica-manage list
Directory Manager password:

ipa1.itproblog.ru: master
ipa2.itproblog.ru: master

Попробуем запустить процесс репликации на сервере ipa2.itproblog.ru:

sudo ipa-replica-manage force-sync --from ipa1.itproblog.ru
[roman@ipa2 ~]$ sudo ipa-replica-manage force-sync --from ipa1.itproblog.ru
Directory Manager password:

[roman@ipa2 ~]$

В веб интерфейсе администрирования в разделе IPA Server -> Topology должны отображаться оба наших сервера:

Если открыть свойство второго сервера, то мы должны увидеть полный перечень настроенных сервисов для этого сервера:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *