Установка и настройка FreeIPA Client на CentOS 7

FreeIPA — свободный набор для управления идентификацией, политиками и аудитом (Identity, Policy, Audit), поддерживаемый Red Hat. Решение объединяет Fedora/Linux, 389 Directory Server (LDAP), MIT Kerberos, NTP, BIND DNS, Dogtag (сертификаты), Apache и Python.
Кратко: клиент FreeIPA позволяет Linux-хосту использовать централизованные учётные записи, Kerberos-аутентификацию и политики через сервер FreeIPA.
Важно: далее приведён пример для CentOS 7. Процедура на Fedora и Ubuntu похожа, но пакеты и менеджер пакетов отличаются.
Требования
- Рабочий сервер с установленным FreeIPA Server.
- Клиент: CentOS 7.
- Права root на клиенте и правая учётная запись администратора на сервере FreeIPA.
- Доступ по сети между клиентом и сервером (порт 53 для DNS, порты FreeIPA: 80/443/389/636/88/464 и др. в зависимости от конфигурации).
Что мы делаем
- Добавим DNS-запись клиента на сервере FreeIPA.
- Настроим resolver на клиенте и откроем порт DNS в firewalld.
- Установим корректный FQDN на клиенте.
- Установим FreeIPA client-пакеты и запустим ipa-client-install.
- Проверим регистрацию хоста на сервере и в веб-интерфейсе.
- Протестируем вход по SSH новым FreeIPA-пользователем.
Шаг 1 — Добавление DNS-записи
Сначала добавьте DNS-запись клиента в FreeIPA.
Зайдите на FreeIPA-сервер и получите Kerberos-токен администратора:
kinit admin
TYPE YOUR PASSWORDПосле успешной аутентификации добавьте запись DNS (замените имена и IP на ваши):
ipa dnsrecord-add hakase-labs.io client --a-rec 10.9.9.16Если у вас настроен обратный DNS или зона PTR — добавьте и PTR-запись.
Шаг 2 — Настройка DNS resolver и firewalld
Для автоматического обнаружения FreeIPA клиентом resolver должен указывать на FreeIPA DNS.
Отредактируйте /etc/resolv.conf:
vim /etc/resolv.confПример содержимого (подставьте свои значения):
search hakase-labs.io
nameserver 10.9.9.15Важно: если ваша система использует NetworkManager или systemd-resolved, правьте настройки через соответствующие профили, а не правьте resolv.conf напрямую — изменения могут быть перезаписаны.
Откройте DNS-службу в firewalld на клиенте (используется для автодискавери):
firewall-cmd --add-service=dns --permanent
firewall-cmd --reloadЕсли сеть защищена сетевыми ACL или внешним фаерволом, откройте доступ к DNS и к портам FreeIPA на уровне сети.
Важно: автодискавери использует запись SRV/DNS; если DNS настроен некорректно, ipa-client-install не сможет автоматически найти сервер.
Шаг 3 — Настройка FQDN
Корректный FQDN обязателен для Kerberos и сертификатов.
Установите имя хоста:
hostnamectl set-hostname client.hakase-labs.ioДобавьте соответствия IP и имён в /etc/hosts (если требуется):
vim /etc/hostsПример:
10.9.9.15 ipa.hakase-labs.io ipa
10.9.9.16 client.hakase-labs.io clientПерейдите в новую сессию и проверьте FQDN:
hostname -fЕсли команда возвращает корректное полное имя — можно продолжать.
Шаг 4 — Установка FreeIPA Client на CentOS 7
Установите пакеты клиента (CentOS 7 содержит пакеты в стандартном репозитории):
sudo yum -y install freeipa-client ipa-admintoolsЗапустите интерактивный установщик клиента, который настроит Kerberos, SSSD, NSS/PAM и ключи:
ipa-client-install --mkhomedir --force-ntpdОтветьте “yes” при просьбе применить изменения, сгенерированные автодискавери. По завершении вы увидите сообщение, что ipa-client-install выполнена успешно.

Если автодискавери не получилось:
- Проверьте, что в /etc/resolv.conf первым указан ваш FreeIPA DNS.
- Убедитесь, что порт 53 открыт и что DNS-запись клиента присутствует на сервере.
- Используйте явную передачу параметров (–server, –domain, –realm) вместо автодискавери.
Пример явной установки:
ipa-client-install --mkhomedir --server=ipa.hakase-labs.io --domain=hakase-labs.io --realm=HAKASE-LABS.IOШаг 5 — Проверка установки
На сервере FreeIPA проверьте, что хост зарегистрирован:
ipa host-show client.hakase-labs.ioВы должны увидеть поля с информацией о хосте.
Проверьте в веб-интерфейсе FreeIPA: зайдите в Dashboard → Hosts и найдите ваш хост (вкладка Hosts).

Шаг 6 — Тестирование
Создайте тестового пользователя на сервере FreeIPA:
ipa user-add yume --first=yume --last=sensei [email protected] --shell=/bin/bash --password
Попробуйте зайти на клиент через SSH под созданным пользователем (с сервера или любой машины с сетью):
ssh [email protected]Если всё настроено верно, вы войдёте на клиент, и домашний каталог будет создан автоматически (опция –mkhomedir).

Типичные ошибки и когда это не сработает
- DNS не указывает на FreeIPA-сервер или отсутствуют SRV-записи — автодискавери провалится.
- Неверный FQDN на клиенте — Kerberos не сможет выдать билет.
- Несинхронизированное время (NTP) — Kerberos отклонит запросы.
- SELinux или локальные правила PAM/SSSD нарушают процесс — проверяйте логи.
Быстрые проверки и отладка
- Проверка DNS: dig +short ipa.hakase-labs.io SRV
- Проверка Kerberos: kinit admin && klist
- Проверка SSSD: journalctl -u sssd -e
- Проверка аутентификации: getent passwd yume
Альтернативные подходы
- Ручная настройка SSSD/NSS/PAM без ipa-client-install (полезно для контейнеров или кастомных систем).
- Использование LDAP/Kerberos только для аутентификации без полного набора FreeIPA (упрощённый вариант).
- Для рабочих нагрузок в облаке — использовать управляемые сервисы идентификации и привязать FreeIPA через LDAP/AD bridge.
Рекомендуемая проверочная методология (мини-SOP)
- На сервере: проверить записи DNS и SRV.
- На клиенте: проверить /etc/resolv.conf и hostname.
- Запустить ipa-client-install и сохранить вывод в лог.
- На сервере: ipa host-show и проверка в UI.
- Создать тест-пользователя и выполнить ssh.
- Проверить логи (sssd, krb5kdc, httpd для проблем с UI).
Роли и чек-листы
Admin (тот, кто работает на FreeIPA-сервере):
- Добавить DNS-запись клиента.
- Проверить SRV-записи и зоны.
- Создать тест-пользователя.
Operator (тот, кто работает на клиенте):
- Настроить resolver.
- Установить пакеты.
- Выполнить ipa-client-install и сохранить вывод.
- Протестировать вход и права доступа.
Критерии приёмки
- Клиент отображается в списке Hosts на сервере FreeIPA.
- Пользователь FreeIPA может войти через SSH на клиент.
- SSSD успешно получает и кеширует записи учётных записей и групп.
Безопасность и соответствие
- Kerberos требует точного времени: настройте NTP/chrony на всех хостах.
- Минимизируйте привилегии у пользователей.
- Храните журналы аудита и периодически проверяйте.
- Если данные персональные, учитывайте требования локального законодательства при хранении и репликации пользовательских данных.
Глоссарий (в одну строку)
- FreeIPA — серверное решение для централизованной идентификации и политик на базе LDAP и Kerberos.
- SSSD — служба на клиенте для получения учётных записей и кеширования.
- FQDN — полное доменное имя хоста.
- Autodiscovery — автоматическое обнаружение сервера через DNS SRV-записи.
Итог
Установка клиента FreeIPA на CentOS 7 включает добавление DNS-записи, настройку resolver и FQDN, установку пакетов и запуск ipa-client-install. Основные проблемы связаны с DNS, временем и правами доступа. После регистрации и теста входа по SSH система должна работать как централизованная точка аутентификации.
Короткий чек: DNS → FQDN → установить пакеты → ipa-client-install → проверить в UI → протестировать вход.
Полезные ссылки
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента