Подробный гайд: Интеграция Astra Linux с FreeIPA (пошагово)

Пошаговая настройка централизованной аутентификации Astra Linux через FreeIPA: realmd, SSSD, Kerberos, DNS, sudo, MAC.

2026.04.18                  


Подробный гайд: Интеграция Astra Linux с FreeIPA (пошагово)Подробный гайд: Интеграция Astra Linux с FreeIPA (пошагово)

Цель:

  • Настроить централизованную аутентификацию, авторизацию и управление учётными записями на клиенте Astra Linux с использованием сервера FreeIPA.

Совместимость:

  • Astra Linux Special Edition 1.7/1.8 (Smolensk) и Common Edition 1.7/1.8 (Orel). FreeIPA 4.10+.

Рекомендуемый метод:

  • realmd + SSSD (стандарт де-факто для Linux-доменов).

1. Предварительные требования

Компонент Требование
FreeIPA сервер Полностью работоспособен, доступен по FQDN, работает DNS, Kerberos, LDAP, NTP
Сетевая связность Порты: 53 (UDP/TCP), 88 (Kerberos), 389/636 (LDAP/LDAPS), 464 (kadmin), 123 (NTP) открыты в обе стороны
DNS Клиент должен резолвить FQDN IPA-сервера. Обязательны A/AAAA, PTR, SRV записи (_kerberos, _ldap, _ntp)
Время Разница не более 5 минут (требование Kerberos). Рекомендуется chrony
Доступы root или sudo на клиенте, учётка FreeIPA с правами на добавление хостов (host-add)
Версия Astra Обновлённая система: apt update && apt full-upgrade

2. Установка необходимых пакетов

sudo apt update
sudo apt install -y realmd sssd sssd-tools libnss-sss libpam-sss \
                    oddjob oddjob-mkhomedir adcli packagekit krb5-user

realmd автоматизирует обнаружение домена, генерацию sssd.conf, настройку PAM/NSS и Kerberos.
oddjob-mkhomedir автоматически создаёт домашние каталоги при первом входе.


3. Настройка времени и DNS

Синхронизация времени

sudo systemctl enable --now chrony
sudo chronyc tracking  # Убедитесь, что Leap status = Normal и offset < 5s

Проверка DNS

# Прямое разрешение
nslookup ipa.example.com
host -t A ipa.example.com

# Обратное разрешение (обязательно для Kerberos)
nslookup <IP_IPA_SERVER>

# SRV записи FreeIPA
host -t SRV _kerberos._udp.EXAMPLE.COM
host -t SRV _ldap._tcp.EXAMPLE.COM

Если DNS не настроен корректно, realm discover завершится ошибкой или Kerberos не получит билеты.


4. Присоединение к домену FreeIPA

4.1 Обнаружение домена

realm discover EXAMPLE.COM

Ожидаемый вывод должен содержать: realm-type: ipa, server-software: freeipa.

4.2 Присоединение

sudo realm join --verbose EXAMPLE.COM -U admin

Вас попросят ввести пароль администратора FreeIPA.

realmd выполнит:

  • Создание записи хоста в FreeIPA
  • Генерацию /etc/krb5.keytab
  • Настройку /etc/sssd/sssd.conf
  • Обновление /etc/nsswitch.conf, PAM, krb5.conf

После успешного выполнения проверьте:

realm list

Вывод должен содержать домен, настроенный SSSD и статус configured.

5. Проверка работы

Пользователи и группы

id user@EXAMPLE.COM
getent passwd user@EXAMPLE.COM
getent group admins@EXAMPLE.COM

Kerberos

kinit user@EXAMPLE.COM
klist

Должен появиться TGT с сроком действия.

Вход по SSH

ssh user@EXAMPLE.COM@localhost
# или с другого узла
ssh user@EXAMPLE.COM@<astra_client_ip>

