Установка и настройка FreeIPA на CentOS 7
О чём этот материал
FreeIPA — свободный набор для управления идентификацией, политиками и аудитом (Identity, Policy, Audit), спонсируемый RedHat. Включает 389 Directory Server, MIT Kerberos, DNS (Bind), Dogtag (CA), Apache, NTP/chrony и клиентские компоненты на Python. Этот гайд показывает установку FreeIPA Server на CentOS 7 и проверку базовой работы (веб-интерфейс, Kerberos, LDAP, вход по SSH).
Короткие определения:
- FreeIPA: система единой авторизации и управления аккаунтами для Linux/UNIX.
- FQDN: полное доменное имя хоста (например, ipa.example.com).
- REALM: Kerberos-реалм, обычно пишется в верхнем регистре.
Требования к системе
- Рекомендуемая оперативная память: 2 ГБ или больше.
- ОС: CentOS 7 / RHEL 7 или совместимая ветка.
- Права root для установки пакетов и изменения сетевых настроек.
- Корректно настроенное сетевое окружение (DNS/hosts) и синхронизация времени.
Важно: Kerberos чувствителен к времени. Перед установкой убедитесь, что NTP/chrony работает и время синхронизировано.
Что мы сделаем
- Настроим hostname и /etc/hosts
- Установим пакеты FreeIPA
- Запустим конфигурацию сервера FreeIPA (включая DNS)
- Проверим учётную запись admin и веб-интерфейс
- Добавим нового пользователя
- Протестируем вход по SSH
Шаг 1 — Настройка хоста
Измените hostname и добавьте запись в /etc/hosts, чтобы система знала свой FQDN и IP.
Пример: поменяем hostname на ipa.hakase-labs.io
hostnamectl set-hostname ipa.hakase-labs.ioОтредактируйте /etc/hosts и добавьте строку с локальным IP сервера и FQDN:
vim /etc/hostsДобавьте (пример):
10.9.9.15 ipa.hakase-labs.io ipaСохраните файл, перелогиньтесь и проверьте:
hostname
hostname -fПримечания:
- Убедитесь, что FQDN соответствует настройкам DNS, если вы используете внешний DNS. Если DNS не настроен, запись в /etc/hosts должна покрыть функциональность для тестовой среды.
- Для production-окружения лучше иметь корректные A и PTR-записи в DNS; FreeIPA может создавать зоны, но исходные DNS-записи должны соответствовать IP.
Шаг 2 — Установка пакетов FreeIPA
Установите серверные пакеты из репозиториев CentOS 7:
sudo yum install ipa-server bind-dyndb-ldap ipa-server-dns -yДо установки рекомендуется убедиться, что система обновлена и что установлен chrony или ntpd для корректной работы Kerberos:
sudo yum update -y
sudo yum install chrony -y
sudo systemctl enable --now chronydОткройте необходимые порты в firewalld. FreeIPA требует набор стандартных сервисов (HTTP/HTTPS, LDAP/LDAPS, Kerberos, DNS и т.д.):
for SERVICES in ntp http https ldap ldaps kerberos kpasswd dns; do
firewall-cmd --permanent --add-service=$SERVICES
done
firewall-cmd --reloadСписок важных портов и протоколов (инструментально):
- 80/tcp — HTTP (редирект на HTTPS в веб-консоли)
- 443/tcp — HTTPS (веб-интерфейс и API)
- 389/tcp — LDAP
- 636/tcp — LDAPS
- 88/tcp/udp — Kerberos
- 464/tcp/udp — kpasswd (смена пароля)
- 53/udp/tcp — DNS (если включён DNS в FreeIPA)
Примечание по SELinux: в большинстве случаев SELinux может оставаться включённым. Если вы испытываете проблемы с запуском сервисов, исследуйте /var/log/audit/audit.log или временно переключите SELinux в permissive режим для отладки (не рекомендуется для production как постоянная мера).
Alt: Скриншот установки пакетов FreeIPA в терминале с выводом yum
Шаг 3 — Настройка сервера FreeIPA
Запустите интерактивную установку сервера с включённым DNS (опция –setup-dns):
ipa-server-install --setup-dnsВ интерактивном режиме вам предложат указать:
- Server host name (FQDN), например ipa.hakase-labs.io
- Domain name, например hakase-labs.io
- Realm name (Kerberos), обычно в верхнем регистре (HAKASE-LABS.IO)
- Пароль Directory Manager (админ LDAP)
- Пароль IPA admin (консольный админ)
Пример ответов (замените значениями вашей инфраструктуры):
Server host name [ipa.hakase-labs.io]: ipa.hakase-labs.io
Please confirm the domain name [hakase-labs.io]: hakase-labs.io
Please provide a realm name [HAKASE-LABS.IO]: HAKASE-LABS.IO
Directory Manager password: hakasemanager123
Password (confirm): hakasemanager123
IPA admin password: hakaseadmin123
Password (confirm): hakaseadmin123Далее вас спросят про DNS forwarders (укажите публичные резолверы, например 1.1.1.1, 8.8.8.8) и о создании обратной зоны (reverse zone) для IP сервера. На последнем шаге подтвердите применение конфигурации для записи всех изменений в систему.
Примечания и альтернативы:
- Без интерактивного режима можно использовать набор ключей: ipa-server-install -U –realm=EXAMPLE.COM –domain=example.com –ds-password=… –admin-password=… –setup-dns. Флаги позволяют автоматизировать установку в скриптах.
- Если у вас есть внешний DNS, можете не настраивать DNS в FreeIPA (–no-dns) и вместо этого создать записи в вашем внешнем DNS.
Alt: Терминал с интерактивным процессом настройки FreeIPA и запросами параметров
Alt: Подтверждение применения конфигурации FreeIPA в установщике
После успешного завершения вы увидите сообщение о том, что FreeIPA установлен и настроен.
Alt: Экран успешного завершения установки FreeIPA с итоговыми параметрами
Шаг 4 — Проверка администратора и веб-консоли
Проверьте Kerberos-учётную запись admin:
kinit adminВас попросят ввести пароль администратора (тот, что вы задали при установке). Если kinit проходит без ошибок, Kerberos работает.
Проверьте наличие пользователя admin в базе FreeIPA:
ipa user-find adminОткройте веб-браузер и перейдите по адресу (HTTPS):
Если браузер предупреждает о сертификате, это нормально для самоподписанного или CA от Dogtag; в production рекомендуется использовать доверенный сертификат или добавить CA в доверенные корни.
Войдите в веб-интерфейс под admin и убедитесь, что консоль доступна и отображает статус служб.
Alt: Вывод команды ipa user-find admin в терминале
Alt: Страница входа в веб-интерфейс FreeIPA
Alt: Панель управления FreeIPA после входа администратора
Шаг 5 — Добавление нового пользователя
Перед добавлением пользователя включите автоматическое создание домашней директории для LDAP-пользователей:
sudo authconfig --enablemkhomedir --updateСоздадим пользователя hiroyuki (замените на своё имя):
ipa user-add hiroyuki --first=Sawano --last=Hiroyuki [email protected] --shell=/bin/bash --passwordВас попросят ввести пароль для нового пользователя.
Проверьте создание пользователя:
ipa user-find hiroyuki
getent passwd hiroyukiЕсли getent возвращает строку пользователя, NSS/SSSD интеграция работает и система видит LDAP-пользователя.
Alt: Результат поиска пользователя в FreeIPA через командную строку
Alt: Состояние учётной записи пользователя в веб-консоли FreeIPA
Шаг 6 — Тестирование входа по SSH
С локальной машины попробуйте подключиться к серверу под новым пользователем:
ssh [email protected]Введите пароль. При первом входе система может потребовать сменить пароль (password expired flow). После успешного входа проверьте, что вы попали в домашнюю директорию и что домашняя директория была создана автоматически.
Проверочные команды на сервере:
whoami
pwd
id hiroyukiЕсли вход по паролю не работает, проверьте:
- sshd_config: UsePAM yes, PasswordAuthentication yes (или соответствующая политика).
- sssd: systemctl status sssd
- /var/log/secure и /var/log/messages для ошибок аутентификации.
Alt: Терминал после успешного входа по SSH как пользователь FreeIPA
Отладка и распространённые проблемы
Проблемы Kerberos (kinit выдаёт ошибки):
- Проверьте синхронизацию времени (chronyd/ntpd).
- Убедитесь, что FQDN в ticket соответствует записям в KDC.
DNS-проблемы:
- Если FreeIPA отвечает, но клиенты не видят сервер — проверьте A/PTR записи.
- При использовании внешнего DNS не включайте DNS в FreeIPA, либо синхронизируйте зоны.
SSSD не возвращает пользователей:
- systemctl status sssd и journalctl -u sssd.
- Проверьте /etc/sssd/sssd.conf и права файла (600).
Ошибки сертификатов в веб-интерфейсе:
- Для тестов допустимо принять самоподписанный сертификат.
- В production используйте CA, доверенный браузером, или импортируйте CA Dogtag в доверенные корни.
Firewall блокирует сервисы:
- Проверяйте
firewall-cmd --list-allи открытые порты.
- Проверяйте
Рекомендации по безопасности и эксплуатации
- Регулярно обновляйте систему и пакеты FreeIPA.
- Настройте резервное копирование Directory Server и PKI (Dogtag CA).
- Используйте сильные политики паролей и 2FA для веб-консоли, если это поддерживается.
- Ограничьте доступ к API и административным портам через ACL/Firewall.
- Мониторьте SSSD, 389-ds и Kerberos KDC (логирование, алерты).
Альтернативные подходы и сценарии
- Если в инфраструктуре уже есть корпоративный DNS, пропустите опцию –setup-dns и создайте записи A/PTR в существующем DNS.
- Для автоматизированных установок используйте флаги ipa-server-install в неинтерактивном режиме.
- Для интеграции с Active Directory рассмотрите trust (доверие) между FreeIPA и AD.
- Существуют контейнерные образы FreeIPA для тестовых сред, но для production рекомендуется полный серверный развёртывание.
Критерии приёмки
- kinit admin проходит без ошибок.
- ipa user-find admin возвращает запись администратора.
- Веб-консоль доступна по HTTPS и можно войти под admin.
- Новые пользователи видны через getent и могут войти по SSH.
Чек-листы по ролям
Администратор системы:
- Настроить FQDN и DNS записи.
- Установить chrony/ntp и проверить время.
- Установить и запустить ipa-server-install.
- Настроить бэкапы LDAP и CA.
DevOps-инженер:
- Интегрировать CI/CD с системой учётных записей при необходимости.
- Автоматизировать развёртывание с помощью флагов non-interactive.
- Проверять конфигурации firewall и мониторинга.
Шпаргалка команд (cheat sheet)
# Настройка хоста
hostnamectl set-hostname ipa.example.com
vim /etc/hosts
# Установка
sudo yum install ipa-server bind-dyndb-ldap ipa-server-dns -y
sudo systemctl enable --now chronyd
# Открыть порты
for S in ntp http https ldap ldaps kerberos kpasswd dns; do firewall-cmd --permanent --add-service=$S; done
firewall-cmd --reload
# Интерактивная установка
ipa-server-install --setup-dns
# Проверки
kinit admin
ipa user-find admin
getent passwd newuser
systemctl status sssd
# Добавление пользователя
ipa user-add username --first=First --last=Last [email protected] --shell=/bin/bash --password
# SSH тест
ssh [email protected]Краткая сводка
FreeIPA даёт полный стек для централизованного управления аккаунтами, Kerberos-аутентификации и DNS/PKI. На CentOS 7 установка проходит в несколько шагов: подготовка хоста, установка пакетов, интерактивная конфигурация сервера, проверка admin и тест пользователей. Для production-окружения дополнительно настройте резервное копирование, мониторинг и безопасные сертификаты.
Важное: проверьте синхронизацию времени (NTP), корректность DNS-записей и настройки firewall до того, как запускать ipa-server-install.
Полезные ссылки
- https://www.freeipa.org/page/Main_Page
- How to Install FreeIPA Client on CentOS 7
- How to Install FreeIPA Client on Ubuntu Server 18.04
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента