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