Подробный гайд: Интеграция 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.localaccess_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
- Пакетный менеджер: ALT использует
apt-getс RPM-бэкендом. Имена пакетов могут незначительно отличаться в веткахp10/p11. Используйтеapt-cache search sssdдля уточнения. - 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.- Домашние каталоги:
oddjob-mkhomedirсоздаёт/home/%uпри первом входе. Убедитесь, что службаoddjobdвключена. - Обновления: При смене пароля доменного компьютера или ротации ключей может потребоваться
realm leave→ повторныйrealm join.
- Домашние каталоги:
Итог
После выполнения гайда ваша система ALT Linux:
- Аутентифицируется через Kerberos (AD)
- Получает UID/GID из AD через LDAP
- Поддерживает оффлайн-вход (кэшированные учётки)
- Автоматически создаёт домашние каталоги
- Ограничивает доступ по доменным группам
Информация предоставлена в ознакомительных целях. Применение описанных настроек в системах, должно осуществляться только после согласования с ответственными за информационную безопасность и в соответствии с требованиями ФСТЭК, ФСБ и иных уполномоченных органов.