Product SiteDocumentation Site

Глава 14. SSSD и Winbind

14.1. Аутентификация (PAM)
14.1.1. SSSD
14.1.2. Winbind
14.2. Авторизация (NSS)
14.2.1. SSSD
14.2.2. Winbind
14.3. Кеширование и управление сессией
14.3.1. SSSD
14.3.2. Winbind
14.4. Групповые политики
14.4.1. Поддержка групповых политик ALT Linux
14.4.2. Интеграция с GPO-Based Access Control для входа в систему
14.5. Обновление DNS
14.5.1. SSSD
14.5.2. Winbind
14.6. Поддержка работы с несколькими доменами и доверительные отношения
14.6.1. SSSD
14.6.2. Winbind
В операционных системах на базе Linux два ключевых инструмента обеспечивают взаимодействие с AD — Winbind и SSSD:
  • Winbind (часть пакета Samba) — демон, обеспечивающий взаимодействие с AD и решающий проблему единого входа в систему. Winbind использует вызовы Microsoft RPC. Он поддерживает как Kerberos, так и NTLM, предоставляя системам механизмы аутентификации и авторизации, аналогичные тем, что используются в Windows;
  • SSSD (System Security Services Daemon) — клиентский компонент централизованных служб каталогов (таких как FreeIPA, 389 Directory Server, Microsoft Active Directory, OpenLDAP и других). Он запрашивает и кеширует информацию, а также предоставляет услуги идентификации, аутентификации и авторизации для локальной машины.
В этом разделе описаны функции и возможности двух вариантов интеграции: решение на основе Samba Winbind и решение на базе SSSD.

Таблица 14.1. Сравнение Winbind и SSSD

Категория
Описание
Winbind
SSSD
Аутентификация
Kerberos
Да (начиная с версии 4.19.9-alt4)
Да
NTLM
Да (используется, если Kerberos недоступен или не используется)
Нет
LDAP
Нет
Да (не в AD-домене)
Авторизация
LDAP
Да
Да
Вызовы Microsoft RPC
Да
Нет
Автономный вход в систему
Да
Да
Поддержка доверительных отношений
External Trust
Да
Да
Parent-Child Trust
Да
Да
Forest Trust
Да
Нет
Поддержка групповых политик
Групповые политики Samba
Да (не реализовано в Альт Домен)
Нет
Групповые политики ALT Linux с помощью gpupdate
Да
Да
GPO-Based Access Control (Централизованное управление контролем доступа на основе хоста через GPO)
Нет
Да
Сопоставление идентификаторов
Генерация UID/GID
Да
Да
Сопоставление идентификаторов через атрибуты RFC2307
Да
Да
Обновление DNS
Встроенное
Нет
Да
Сторонние решения
Да
Нет
Автоматическая интеграция с sudo
Нет
Да
Аутентификация с помощью электронных ключей, смарт-карт и сертификатов
Нет
Да
Производительность при обработке большого числа групп и пользователей
Высокая
Низкая

14.1. Аутентификация (PAM)

В Linux аутентификация пользователей управляется системой PAM (Pluggable Authentication Modules), которая позволяет использовать различные модули для проверки учетных данных. Winbind и SSSD реализуют собственные PAM-модули:
  • Winbind: pam_winbind.so
  • SSSD: pam_sss.so
Оба модуля позволяют системе проверять учетные данные пользователя через обращение к контроллеру домена:
  • Winbind использует NTLM или Kerberos;
  • SSSD использует Kerberos.
Конфигурация PAM обычно прописывается в файле /etc/pam.d/system-auth, где подключается преднастроенный стек:
system-auth-winbind-only
или
system-auth-sss-only

14.1.1. SSSD

