Гид по технологиям

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

• 7 min read • Linux • Обновлено 20 Nov 2025
FreeIPA на CentOS 7: установка и настройка
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 работает и время синхронизировано.

Что мы сделаем

  1. Настроим hostname и /etc/hosts
  2. Установим пакеты FreeIPA
  3. Запустим конфигурацию сервера FreeIPA (включая DNS)
  4. Проверим учётную запись admin и веб-интерфейс
  5. Добавим нового пользователя
  6. Протестируем вход по 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 как постоянная мера).

Install FreeIPA 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.

Setup FreeIPA Server Alt: Терминал с интерактивным процессом настройки FreeIPA и запросами параметров

Apply configuration Alt: Подтверждение применения конфигурации FreeIPA в установщике

После успешного завершения вы увидите сообщение о том, что FreeIPA установлен и настроен.

FreeIPA configuration is complete Alt: Экран успешного завершения установки FreeIPA с итоговыми параметрами


Шаг 4 — Проверка администратора и веб-консоли

Проверьте Kerberos-учётную запись admin:

kinit admin

Вас попросят ввести пароль администратора (тот, что вы задали при установке). Если kinit проходит без ошибок, Kerberos работает.

Проверьте наличие пользователя admin в базе FreeIPA:

ipa user-find admin

Откройте веб-браузер и перейдите по адресу (HTTPS):

https://ipa.hakase-labs.io/

Если браузер предупреждает о сертификате, это нормально для самоподписанного или CA от Dogtag; в production рекомендуется использовать доверенный сертификат или добавить CA в доверенные корни.

Войдите в веб-интерфейс под admin и убедитесь, что консоль доступна и отображает статус служб.

Verify Admin Alt: Вывод команды ipa user-find admin в терминале

FreeIPA Login Alt: Страница входа в веб-интерфейс FreeIPA

FreeIPA Dashboard 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-пользователя.

Search for a user Alt: Результат поиска пользователя в FreeIPA через командную строку

User created 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 для ошибок аутентификации.

Test Login Alt: Терминал после успешного входа по SSH как пользователь FreeIPA


Отладка и распространённые проблемы

  1. Проблемы Kerberos (kinit выдаёт ошибки):

    • Проверьте синхронизацию времени (chronyd/ntpd).
    • Убедитесь, что FQDN в ticket соответствует записям в KDC.
  2. DNS-проблемы:

    • Если FreeIPA отвечает, но клиенты не видят сервер — проверьте A/PTR записи.
    • При использовании внешнего DNS не включайте DNS в FreeIPA, либо синхронизируйте зоны.
  3. SSSD не возвращает пользователей:

    • systemctl status sssd и journalctl -u sssd.
    • Проверьте /etc/sssd/sssd.conf и права файла (600).
  4. Ошибки сертификатов в веб-интерфейсе:

    • Для тестов допустимо принять самоподписанный сертификат.
    • В production используйте CA, доверенный браузером, или импортируйте CA Dogtag в доверенные корни.
  5. 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 рекомендуется полный серверный развёртывание.

Критерии приёмки

  1. kinit admin проходит без ошибок.
  2. ipa user-find admin возвращает запись администратора.
  3. Веб-консоль доступна по HTTPS и можно войти под admin.
  4. Новые пользователи видны через 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.


Полезные ссылки

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро