Установка и настройка клиента FreeIPA на Ubuntu 18.04

FreeIPA — свободный набор решений для управления идентификацией, политиками и аудитом (Identity, Policy, Audit), поддерживаемый Red Hat. В основе — набор сервисов: коробочный Linux (Fedora), 389 Directory Server (LDAP), MIT Kerberos, NTP, BIND (DNS), Dogtag (PKI), Apache и Python.
В предыдущем руководстве рассматривалась установка сервера FreeIPA на CentOS 7. Здесь описывается установка и подключение FreeIPA-клиента на Ubuntu 18.04.
Суть и когда это применимо
FreeIPA обеспечивает централизованную аутентификацию и управление учётными записями в гетерогенных Linux-средах. Этот гайд применим, когда у вас уже есть развёрнутый FreeIPA-сервер и вы хотите объединить под одну систему несколько Ubuntu-хостов (18.04). Термин: FQDN — полностью квалифицированное доменное имя хоста.
Требования
- Развёрнутый FreeIPA Server с правами администратора.
- Клиентская машина: Ubuntu 18.04 (Bionic Beaver).
- Права root или sudo на клиенте.
- Доступ по сети между сервером и клиентом, открытые порты (см. блок «Факты»).
Что мы сделаем
- Добавим DNS-запись клиента на FreeIPA-сервере
- Настроим DNS-резолвер клиента для автопоиска FreeIPA
- Настроим FQDN клиента и /etc/hosts
- Установим пакеты FreeIPA-клиента на Ubuntu 18.04
- Включим автоматическое создание домашней директории
- Проверим регистрацию хоста на сервере и в Web UI
- Проведём тестовую авторизацию через SSH
Шаг 1 — Добавление DNS-записи клиента на сервере
На FreeIPA-сервере войдите в Kerberos под admin:
kinit admin
ВВЕДИТЕ ПАРОЛЬДобавьте DNS-запись клиента (пример):
ipa dnsrecord-add hakase-labs.io client1 --a-rec 10.9.9.16Замените hakase-labs.io, client1 и IP-адрес на свои значения.
Шаг 2 — Настройка DNS-резолвера клиента
Для работы DNS-autodiscovery клиент должен использовать в /etc/resolv.conf DNS-сервер FreeIPA.
Откройте /etc/resolv.conf в редакторе:
vim /etc/resolv.confПример содержимого (подставьте IP и домен вашего сервера):
search hakase-labs.io
nameserver 10.9.9.15Важно: если у вас NetworkManager или systemd-resolved, /etc/resolv.conf может быть перезаписан. В таких случаях настройте резолвер через соответствующий инструмент (nmcli или systemd-resolved configuration) или укажите DNS на уровне DHCP/VM template.
Шаг 3 — Настройка FQDN и /etc/hosts
Установите FQDN на клиенте:
hostnamectl set-hostname client1.hakase-labs.ioОтредактируйте /etc/hosts и добавьте записи сервера и клиента:
vim /etc/hostsВставьте (пример):
10.9.9.15 ipa.hakase-labs.io ipa
10.9.9.16 client1.hakase-labs.io client1Сохраните и выйдите. Проверьте FQDN:
hostname -fЕсли результат совпадает с ожидаемым FQDN, переходите дальше.
Шаг 4 — Установка пакетов FreeIPA-клиента
На Ubuntu 18.04 пакеты FreeIPA-клиента доступны в стандартных репозиториях. Установите client и утилиту создания домашних директорий:
sudo apt-get update
sudo apt-get install freeipa-client oddjob-mkhomedir -yЗапустите интерактивный мастер установки клиента:
ipa-client-install --mkhomedir --no-ntpПри появлении подсказок подтвердите предложенные значения (type yes), если DNS-autodiscovery корректно нашёл профиль. В конце вы увидите сообщение об успешной установке: “The ipa-client-install command was successful”.

Важно:
- Если autodiscovery не сработал, проверьте, что в /etc/resolv.conf первым указан FreeIPA DNS и что порт 53 открыт между машинами.
- При ошибке при join можно попробовать опцию –force-join:
ipa-client-install --mkhomedir --no-ntp --force-joinШаг 5 — Включение автоматического создания домашней директории
Даже при использовании –mkhomedir на Ubuntu нужно обеспечить PAM-конфигурацию, чтобы при первой авторизации пользователя автоматически создавалась домашняя директория.
Создайте конфигурацию PAM для mkhomedir:
cat > /usr/share/pam-configs/mkhomedir <Примените конфигурацию PAM:
sudo pam-auth-updateПосле этого при первой авторизации пользователя через FreeIPA (через SSH или консоль) будет создана домашняя директория.
Шаг 6 — Проверка регистрации клиента на сервере
На FreeIPA-сервере выполните:
ipa host-show client1.hakase-labs.ioВы увидите свойства зарегистрированного хоста. Также можно проверить через Web-интерфейс FreeIPA: зайдите в Dashboard → Hosts и найдите запись о клиенте.

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

Проверить информацию о пользователе локально можно командами:
getent passwd misaka
id misakaОни должны возвращать сведения, полученные из LDAP/Kerberos.
Когда это может не сработать
- DNS неправильно настроен или /etc/resolv.conf перезаписывается менеджером сети.
- Порты между сервером и клиентом блокируются сетевым фаерволом (см. список портов ниже).
- Разные версии пакетов FreeIPA на сервере и клиенте (редко, но возможно конфликтное поведение).
- Неправильное время/синхронизация (Kerberos чувствителен к рассинхронированию часов).
Альтернативные подходы
- Если вы не хотите полностью полагаться на DNS-autodiscovery, можно явно передать параметры в ipa-client-install: –server, –realm, –domain.
- Для контейнерных/immutable-систем настраивайте клиент в образе (image build) или используйте configuration management (Ansible/Chef) для автоматизации.
- Для гостевых машин без прямого доступа к DNS используйте статическую запись в /etc/hosts и ручной join (–server).
Контроль качества: критерии приёмки
- Хост отображается в списке Hosts на FreeIPA-сервере.
- Пользователь из FreeIPA может успешно выполнить вход на клиент и получить домашнюю директорию.
- Команды getent passwd и id возвращают корректные данные из LDAP/Kerberos.
- Синхронизация времени исправна (ntp или chrony) на клиенте и сервере.
Тесты/кейсы приёмки
- Попытка входа с новой учётной записью: успешный вход и создана домашняя директория.
- Попытка входа с некорректным паролем: доступ запрещён, событие логируется.
- Отказ DNS: ipa-client-install должен корректно сообщать об ошибке autodiscovery.
Руководство для ролей (чек-листы)
Администратор серверов:
- Проверить, что FreeIPA-сервер работает и доступен по сети.
- Убедиться в корректной конфигурации DNS и времени.
SRE / инженер по развёртыванию:
- Автоматизировать установку пакетов и запуск ipa-client-install в конфигурационном сценарии.
- Обеспечить мониторинг доступности LDAP/Kerberos.
Helpdesk / оператор:
- Проверить наличие хоста в Web UI → Hosts.
- Проверить логины пользователей и при необходимости направить на администратора.
Безопасность и жёсткая настройка
- Ограничьте доступ к портам FreeIPA только доверенным сетям (LDAP/LDAPS, Kerberos).
- Используйте LDAPS (порт 636) и контролируйте сертификаты PKI (Dogtag).
- Обновляйте пакеты безопасности на клиенте и сервере.
- Ограничьте возможности sudo/политики авторизации через FreeIPA ACLs.
Совместимость и рекомендации по миграции
- Для более новых версий Ubuntu (20.04, 22.04) процедура схожа, но пакеты и зависимости могут отличаться; проверяйте официальную документацию FreeIPA.
- Для машин под управлением systemd-resolved настройте DNS в systemd, а не напрямую в /etc/resolv.conf.
Факты: порты и сервисы, задействованные FreeIPA
- DNS: 53 (UDP/TCP)
- Kerberos: 88 (UDP/TCP), kpasswd 464
- LDAP: 389 (TCP), LDAPS 636
- HTTP(S): 80/443
- NTP/chrony: 123
Эти порты должны быть доступны между клиентом и сервером по сети.
План отката / восстановление
- Если join завершился некорректно, выполните на клиенте:
ipa-client-install --uninstall- Удалите соответствующую запись хоста на сервере: либо через Web UI → Hosts → Delete, либо через CLI:
ipa host-del client1.hakase-labs.ioПосле исправления конфигурации повторите установку.
Полезные команды для отладки
- Проверка DNS с клиента:
host -t A client1.hakase-labs.io
dig @10.9.9.15 client1.hakase-labs.io- Проверка времени:
chronyc tracking- Логи установки клиента: смотрите /var/log/sssd/ и /var/log/messages или journalctl -xe
Дополнительные советы
- Автоматизируйте установку через Ansible: модуль command/apt для пакетов и command для ipa-client-install.
- В тестовой среде сначала добавляйте и удаляйте хосты, чтобы выработать процедуру отката.
Ссылки и документация
- Официальная документация FreeIPA: https://www.freeipa.org/page/Documentation
Резюме
FreeIPA-клиент на Ubuntu 18.04 устанавливается и настраивается за несколько шагов: настройка DNS/FQDN, установка пакетов, запуск ipa-client-install и настройка PAM для mkhomedir. Ключевые моменты — корректная DNS-конфигурация, синхронизация времени и открытые сетевые порты. При подготовке к масштабированию автоматизируйте шаги и добавьте мониторинг.

Краткие рекомендации:
- Проверяйте /etc/resolv.conf и systemd-resolved при проблемах с DNS.
- Убедитесь в корректной работе Kerberos — проверьте kinit.
- При массовом развёртывании используйте CM-инструменты.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента