Установка FreeIPA на Альт Сервер 10

В этой статье я покажу, как выполняется установка FreeIPA на Альт Сервер 10. В одной из свои предыдущих статей я показывал, как выполняется установка FreeIPA на Fedora Server. Эта публикация будет таргетирована на Альт Сервер 10.

Сервер FreeIPA – это система централизованного управления учетными записями пользователей. Аналог Active Directory для Linux. Однако, помимо сервера LDAP (на базе 389 Directory Server) сервер FreeIPA включает в себя еще следующий набор возможностей:

  • Аутентификация Kerberos (MIT’s Kerberos 5).
  • Встроенный сервер DNS (BIND).
  • Встроенный центр сертификации (DogTag).
  • Веб доступ до инструментов администрирования. Так же есть набор консольных утилит.

FreeIPA поддерживаем настройку доверительных отношений с Active Directory.

Статья является опорной и не является исчерпывающем руководством.

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

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

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

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

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

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

Выполните установку Альт Сервер 10 в режиме минимальной конфигурации. Можно выполнить установку сервера с графическим интерфейсом – тут уже на ваш выбор.

Теперь подготовим операционную систему:

1. Переходим в привелигерованный режим:

su -

2. Устанавливаем актуальные обновления (если вы еще этого не сделали):

apt-get update
apt-get dost-upgrade

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

hostnamectl set-hostname ipa01.itproblog.ru

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

hostnamectl
[root@host-58 ~]# hostnamectl
 Static hostname: ipa01.itproblog.ru
       Icon name: computer-vm
         Chassis: vm
      Machine ID: 847796cb0c9f861d60a6851762d2c6ff
         Boot ID: 68d5a282e9314185a11bdf3fbac4c7ca
  Virtualization: vmware
Operating System: ALT Server 10.1 (FalcoRusticolus)
     CPE OS Name: cpe:/o:alt:server:10.1
          Kernel: Linux 5.10.82-std-def-alt1
    Architecture: x86-64
[root@host-58 ~]#

4. Конфигурируем статический IP-адрес (10.10.10.200) и DNS для сервера.

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

vim /etc/hosts

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

127.0.0.1	localhost.localdomain localhost
10.10.10.200	ipa01.itproblog.ru ipa01

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

ESC
:wq!

Проверяем:

ping ipa01.itproblog.ru
[root@host-58 ~]# ping ipa01.itproblog.ru
PING ipa01.itproblog.ru (10.10.10.200) 56(84) bytes of data.
64 bytes from ipa01.itproblog.ru (10.10.10.200): icmp_seq=1 ttl=64 time=0.021 ms
64 bytes from ipa01.itproblog.ru (10.10.10.200): icmp_seq=2 ttl=64 time=0.035 ms
64 bytes from ipa01.itproblog.ru (10.10.10.200): icmp_seq=3 ttl=64 time=0.065 ms
^C
--- ipa01.itproblog.ru ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2036ms
rtt min/avg/max/mdev = 0.021/0.040/0.065/0.018 ms
[root@host-58 ~]# ^C

Рекомендации по установке

В официальном руководстве есть полный перечень рекомендаций. Я же кратко остановлюсь лишь на некоторых наиболее существенных из них:

  • Рекомендуется использовать именно встроенный сервер DNS. Возможен вариант с использованием внешнего сервера DNS, но это сопряжено с гораздо более сложной настройкой внешнего сервера DNS. И, как следствие, поле для ошибок в конфигурации потенциально больше.
  • Рекомендуется развертывать два сервера – основной сервер и реплику. Про развертывание сервера реплики мы поговорим в отдельной публикации.
  • Не отключайте IPv6 командой  ipv6.disable=1.
  • Для продуктивной системы размер оперативной памяти должен составлять 4-8 ГБ.
  • Рекомендуется создавать уникальное имя для домена FreeIPA. Если у вас уже есть какие-либо системы, использующие Kerberos (MS Active Directory, например), то настройка доверительных отношений будет невозможна.
  • После установки сервера FreeIPA нельзя изменить имя домена или имя области Kerberos. Планируйте соответствующие имена с учетом этой особенности.

Установка FreeIPA на Альт Сервер

Я покажу, как выполнять установку FreeIPA вместе с корневым центром сертификации. Установка FreeIPA на Альт Сервер включает следующие шаги:

1. В официальном руководстве рекомендуется отключить ahttpd, работающий на порту 8080, во избежание конфликтов с разворачиваемым tomcat и отключить HTTPS в Apache2:

service ahttpd stop
a2dissite 000-default_https
a2disport https
service httpd2 condreload

Если при выполнении команды выше у вас генерируется ошибка “Unrecognized service” или “a2disport https” – не переживайте, значит эти сервисы уже отключены.

2. Для ускорения установки можно установить демон энтропии haveged:

apt-get install haveged
systemctl enable --now haveged

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

apt-get install freeipa-server freeipa-server-dns

Дождитесь окончания процесса установки нужных пакетов.

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

systemctl reboot

5. Запускаем установку сервера FreeIPA со встроенный сервером DNS:

ipa-server-install --setup-dns --no-dnssec-validation  --allow-zone-overlap --reverse-zone=10.10.10.in-addr.arpa

–setup-dns – этот параметр говорит мастера установки о том, что необходимо установить и настроить встроенный сервер DNS.

–no-dnssec-validation – отключить DNSSEC. Потенциально этого можно и не делать, но если вы планируете настройку доверительных отношений с Active Directory и настройку сервера пересылки DNS, то DNSSEC необходимо выключить. Иначе сервер DNS от FreeIPA будет ожидать защищенного ответа от DNS Active Directory. В 99% случаев DNSSEC для Active Directory не настроен, и он не сможет вернуть защищенный ответ. Если кратко – разрешение имен не будет работать.

–allow-zone-overlap – если у вас уже где-то используется имя домена, то установка сервера FreeIPA может завершиться с ошибкой. Например, в моем случае мастер установки нашел, что домен itproblog.ru уже делегирован другим NS серверам и прервал процесс установки:

Checking DNS domain itproblog.ru., please wait ...
DNS zone itproblog.ru. already exists in DNS and is handled by server(s): ['ns1.beget.com.', 'ns2.beget.ru.', 'ns2.beget.com.', 'ns1.beget.ru.', 'ns1.beget.pro.', 'ns2.beget.pro.']
The ipa-server-install command failed. See /var/log/ipaserver-install.log for more information

–reverse-zon – создает зону обратного просмотра.

6. Мастер установки попросит нас указать FQDN имя сервера, имя домена и имя области Kerberos. Можем либо оставить значения по умолчанию (в квадратных скобках), либо задать свои значения. Я оставлю значения по умолчанию – они мне более чем подходят.

To accept the default shown in brackets, press the Enter key.

Enter the fully qualified domain name of the computer
on which you're setting up server software. Using the form
<hostname>.<domainname>
Example: master.example.com.


Server host name [ipa01.itproblog.ru]: 

Warning: skipping DNS resolution of host ipa01.itproblog.ru
The domain name has been determined based on the host name.

Please confirm the domain name [itproblog.ru]: 

The kerberos protocol requires a Realm name to be defined.
This is typically the domain name converted to uppercase.

Please provide a realm name [ITPROBLOG.RU]: 

7. После этого мастер установки сервера FreeIPA попросит нас указать пароль для Directory Manager:

Directory Manager password: 
Password (confirm): 

The IPA server requires an administrative user, named 'admin'.
This user is a regular system account used for IPA server administration.

Задайте необходимый пароль.

8. Теперь укажем пароль администратора сервера FreeIPA. Имя администратора – admin:

The IPA server requires an administrative user, named 'admin'.
This user is a regular system account used for IPA server administration.

IPA admin password: 
Password (confirm): 

9. Указываем на какие сервера необходимо перенаправлять внешние DNS запросы:

Checking DNS domain itproblog.ru., please wait ...
DNS zone itproblog.ru. already exists in DNS and is handled by server(s): ['ns1.beget.pro.', 'ns2.beget.com.', 'ns1.beget.com.', 'ns1.beget.ru.', 'ns2.beget.ru.', 'ns2.beget.pro.'] Please make sure that the domain is properly delegated to this IPA server.
Checking DNS domain 10.10.10.in-addr.arpa, please wait ...
Do you want to configure DNS forwarders? [yes]: 
Following DNS servers are configured in /etc/resolv.conf: 8.8.8.8
Do you want to configure these servers as DNS forwarders? [yes]: yes
All detected DNS servers were added. You can enter additional addresses now:
Enter an IP address for a DNS forwarder, or press Enter to skip: 
DNS forwarders: 8.8.8.8

Я буду использовать адрес 8.8.8.8.

10. Мастер установки может сразу создать для нас зону обратного просмотра, как мы его и попросили:

Using reverse zone(s) 10.10.10.in-addr.arpa.

11. Параметры сервера точного времени мы менять не будем:

Do you want to configure OPENNTPD with NTP server or pool address? [no]: no

12. В завершении мастер установки сервера FreeIPA представит нам краткую сводку – с какими параметра будет осуществляться установка:

Do you want to configure OPENNTPD with NTP server or pool address? [no]: no

The IPA Master Server will be configured with:
Hostname:       ipa01.itproblog.ru
IP address(es): 10.10.10.200
Domain name:    itproblog.ru
Realm name:     ITPROBLOG.RU

The CA will be configured with:
Subject DN:   CN=Certificate Authority,O=ITPROBLOG.RU
Subject base: O=ITPROBLOG.RU
Chaining:     self-signed

BIND DNS server will be configured to serve IPA domain with:
Forwarders:       8.8.8.8
Forward policy:   only
Reverse zone(s):  10.10.10.in-addr.arpa.

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

Соглашаемся на установку сервера FreeIPA с заданными параметрами.

13. Запуститься процесс установки сервера FreeIPA. Дожидаемся его завершения. В моем случае процесс установки и настройки сервера FreeIPA заняла порядка 5 минут.

14. В случае успешной установки мастер сообщит от этом:

The ipa-server-install command was successful

15. В своей работы сервера FreeIPA используется следующие порты и протоколы:

TCP Ports:
* 80, 443: HTTP/HTTPS
* 389, 636: LDAP/LDAPS
* 88, 464: kerberos
* 53: bind
UDP Ports:
* 88, 464: kerberos
* 53: bind
* 123: ntp

Необходимо убедиться, что эти порты не закрыты брандмауэром.

Установка сервера FreeIPA завершена.

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

Теперь выполним проверку нашего развертывания сервера FreeIPA.

1. Попробуем запросить билет Kerb

kinit admin

Указываем пароль пользователя admin:

[root@ipa01 ~]# kinit admin
Password for admin@ITPROBLOG.RU: 
[root@ipa01 ~]# 

Проверяем, получилось ли у нас выписать билет Kerberos:

klist

Мы должны увидеть Kerberos билет для пользователя admin.

[root@ipa01 ~]# klist
Ticket cache: KEYRING:persistent:0:0
Default principal: admin@ITPROBLOG.RU

Valid starting       Expires              Service principal
07/16/2022 21:45:05  07/17/2022 21:03:32  krbtgt/ITPROBLOG.RU@ITPROBLOG.RU
[root@ipa01 ~]# 

2. Проверим статус всех подсистем FreeIPA:

ipactl status

Вывод команды:

[root@ipa01 ~]# ipactl status
Directory Service: RUNNING
krb5kdc Service: RUNNING
kadmin Service: RUNNING
named Service: RUNNING
httpd Service: RUNNING
ipa-custodia Service: RUNNING
pki-tomcatd Service: RUNNING
ipa-otpd Service: RUNNING
ipa-dnskeysyncd Service: RUNNING
ipa: INFO: The ipactl command was successful
[root@ipa01 ~]# 

Как видно из листинга выше – все сервисы запущены.

3. Теперь попробуем подключиться к веб интерфейсу администрирования.

Адрес для подключения к нашему серверу:

https://ipa01.itproblog.ru

Важный момент – подключение необходимо выполнять по FQDN имени. Например, для подключения с моей рабочей станции Windows мне пришлось сделать соответствующую запись в файле hosts.

