Подробный гайд: Интеграция ALT Linux с Active Directory (Kerberos + SSSD/realmd)

Интеграция ALT Linux с Active Directory через Kerberos и SSSD: пошаговая настройка аутентификации, присоединение к домену, тестирование и решение проблем

2026.05.27                  


Подробный гайд: Интеграция ALT Linux с Active Directory (Kerberos + SSSD/realmd)Подробный гайд: Интеграция ALT Linux с Active Directory (Kerberos + SSSD/realmd)

Важное уточнение:

Kerberos уже является ядром аутентификации Windows Active Directory. На Linux мы не "подключаем Kerberos к AD", а вводим систему в домен AD, используя встроенный Kerberos-стек и LDAP через SSSD + realmd. Это штатный, безопасный и поддерживаемый метод.


Требования перед началом

Компонент Требование
Сеть Доступ к контроллерам домена (DC) по портам: 88, 135, 139, 389, 445, 464, 636, 3268, 3269
DNS Прямое и обратное разрешение имён DC. Linux должен резолвить dc.domain.local ↔ IP
Время Синхронизация с DC (допуск ±5 минут). Kerberos не работает при рассинхроне
Учётная запись Доменный пользователь с правом Add workstations to domain (обычно Domain Admins)
ALT Linux Ветка p10/p11/c11 (рекомендуется последняя стабильная)

Шаг 1. Подготовка системы

1.1 Настройка имени хоста

sudo hostnamectl set-hostname alt-client.domain.local
# Проверка
hostname -f

1.2 Настройка DNS

Убедитесь, что в /etc/resolv.conf указан DNS-сервер AD:

cat /etc/resolv.conf
# nameserver <IP_Контроллера_Домена>
# search domain.local

Проверка резолвинга:

nslookup dc.domain.local
nslookup <IP_DC>

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

Kerberos критичен к времени. Используем chronyd (рекомендуется в ALT Linux):

sudo apt-get install chrony
sudo systemctl enable --now chronyd

Отредактируйте /etc/chrony.conf, добавив DC как источник времени:

server dc.domain.local iburst prefer
driftfile /var/lib/chrony/drift
logdir /var/log/chrony

Перезапустите и проверьте:

sudo systemctl restart chronyd
chronyc tracking
chronyc sources

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

sudo apt-get update
sudo apt-get install realmd sssd sssd-tools krb5-workstation adcli oddjob-mkhomedir samba-common-tools chrony

В ALT Linux используются пакеты с именами, близкими к RHEL/CentOS. Если какой-то пакет не найден, уточните ветку репозитория (apt-cache search <имя>).


Шаг 3. Присоединение к домену AD

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

realm discover DOMAIN.LOCAL

Ожидаемый вывод должен содержать realm: DOMAIN.LOCAL, server-software: active-directory, client-software: sssd.


3.2 Ввод в домен

sudo realm join --user=Administrator DOMAIN.LOCAL

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


realmd автоматически:

  • Сгенерирует /etc/krb5.conf
  • Создаст /etc/sssd/sssd.conf
  • Настроит PAM и NSSwitch
  • Включит необходимые службы

3.3 Проверка статуса

realm list
sudo net ads testjoin

Ожидаемый результат: Join is OK


Шаг 4. Тонкая настройка SSSD и PAM/NSSwitch

4.1 Проверка /etc/sssd/sssd.conf

realmd создаёт минимальный конфиг.

Рекомендуется оптимизировать:

[sssd]
domains = DOMAIN.LOCAL
config_file_version = 2
services = nss, pam

[domain/DOMAIN.LOCAL]
ad_domain = domain.local
krb5_realm = DOMAIN.LOCAL
realmd_tags = manages-system joined-with-adcli
cache_credentials = True
id_provider = ad
krb5_store_password_if_offline = True
default_shell = /bin/bash
ldap_id_mapping = True
use_fully_qualified_names = False
fallback_homedir = /home/%u
access_provider = simple
simple_allow_groups = linux-users, domain admins
enumerate = false
dyndns_update = false

Ключевые параметры:

  • use_fully_qualified_names = False → вход как user, а не user@domain.local
  • access_provider = simple + simple_allow_groups → ограничение доступа по AD-группам
  • enumerate = false → производительность (не грузит всех пользователей в кэш)

4.2 Перезапуск и очистка кэша

sudo systemctl enable --now sssd oddjobd
sudo rm -f /var/lib/sss/db/*
sudo systemctl restart sssd

4.3 Проверка NSSwitch и PAMrealmd обычно настраивает автоматически, но проверьте:

grep -E "^(passwd|shadow|group):" /etc/nsswitch.conf
# Ожидаемо:
# passwd:     files sss
# shadow:     files sss
# group:      files sss

PAM-модуль pam_sss.so должен присутствовать в /etc/pam.d/system-auth и /etc/pam.d/password-auth. Обычно realmd добавляет строки через oddjob или pam-config.


Шаг 5. Тестирование

5.1 Kerberos-билет

kinit Administrator@DOMAIN.LOCAL
klist

Должен появиться TGT с Default principal: Administrator@DOMAIN.LOCAL.


5.2 Разрешение пользователя/группы

id user.ad
getent passwd user.ad
getent group "domain admins"

5.3 Тестовый вход по SSH

ssh user.ad@alt-client.domain.local

При первом входе домашний каталог создастся автоматически (благодаря oddjob-mkhomedir).


Troubleshooting

Симптом Причина Решение
kinit: Cannot resolve servers for KDC in realm "DOMAIN.LOCAL" DNS не резолвит _kerberos._tcp.domain.local Проверьте resolv.conf, добавьте dns_lookup_kdc = true в krb5.conf
kinit: Preauthentication failed Неверный пароль или рассинхронизация времени chronyc tracking, синхронизируйте время
id: user.ad: no such user SSSD не запущен или кэш пустой systemctl status sssd, rm -f /var/lib/sss/db/*, перезапуск
Login incorrect в PAM PAM не настроен на pam_sss.so Проверьте /etc/pam.d/system-auth, запустите oddjob-mkhomedir
realm join падает с Insufficient permissions Учётка не имеет права ввода в домен Используйте Domain Admins или делегированную учётку
Медленный первый вход enumerate = true в SSSD Установите enumerate = false, очистите кэш

Полезные команды диагностики:

journalctl -u sssd -f --no-pager
sssd_status=$(systemctl is-active sssd)
realm list
adcli info domain.local
kvno ldap/dc.domain.local@DOMAIN.LOCAL

Важные заметки для ALT Linux

  1. Пакетный менеджер: ALT использует apt-get с RPM-бэкендом. Имена пакетов могут незначительно отличаться в ветках p10/p11. Используйте apt-cache search sssd для уточнения.
  2. Auth-конфигурация: В современных ветках ALT authconfig устарел. realmd настраивает PAM/NSSwitch автоматически через oddjob и внутренние скрипты.
3. Безопасность:
  • Не храните пароли в открытом виде. krb5_store_password_if_offline = True безопасно кэширует хэши.
  • Рекомендуется ограничить вход через simple_allow_groups или access_provider = ad с ldap_access_filter.
  • Для работы без постоянного подключения к DC включите cache_credentials = True.
    1. Домашние каталоги: oddjob-mkhomedir создаёт /home/%u при первом входе. Убедитесь, что служба oddjobd включена.
    2. Обновления: При смене пароля доменного компьютера или ротации ключей может потребоваться realm leave → повторный realm join.

Итог

После выполнения гайда ваша система ALT Linux:
  • Аутентифицируется через Kerberos (AD)
  • Получает UID/GID из AD через LDAP
  • Поддерживает оффлайн-вход (кэшированные учётки)
  • Автоматически создаёт домашние каталоги
  • Ограничивает доступ по доменным группам

Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.