В SSSD за аутентификацию отвечает параметр auth_provider, который определяет, какой механизм используется для проверки подлинности. Поддерживаются следующие варианты:
  • поставщик данных Kerberos (krb5) — аутентификация через Kerberos. Требует настройки auth_provider = krb5. Для корректной работы его необходимо использовать совместно с поставщиком данных идентификации (например, id_provider = ldap). Некоторые данные, которые требуются внутреннему серверу проверки подлинности Kerberos 5, должны предоставляться поставщиком данных идентификации (например, имя участника Kerberos пользователя (UPN));
  • поставщик данных LDAP (ldap) — аутентификация через LDAP-сервер. SSSD не поддерживает аутентификацию через незащищенный канал требуется TLS/SSL или LDAPS. Даже если сервер LDAP используется только как провайдер идентификации, использование зашифрованного канала настоятельно рекомендуется;
  • поставщик данных Active Directory (ad) — оптимизированная аутентификация для Active Directory (используется Kerberos + LDAP). Обмен данными с внутренним сервером выполняется по каналу с шифрованием GSSAPI. С поставщиком данных AD не следует использовать параметры SSL/TLS, поскольку использование Kerberos будет иметь приоритет над ними. Поставщик данных AD позволяет SSSD использовать поставщик данных идентификации sssd-ldap и поставщик данных проверки подлинности sssd-krb5 с оптимизацией для сред Active Directory. Поставщик данных AD принимает те же параметры, которые используются поставщиками sssd-ldap и sssd-krb5, за некоторыми исключениями;
  • поставщик данных IPA (ipa) — специальный провайдер для интеграции с FreeIPA. Этот поставщик требует, чтобы компьютер был подключен к домену FreeIPA; конфигурация почти полностью определяется автоматически и получается непосредственно с сервера. Поставщик IPA позволяет SSSD использовать поставщик идентификационных данных sssd-ldap и sssd-krb5.
Для настройки аутентификации в SSSD используется файл конфигурации /etc/sssd/sssd.conf. В нём определяются параметры подключения к серверу каталога, а также параметры аутентификации.
Пример настройки аутентификации для AD:
[domain/TEST.ALT]
id_provider = ad
auth_provider = ad
chpass_provider = ad
access_provider = ad
default_shell = /bin/bash
fallback_homedir = /home/%d/%u
debug_level = 0
; cache_credentials = false
ad_gpo_ignore_unreadable = true
ad_gpo_access_control = permissive
ad_update_samba_machine_account_password = true

14.1.2. Winbind

В Winbind за аутентификацию отвечает параметр security, который модель безопасности Samba:
  • ads — настраивает Samba как участника домена в домене AD. Для аутентификации в этом режиме используется Kerberos;
  • domain — Samba выступает как член старого NT-домена (не AD) и передает учетные данные на контроллер домена Windows;
  • server — устаревший вариант, при котором Samba делегирует аутентификацию другому серверу, но, если тот откажет, пробует локальную проверку;
  • user — стандартный режим, когда учетные данные проверяются на самом сервере Samba, без обращения к домену.
Основными методами аутентификации являются:
  • Kerberos — используется для безопасной аутентификации через Kerberos. Это основной механизм при работе с доменами AD (security = ads). Winbind автоматически получает и управляет Kerberos-билетами для пользователей;
  • NTLM — в случае, если Kerberos недоступен или не используется, Winbind может прибегать к аутентификации через NTLM (NT LAN Manager), который является устаревшим, но все еще поддерживаемым методом аутентификации в Windows-средах.
Для настройки Winbind используется конфигурация в файле /etc/samba/smb.conf.
Пример настройки аутентификации Winbind для AD:
[global]
security = ads
workgroup = TEST
realm = TEST.ALT
idmap config * : backend = tdb
idmap config EXAMPLE : backend = rid
idmap config EXAMPLE : range = 10000-999999
winbind use default domain = yes
winbind offline logon = yes
winbind refresh tickets = yes
winbind enum users = no
winbind enum groups = no
kerberos method = secrets and keytab
log file = /var/log/samba/log.%m
log level = 3