При первом входе домашний каталог создастся автоматически (/home/user@EXAMPLE.COM или /home/user, зависит от настройки fallback_homedir в SSSD).

Логи SSSD

sudo journalctl -u sssd -f
sudo sssctl domain-status

6. Особенности Astra Linux

Mandatory Access Control (MAC / Parsec)

Astra Linux SE (Smolensk) использует собственную систему Мандатного Управления Доступом. В строгом режиме стандартные пользователи могут не получить доступ к X11, звуку или сетевым службам.

Рекомендации:

  • Для Common Edition: MAC отключён или работает в режиме warn, интеграция работает "из коробки".
  • Для Special Edition:

1. Добавьте пользователей в допустимый мандатный уровень:

     sudo pdp -a user@EXAMPLE.COM
  1. Или настройте политики через fly-admin-mac или /etc/parsec/mac.

3. В /etc/security/access.conf разрешите доменную группу:

     +:user@EXAMPLE.COM:ALL
     +:domain_admins@EXAMPLE.COM:ALL
     -:ALL:ALL

Домашние каталоги

Проверьте, что в /etc/pam.d/common-session есть строка:

session required pam_mkhomedir.so skel=/etc/skel umask=077

Если используется realmd, она добавляется автоматически.

При необходимости измените в /etc/sssd/sssd.conf:

[domain/EXAMPLE.COM]
fallback_homedir = /home/%u

После правок: sudo systemctl restart sssd

Sudo через FreeIPA

На сервере FreeIPA создайте правило:

ipa sudorule-add --hostgroup=astra-clients astra-sudo
ipa sudorule-add-user astra-sudo --groups=ipausers
ipa sudorule-add-allow-command astra-sudo --sudocmds=ALL

На клиенте убедитесь в /etc/sssd/sssd.conf:

sudo_provider = ipa

Перезапустите SSSD и проверьте: sudo -l -U user@EXAMPLE.COM


7. Устранение неполадок

Проблема Диагностика Решение
kinit: Preauthentication failed Время ≠ серверу, пароль неверен, DNS не резолвит Синхронизируйте время, проверьте DNS, сбросьте кэш Kerberos
id user@EXAMPLE.COM → не найдено SSSD не запущен, домен не присоединён, nsswitch.conf не изменён systemctl restart sssd, sssctl domain-check, проверьте /etc/nsswitch.conf (passwd: files sss)
Вход работает, но нет домашней папки oddjobd не запущен, PAM не настроен systemctl enable --now oddjobd, проверьте pam_mkhomedir.so
Ошибка TLS/LDAPS Сертификат IPA не в /etc/sssd/pki или не обновлён sudo cp /etc/ipa/ca.crt /etc/pki/ca-trust/source/anchors/ && sudo update-ca-trust
Astra SE блокирует сессию MAC/Parsec отклоняет запуск pdp -a user, проверьте /var/log/parsec/, настройте мандатные уровни

Полезные команды:

sssctl logs-level debug   # Включить отладку SSSD
sssctl cache-remove       # Очистить кэш
realm leave               # Выход из домена
kdestroy -A               # Удалить все билеты Kerberos
journalctl -u sssd -u oddjobd -u chronyd --since "10 min ago"

8. Лучшие практики

  1. Резервное копирование: /etc/sssd/sssd.conf, /etc/krb5.keytab, /etc/krb5.conf, /etc/pam.d/
  2. Обновления: Регулярно обновляйте sssd, realmd, freeipa-client (если используется)
  3. Хост-группы: Объединяйте клиенты Astra в hostgroup в FreeIPA для массового применения sudo, HBAC, политик
  4. HBAC (Host-Based Access Control): Ограничьте доступ только нужным пользователям/группам к конкретным хостам
  5. Мониторинг: Настройте сбор логов SSSD, Kerberos, PAM в централизованную систему
  6. Отключение локальных учёток: После стабилизации интеграции заблокируйте локальные учётные записи, кроме root