FreeIPA — это решение для управления идентификацией с открытым исходным кодом для операционных систем Linux/Unix. Это проект upstream от RedHat Identity Management System, который предоставляет решения по аутентификации и авторизации для Linux/Unix систем.
FreeIPA построен на основе множества компонентов, включая сервер каталогов, DNS, Kerberos, PKI, Certmonger, NTP Server, пользовательский интерфейс веб-администрирования и т.д. Он обеспечивает централизованный источник учетных данных пользователей и контроль доступа. FreeIPA позволяет администраторам легко управлять идентификацией в централизованной среде и обеспечивает мониторинг пользователей, аутентификацию и контроль доступа.
В этом руководстве вы установите и настроите FreeIPA на сервере Rocky Linux 9. Вы установите серверные пакеты FreeIPA и настроите развертывание FreeIPA. Затем вы также настроите пользователя FreeIPA. В конце вы также узнаете, как установить и настроить клиент FreeIPA на хосте Rocky Linux и добавить его к серверу FreeIPA.
Предварительные условия
Чтобы завершить этот учебник, вы должны обладать следующими требованиями:
Прежде чем приступить к работе, необходимо убедиться, что у вас есть следующие требования:
- Два или более сервера Rocky Linux 9 — В этом руководстве вы используете два хоста Rocky Linux для сервера FreeIPA и клиента FreeIPA.
- Пользователь, не являющийся пользователем root, с правами администратора sudo/root.
- SELinux работает в разрешительный режим.
Для этой демонстрации мы будем использовать два сервера Rocky Linux 9 со следующими характеристиками:
Hostname IP Address Used as -------------------------------------------- ipa 192.168.5.25 FreeIPA Server client 192.168.5.80 FreeIPA Client
Когда эти требования готовы, можно приступать к установке FreeIPA.
Настройка FQDN и часового пояса
В этом руководстве вы сначала настроите FQDN (полное доменное имя) и часовой пояс по умолчанию на вашем сервере FreeIPA.
Введите следующее ‘hostnamectl‘, чтобы настроить fqdn в вашей системе. В этом примере сервер FreeIPA должен иметь fqdn ‘ipa.hwdomain.lan‘.
sudo hostnamectl set-hostname ipa.hwdomain.lan
Теперь откройте файл ‘/etc/hosts’ с помощью следующей команды редактора nano.
sudo nano /etc/hosts
Добавьте в файл следующую строку и не забудьте изменить имя хоста, fqdn и IP-адрес на имя вашего сервера FreeIPA.
# ip - fqdn - hostname 192.168.5.25 ipa.hwdomain.lan ipa
Сохраните и закройте файл после завершения работы.
Далее введите следующую команду, чтобы проверить fqdn вашей системы. Затем убедитесь, что fqdn разрешен в ваш внутренний IP-адрес.
sudo hostname -f sudo ping -c3 ipa.hwdomain.lan
В случае успеха вы должны увидеть, что ваш fqdn указывает на внутренний IP-адрес вашего сервера. В этом примере fqdn ‘ipa.hwdomain.lan‘ указывает на IP-адрес ‘192.168.5.25‘.

Теперь введите следующее ‘timedatectl‘, чтобы установить часовой пояс по умолчанию для вашего сервера. В этом примере время для сервера FreeIPA будет ‘Европа/Стокгольм‘.
sudo timedatectl set-timezone Europe/Stockholm
Теперь введите следующую команду, чтобы установить ‘/etc/localtime‘ файл для вашего сервера в нужный часовой пояс. Список файлов часовых поясов хранится по адресу ‘/usr/share/timezone/‘ каталог, вы должны создать симлинк соответствующего файла часового пояса на ‘/etc/localtime’.
sudo unlink /etc/localtime sudo ln -s /usr/share/timezone/Europe/Stockholm /etc/localtime

Настроив fqdn и часовой пояс, настройте firewalld и откройте несколько портов, которые будет использовать сервер FreeIPA.
Настройка Firewalld
В дистрибутивах на базе RHEL по умолчанию установлено программное обеспечение брандмауэра — firewalld, которое автоматически запускается и работает. В этом разделе вы добавите в firewalld службу FreeIPA и некоторые дополнительные службы, такие как NTP и DNS.
Введите следующее ‘firewall-cmd‘ добавит FreeIPA, DNS и NTP в firewalld. Затем перезагрузите firewalld, чтобы применить изменения. Вывод ‘успех‘ подтверждает, что операция выполнена успешно.
sudo firewall-cmd --add-service={freeipa-ldap,freeipa-ldaps,dns,ntp,http,https,kerberos} --permanent
sudo firewall-cmd --reload
Далее выполните следующую команду, чтобы проверить состояние firewalld и список включенных служб и портов.
sudo firewall-cmd --list-all
Вы должны получить следующее сообщение — Служба FreeIPA, NTP и DNS добавлены в firewalld.

Теперь, когда вы настроили fqdn, часовой пояс и firewalld, вы можете начать установку сервера FreeIPA через менеджер пакетов DNF.
Установка и настройка сервера FreeIPA
В последней версии Rocky Linux 9 сервер FreeIPA доступен по умолчанию в репозитории ‘appstream’. Поэтому вам не нужно добавлять сторонний репозиторий для установки пакета сервера FreeIPA.
В этом разделе вы установите сервер FreeIPA, а затем настроите интерактивное развертывание FreeIPA с помощью командной строки ‘ipa-server-install’, которая предоставляется пакетом FreeIPA.
Введите следующую команду ‘dnf install’ для установки пакетов FreeIPA server, FreeIPA DNS и FreeIPA client. Когда появится запрос, введите y подтвердите и нажмите ENTER, чтобы продолжить.
sudo dnf install freeipa-server freeipa-server-dns freeipa-client

После установки FreeIPA введите следующую команду ‘ipa-server-install’, чтобы начать интерактивное развертывание вашего сервера FreeIPA. В этом примере вы используете параметр ‘—setup-dns’, который также установит DNS-сервер на ваш сервер FreeIPA.
sudo ipa-server-install --setup-dns
В следующем выводе вы должны увидеть список задач, которые вам предстоит выполнить для установки и настройки сервера FreeIPA.

Сначала ‘ipa-server-install’ проверит fqdn вашей системы и убедится, что fqdn вашего сервера указывает на правильный IP-адрес (через DNS или /etc/hosts). В этом примере fqdn ‘ipa.hwdomain.lan‘ настраиваются через /etc/hosts файл, так что вы готовы к работе.
Для доменного имени по умолчанию и имени области оба имени будут следовать за fqdn хоста. Таким образом, fqdn ‘ipa.hwdomain.lan‘ даст вам стандартное доменное имя ‘hwdomain.lan’ с именем сферы ‘HWDOMAIN.LAN‘.
Нажмите ENTER, чтобы использовать значения по умолчанию для имени хоста (fqdn), имени домена и имени области.

Теперь введите новый пароль для менеджера каталогов и пользователя IPA admin. Обязательно используйте более 8 символов и надежный пароль.

Далее вам будет предложено настроить DNS-форвардеры по умолчанию для вашего сервера FreeIPA и настроить обратный DNS (rDNS) для IP-адреса вашего сервера FreeIPA. Нажмите ENTER, чтобы подтвердить конфигурацию по умолчанию для обеих настроек.
Оставьте значение по умолчанию для конфигурации доменного имени NetBIOS и нажмите ENTER. Для настроек NTP введите нет.

Теперь просмотрите основные настройки вашего сервера FreeIPA, затем введите ‘да‘ для подтверждения и нажмите ENTER, чтобы перейти к установке.

После успешной установки сервера FreeIPA вы должны получить сообщение типа ‘Установка завершена — команда ipa-server-install выполнена успешно‘. Вы также увидите инструкцию для следующих шагов, а именно настройку брандмауэра для открытия некоторых портов и получение билета Kerberos для администратора.

На этом базовая настройка сервера FreeIPA с помощью ‘ipa-server-install‘. На следующем шаге вы пройдете аутентификацию в Kerberos и получите билет администратора, который позволит вам настроить FreeIPA с вашего терминала.
Аутентификация администратора Kerberos и панель FreeIPA Web UI Dashboard
После настройки сервера FreeIPA с помощью ‘ipa-server-install’, Теперь вы проверите установку FreeIPA, получив билет администратора от Kerberos и войдя в панель веб-администрирования FreeIPA.
Введите следующую команду ‘kinit‘ команда для аутентификации на сервере Kerberos через ‘admin‘ пользователь. Когда вас попросят ввести пароль, введите пароль администратора IPA.
kinit admin
Теперь проверьте аутентификацию и список полученных билетов Kerberos, введя следующее ‘klist‘ команда.
klist
Если аутентификация Kerberos прошла успешно, вы должны получить вывод кэшированного билета для основного принципала ‘[email protected]‘, как показано на следующем снимке экрана.

Далее вы проверите сервер FreeIPA, зайдя в панель администрирования с вашего локального компьютера. Прежде чем начать, откройте ‘/etc/hosts‘ на локальном компьютере с помощью следующей команды редактора nano.
sudo nano /etc/hosts
Добавьте в файл следующую строку и не забудьте изменить IP-адрес доменного имени на данные вашего сервера FreeIPA.
# ip - domain 192.168.5.25 ipa.hwdomain.lan ipa
Сохраните и закройте файл после завершения работы.
Далее откройте веб-браузер и посетите доменное имя сервера FreeIPA (т.е: https://ipa.hwdomain.lan/). Вы должны увидеть страницу входа в систему FreeIPA.
Введите стандартного пользователя admin и свой пароль FreeIPA, затем нажмите кнопку ‘Войти‘.

В случае успеха вы получите панель веб-администрирования FreeIPA, как показано на следующем снимке экрана.

Итак, вы успешно установили и настроили сервер FreeIPA на Rocky Linux 9. В следующем шаге вы узнаете, как управлять сервером FreeIPA, добавив нового пользователя и группу через терминал, а затем добавить новую хост-машину Linux с помощью клиентского пакета FreeIPA.
Настройка первого пользователя и группы FreeIPA
В этом разделе вы узнаете, как использовать команду ‘ipa’ для управления пользователями и группами. Вы будете использовать команду ‘ipa’ с различными параметрами для создания пользователя, проверки списка пользователей, создания группы, проверки списка групп и добавления пользователя FreeIP в определенную группу. И, наконец, вы проверите список пользователей и групп через панель администрирования FreeIPA.
Введите следующую команду ‘ipa config-mod’, чтобы изменить стандартную оболочку для пользователей FreeIPA на ‘/bin/bash‘. При выполнении этой команды будут выведены и другие пользовательские настройки по умолчанию для FreeIPA.
ipa config-mod --defaultshell=/bin/bash
Ниже приведен аналогичный вывод, который будет распечатан на вашем терминале.

Далее введите следующее ‘ipa user-add‘, чтобы добавить нового пользователя FreeIPA. В этом примере вы создадите нового пользователя ‘rocky‘. Когда появится запрос на ввод пароля, введите и проверьте новый пароль для своего пользователя.
ipa user-add rocky --first=Rocky --last=Linux --password

Теперь проверьте данные пользователя ‘скалистый‘, введя команду ‘ipa user-find’, приведенную ниже. Когда вы увидите подробную информацию о пользователе ‘rocky‘, это означает, что вы успешно создали пользователя FreeIPA.
ipa user-find rocky

Вы также можете использовать команду ‘ipa user-show’, чтобы показать подробную информацию о пользователях FreeIPA.
ipa user-show --raw rocky
Вывод:

Далее введите следующее ‘ipa group-add‘ создайте новую группу под названием ‘development’. Затем проверьте группу ‘разработка , введя ‘ipa group-find’ , чтобы убедиться, что группа создана.
ipa group-add --desc='Development Team' development ipa group-find development
Выход ‘1 группа совпала подтверждает, что группаразработка‘ добавлена и доступна на сервере FreeIPA.

Теперь введите следующее ‘ipa group-add-member’ команда для добавления пользователя FreeIPA ‘rocky‘ в группу ‘разработка‘.
ipa group-add-member --user=rocky development
Выход ‘Количество добавленных членов 1‘ подтверждает, что пользователь ‘скалистый‘ добавлен в группу ‘разработка‘.

Теперь вернитесь на панель администрирования FreeIPA, нажмите на меню ‘Identity’ и щелкните на ‘Пользователи‘ вкладка. Теперь вы должны увидеть нового пользователя FreeIPA ‘rocky‘ создан и доступен на сервере FreeIPA.

Наконец, нажмите на кнопку ‘Группы‘, чтобы проверить список групп на FreeIPA. Новая группа ‘development’ доступна на сервере FreeIPA. Щелкните на группе ‘разработка‘, чтобы получить подробную информацию, и вы должны увидеть пользователя ‘скалистый‘ добавлен и доступен в разделе ‘разработка‘ группа.

На этом этапе вы создали пользователя и группу FreeIPA в терминале с помощью инструмента управления командой ‘ipa’. Кроме того, вы убедились, что пользователь и группа добавлены через панель веб-администрирования FreeIPA. На следующем этапе вы узнаете, как добавить хост/машину Linux на сервер FreeIPA.
Добавление хостов на сервер FreeIPA: Rocky Linux
FreeIPA предоставляет самый простой способ добавления нового хоста на сервер FreeIPA, что можно сделать с помощью клиентского пакета FreeIPA, который предоставляет программу ‘ipa-client-install’ утилита. В этом разделе вы добавите машину Rocky Linux 9 на сервер FreeIPA ‘ipa.hwdomain.lan‘.
Ниже перечислены действия, которые необходимо выполнить для добавления нового хоста на сервер FreeIPA:
- Добавление DNS-записей хоста с сервера FreeIPA
- Настройте файл /etc/hosts и файл /etc/resolv.conf
- Установка клиента FreeIPA и добавление хоста с помощью ‘ipa-client-install’
Теперь давайте приступим к добавлению хоста Rocky Linux на сервер FreeIPA.
Добавление записей DNS
Сначала необходимо добавить DNS-запись клиентской машины на сервер FreeIPA. Это можно сделать с помощью команды ‘ipa dnsrecord-add‘ команда, которую можно выполнить с сервера FreeIPA.
Введите следующую команду ‘ipa dnsrecord-add‘ чтобы добавить новую запись DNS для хост-машины ‘клиент‘ с IP-адресом ‘192.168.5.80‘. При этом клиентская машина будет иметь доменное имя ‘client.hwdomain.lan‘.
В этом примере вы определите запись A для хоста под названием ‘client’ с IP-адресом ‘192.168.5.80‘. Домен ‘hwdomain.lan‘ — это доменное имя по умолчанию вашего сервера FreeIPA.
ipa dnsrecord-add hwdomain.lan client --a-rec 192.168.5.80
Теперь проверьте DNS-запись ‘клиент‘, введя команду ‘ipa dnsrecord-find‘ команду ниже. Вы должны увидеть ‘клиент‘ машина с записью A, разрешенной в IP-адрес ‘192.168.5.80‘.
ipa dnsrecord-find hwdomain.lan client

Наконец, введите следующую команду ‘dig’, чтобы проверить DNS доменное имя клиентской машины ‘client.hwdomain.lan‘.
dig client.hwdomain.lan
В случае успеха вы должны получить следующее сообщение — Доменное имя клиентской машины ‘client.hwdomain.lan‘ указывает на IP-адрес сервера ‘192.168.5.80‘.

Теперь вы готовы настроить «клиентскую» машину и добавить ее к серверу FreeIPA.
Настройка FQDN, /etc/hosts и resolver
Теперь подключитесь к ‘клиент‘ машина для настройки основных параметров системы перед установкой клиентских пакетов FreeIPA.
В этом разделе вы настроите ‘/etc/hosts’ файл и определите доменное имя и IP-адрес сервера FreeIPA. Затем вы измените файл ‘/etc/resolv.conf’ файл, чтобы настроить DNS-резольвер по умолчанию на клиентской машине с помощью DNS-резольвера сервера FreeIPA. Это обеспечит доступ клиентской машины к серверу FreeIPA через доменное имя.
Введите следующую команду редактора nano, чтобы открыть файл ‘/etc/hosts‘ файл.
sudo nano /etc/hosts
Добавьте в файл следующие строки и не забудьте изменить IP-адрес и доменное имя с вашим сервером FreeIPA.
# ip - fqdn/domain - hostname 192.168.5.25 ipa.hwdomain.lan ipa
Сохраните и выйдите из файла после завершения работы.
Далее откройте файл ‘/etc/resolv.conf‘ с помощью следующей команды редактора nano.
sudo nano /etc/resolv.conf
Добавьте следующую строку в начало строки и не забудьте изменить IP-адрес на IP-адрес вашего сервера FreeIPA.
# list resolver nameserver 192.168.5.25
Сохраните и закройте файл после завершения работы.
Наконец, введите следующую команду ‘ping‘, чтобы проверить доменное имя сервера FreeIPA и доменное имя клиентской машины.
ping -c3 ipa.hwdomain.lan ping -c3 client.hwdomain.lan
Вы должны получить следующее сообщение — Доменное имя сервера FreeIPA ‘ipa.hwdomain.lan’ будет указывать на IP-адрес ‘192.168.5.25‘ как определено на ‘/etc/hosts‘ файл.
И доменное имя клиентской машины ‘client.hwdomain.lan‘ будет направлен на правильный IP-адрес ‘192.168.5.80‘, который настраивается через DNS-сервер FreeIPA и подтверждает правильность настроек DNS-резольвера.

После этого вы можете установить клиентский пакет FreeIPA и добавить клиентскую машину к серверу FreeIPA.
Установка и настройка клиента
Сначала введите следующую команду ‘dnf install’ для установки клиентского пакета FreeIPA и дополнительного пакета ‘oddjob-mkhomedir’. Когда появится запрос, введите y для подтверждения и нажмите ENTER, чтобы продолжить.
sudo dnf install freeipa-client oddjob-mkhomedir

Когда установка будет завершена, введите следующее ‘ipa-client-install‘, чтобы добавить клиентскую машину к серверу FreeIPA. Обязательно измените параметр ‘—server=ipa.hwdomain.lan‘ с вашим сервером FreeIPA, а также параметр ‘-домен hwdomain.lan’ и ‘—realm HWDOMAIN.LAN‘ параметры.
ipa-client-install --hostname=`hostname -f` \ --mkhomedir \ --server=ipa.hwdomain.lan \ --domain hwdomain.lan \ --realm HWDOMAIN.LAN
Ввод ‘да‘, чтобы перейти к фиксированному значению данных сервера FreeIPA. а для настроек NTP-сервера введите ‘нет‘.

Теперь просмотрите конфигурацию клиента, затем введите ‘да‘ для подтверждения.

Теперь вам будет предложено пройти аутентификацию пользователя на сервере Kerberos. Это необходимо, поскольку билет Kerberos должен кэшироваться при добавлении нового хоста на сервер FreeIPA.
Введите пользователя по умолчанию ‘admin‘ и введите свой пароль. После успешного завершения вы должны получить следующее сообщение — Процесс должен начаться.

По завершении процесса вы должны получить результат, подобный ‘Настройка клиента завершена — команда ipa-client-install выполнена успешно‘.

Итак, вы добавили клиентскую машину Rocky Linux на сервер FreeIPA с помощью команды ‘ipa-client-install’ утилита, предоставляемая клиентским пакетом FreeIPA. Теперь вы также можете войти на клиентскую машину, используя добавленного пользователя FreeIPA.
Вход в клиент через пользователя FreeIPA
В этом разделе вы проверите установку сервера и клиента FreeIPA, подключившись к клиентской машине через пользователя FreeIPA. Вы подключитесь к хост-машине ‘client.hwdomain.lan‘ с пользователем FreeIPA ‘скалистый‘ через SSH.
Вернитесь на свой сервер FreeIPA и выполните приведенную ниже команду ‘ssh’ для подключения к ‘client.hwdomain’lan‘ с пользователем FreeIPA ‘скалистый‘. Вход ‘да‘, чтобы принять отпечаток пальца SSH хост-машины.
ssh [email protected]
Когда вас попросят ввести пароль, введите пароль пользователя FreeIPA ‘rocky‘. Когда вы введете правильный пароль, вам будет предложено сменить текущий пароль на новый.
Введите текущий пароль, затем введите новый пароль для пользователя ‘rocky‘ и повторите пароль. После успеха вы должны войти в систему ‘client.hwdomain.lan‘ машина через ‘скалистый‘ Пользователь FreeIPA. Кроме того, домашний каталог для пользователя FreeIPA создается автоматически в процессе входа в систему.
Введите следующую команду, чтобы проверить текущее состояние вашего соединения. Вы должны увидеть, что используемый вами пользователь ‘rocky‘, который является частью ‘разработка‘ группа. Также видно, что fqdn клиентской машины — ‘client.hwdomain.lan‘.
id whoami hostname -f

Наконец, с помощью панели веб-администрирования проверьте список хостов/машин, доступных на сервере FreeIPA.
Вернитесь в панель администрирования FreeIPA и нажмите кнопку ‘Идентификация‘ меню, затем выберите пункт ‘Хозяева‘ вкладка. Вы должны увидеть ‘client.hwdomain.lan’ добавлена и доступна на сервере FreeIPA.

Теперь нажмите на ссылку ‘client.hwdomain.lan‘, чтобы получить подробную информацию о хосте. Вы должны получить подробную информацию о хост-машине, как показано на следующем снимке.

Таким образом, вы успешно установили сервер FreeIPA на Rocky Linux 9, а также добавили клиентский хост Rocky Linux с помощью клиента FreeIPA.
Заключение
В этом руководстве вы узнали, как установить и развернуть сервер FreeIPA на сервере ROcky Linux 9. Вы настроили сервер FreeIPA на Rocky Linux с включенным DNS через Bind и настроенным firewalld.
Кроме того, вы изучили базовое использование команды ‘ipa’ для создания и управления пользователями и группами FreeIPA, а также узнали, как получить билет Kerberos с помощью команды kinit и войти в веб-администрацию FreeIPA с помощью пользователя admin и пароля.
Наконец, вы добавили клиентскую машину к серверу FreeIPA с помощью клиентского пакета FreeIPA. Вы изучили пошаговую инструкцию, как это сделать, а также проверили свои настройки, войдя на клиентскую машину под пользователем FreeIPA.
Теперь вы можете добавить больше хостов, пользователей и групп на свой сервер FreeIPA. Вы также можете интегрировать FreeIPA в свое производство. Для получения более подробной информации посетите официальную документацию FreeIPA.