Веб интерфейс администрирования доступен – это уже хорошо.

Теперь попробуем аутентифицироваться под пользователем admin.

Мы попали на главную страницу веб интерфейса администрирования:

4. Попробуем создать пользователя user1:

ipa user-add user1
[root@ipa01 ~]# ipa user-add user1
First name: User
Last name: User
------------------
Added user "user1"
------------------
  User login: user1
  First name: User
  Last name: User
  Full name: User User
  Display name: User User
  Initials: UU
  Home directory: /home/user1
  GECOS: User User
  Login shell: /bin/bash
  Principal name: user1@ITPROBLOG.RU
  Principal alias: user1@ITPROBLOG.RU
  Email address: user1@itproblog.ru
  UID: 1760200001
  GID: 1760200001
  Password: False
  Member of groups: ipausers
  Kerberos keys available: False
[root@ipa01 ~]#

Установим пароль для пользователя:

ipa passwd user1
[root@ipa01 ~]# ipa passwd user1
New Password: 
Enter New Password again to verify: 
-----------------------------------------
Changed password for "user1@ITPROBLOG.RU"
-----------------------------------------
[root@ipa01 ~]# 

Базовая проверка первоначальной настройки завершена.

Подключение клиентского рабочего места

В качестве клиента у нас будет выступать система с Альт Рабочая станция 10.

1. Устанавливаем Альт Рабочая станция 10.

2. Запускаем терминал и переходим в режим привелигерованного пользователя:

su -

3. Устанавливаем актуальные обновления (если еще не делали этого):

apt-get update
apt-get dist-upgrade

4. Указываем FQDN имя нашего клиента (client01.itproblog.ru):

hostnamectl set-hostname client01.itproblog.ru

5. Настраиваем параметры адресации на сетевом интерфейсе. В качестве DNS сервера указываем адрес сервера ipa01.itproblog.ru. Я выполню статическую настройку IP-адреса и DNS.

6. Перезагружаем клиента.

7. Проверим разрешение имен и связь до сервера FreeIPA:

ping ipa01.itproblog.ru
ser@client01 ~ $ ping ipa01.itproblog.ru
PING ipa01.itproblog.ru (10.10.10.200) 56(84) bytes of data.
64 bytes from ipa01.itproblog.ru (10.10.10.200): icmp_seq=1 ttl=64 time=0.285 ms
64 bytes from ipa01.itproblog.ru (10.10.10.200): icmp_seq=2 ttl=64 time=0.453 ms
64 bytes from ipa01.itproblog.ru (10.10.10.200): icmp_seq=3 ttl=64 time=0.408 ms
^C
--- ipa01.itproblog.ru ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 2003ms
rtt min/avg/max/mdev = 0.285/0.382/0.453/0.071 ms
user@client01 ~ $ ^C

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

su -
apt-get install freeipa-client

9. Теперь все готово для того, чтобы присоединить нашего клиента к домену FreeIPA:

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

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

client01 ~ # ipa-client-install --mkhomedir --domain itproblog.ru --realm ITPROBLOG.RU --enable-dns-updates
This program will set up IPA client.
Version 4.9.7

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

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

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

Attempting to sync time with CHRONY
It may take a few seconds
Time successfully synchronized with IPA server
User authorized to enroll computers: admin
Password for admin@ITPROBLOG.RU: 

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

Client configuration complete.
The ipa-client-install command was successful

12. Перезагружаем клиента.

13. При входе в систему выбираем вариант “Другие…” и указываем имя нашего пользователя (user1):

Затем указываем пароль.

При первом входе пользователя в систему необходимо будет изменить праоль:

14. Проверим текущего пользователя системы:

user1@client01 ~ $ whoami
user1
user1@client01 ~ $ klist
Ticket cache: KEYRING:persistent:1760200001:krb_ccache_fG0jlqw
Default principal: user1@ITPROBLOG.RU

Valid starting       Expires              Service principal
16.07.2022 22:39:12  17.07.2022 22:39:12  krbtgt/ITPROBLOG.RU@ITPROBLOG.RU
user1@client01 ~ $

Базовая настройка клиента FreeIPA завершена.

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

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