SSSD-AD(5) | Формати файлів та правила | SSSD-AD(5) |
NAME¶
sssd-ad - Модуль надання даних Active Directory SSSD
ОПИС¶
На цій сторінці довідника описано налаштування засобу керування доступом AD для sssd(8). Щоб дізнатися більше про синтаксис налаштування, зверніться до розділу «ФОРМАТ ФАЙЛІВ» сторінки довідника sssd.conf(5).
Засіб надання даних AD є модулем, який використовується для встановлення з'єднання із сервером Active Directory. Для роботи цього засобу надання даних потрібно, щоб комп'ютер було долучено до домену AD і щоб було доступним сховище ключів. Обмін даними із модулем відбувається за допомогою каналу із шифруванням GSSAPI. Із засобом надання даних AD не слід використовувати параметри SSL/TLS, оскільки їх перекриває використання Kerberos.
У засобі надання даних AD передбачено підтримку встановлення з’єднання з Active Directory 2008 R2 або пізнішою версією. Робота з попередніми версіями можлива, але не підтримується.
Засобом надання даних AD можна скористатися для отримання даних щодо користувачів і розпізнавання користувачів за допомогою довірених доменів. У поточній версії передбачено підтримку використання лише довірених доменів з того самого лісу. Крім того автоматично визначаються сервери із довірених доменів.
Засіб надання даних AD уможливлює для SSSD використання засобу надання даних профілів sssd-ldap(5) та засобу надання даних розпізнавання sssd-krb5(5) з оптимізацією для середовищ Active Directory. Засіб надання даних AD приймає ті самі параметри, які використовуються засобами надання даних sssd-ldap та sssd-krb5, із деякими виключеннями. Втім, встановлювати ці параметри не обов'язково і не рекомендовано.
Засіб надання даних AD в основному копіює типові параметри традиційних засобів надання даних ldap і krb5 із деякими виключенням. Відмінності наведено у розділі “ЗМІНЕНІ ТИПОВІ ПАРАМЕТРИ”.
Інструментом надання даних AD також можна скористатися для доступу, зміни паролів запуску від імені користувача (sudo) та використання autofs. У налаштовуванні керування доступом на боці клієнта немає потреби.
Якщо у sssdconf вказано “auth_provider=ad” або “access_provider=ad”, для id_provider також має бути вказано “ad”.
Типово, модуль надання даних AD виконуватиме прив’язку до значень UID та GID з параметра objectSID у Active Directory. Докладніший опис наведено у розділі «ВСТАНОВЛЕННЯ ВІДПОВІДНОСТІ ІДЕНТИФІКАТОРІВ». Якщо вам потрібно вимкнути встановлення відповідності ідентифікаторів і покладатися на атрибути POSIX, визначені у Active Directory, вам слід встановити
ldap_id_mapping = False
Якщо має бути використано атрибути POSIX, рекомендуємо з міркувань швидкодії виконувати також реплікацію атрибутів до загального каталогу. Якщо виконується реплікація атрибутів POSIX, SSSD намагатиметься знайти домен числового ідентифікатора із запиту за допомогою загального каталогу і шукатиме лише цей домен. І навпаки, якщо реплікація атрибутів POSIX до загального каталогу не відбувається, SSSD доводиться шукати на усіх доменах у лісі послідовно. Будь ласка, зауважте, що для пришвидшення пошуку без доменів також може бути корисним використання параметра “cache_first”. Зауважте, що якщо у загальному каталозі є лише підмножина атрибутів POSIX, у поточній версії невідтворювані атрибути з порту LDAP не читатимуться.
Дані щодо користувачів, груп та інших записів, які обслуговуються SSSD, у модулі надання даних AD завжди обробляються із врахуванням регістру символів для забезпечення сумісності з реалізацією Active Directory у LDAP.
SSSD може встановлювати відповідність лише груп захисту Active Directory. Щоб дізнатися більше про типи груп AD, ознайомтеся із підручником з груп захисту Active Directory[1]
SSSD відфільтровуватиме локальні для домену групи від віддалених доменів у лісі AD. Типово, групи буде відфільтровано, наприклад при слідуванні за вкладеною ієрархією груп у віддалених доменах, оскільки вони не є чинними у локальних доменах. Так зроблено для забезпечення узгодженості з призначенням груп і участі у них Active Directory, яку можна переглянути у PAC квитка Kerberos користувача, який видано Active Directory.
ПАРАМЕТРИ НАЛАШТУВАННЯ¶
Зверніться до розділу «РОЗДІЛИ ДОМЕНІВ» сторінки довідника (man) sssd.conf(5), щоб дізнатися більше про налаштування домену SSSD.
ad_domain (рядок)
Для забезпечення належної роботи цей параметр слід вказати у форматі запису малими літерами повної версії назви домену Active Directory.
Скорочена назва домену (також відома як назва NetBIOS або проста назва) автоматично визначається засобами SSSD.
ad_enabled_domains (рядок)
During the discovery of the domains SSSD will filter out some domains where flags or attributes indicate that they do not belong to the local forest or are not trusted. If ad_enabled_domains is set, SSSD will try to enable all listed domains.
Для належного функціонування значення цього параметра має бути вказано малими літерами у форматі повної назви домену Active Directory. Приклад:
ad_enabled_domains = sales.example.com, eng.example.com
Скорочена назва домену (також відома як назва NetBIOS або проста назва) автоматично визначається засобами SSSD.
Типове значення: не встановлено
ad_server, ad_backup_server (рядок)
Цей список є необов’язковим, якщо увімкнено автоматичне виявлення служб. Докладніші відомості щодо автоматичного виявлення служб наведено у розділі «ПОШУК СЛУЖБ».
Зауваження: довірені домени завжди автоматично визначають сервери, навіть якщо основний сервер явним чином визначено у параметрі ad_server.
ad_hostname (рядок)
Це поле використовується для визначення використаного реєстраційного запису вузла у таблиці ключів та виконання динамічних оновлень DNS. Його вміст має збігатися із назвою вузла, для якого випущено таблицю ключів.
ad_enable_dns_sites (булеве значення)
Якщо вказано значення true і увімкнено визначення служб (див. розділ щодо пошуку служб у нижній частині сторінки підручника (man)), SSSD спочатку спробує визначити сервер Active Directory для встановлення з’єднання на основі використання визначення сайтів Active Directory і повертається до визначення за записами SRV DNS, якщо сайт AD не буде знайдено. Налаштування SRV DNS, зокрема домен пошуку, використовуються також під час визначення сайтів.
Типове значення: true
ad_access_filter (рядок)
У параметрі також передбачено підтримку визначення різних фільтрів для окремих доменів або дерев. Цей розширений фільтр повинен мати такий формат: «КЛЮЧОВЕ СЛОВО:НАЗВА:ФІЛЬТР». Набір підтримуваних ключових слів: «DOM», «FOREST» або ключове слово слід пропустити.
Якщо вказано ключове слово «DOM» або ключового слова не вказано, «НАЗВА» визначає домен або піддомен, до якого застосовується фільтрування. Якщо ключовим словом є «FOREST», фільтр застосовується до усіх доменів з лісу, вказаного значенням «НАЗВА».
Декілька фільтрів можна відокремити символом «?», подібно до способу визначення фільтрів у базах для пошуку.
Визначення участі у вкладених групах має відбуватися із використанням спеціалізованого OID “:1.2.840.113556.1.4.1941:”, окрім повних синтаксичних конструкцій DOM:domain.example.org:, щоб засіб обробки не намагався інтерпретувати символи двокрапки, пов'язані з OID. Якщо ви не використовуєте цей OID, вкладена участь у групах не визначатиметься. Ознайомтеся із прикладом використання, який наведено нижче, і цим посиланням, щоб дізнатися більше про OID: [MS-ADTS] Правила встановлення відповідності у LDAP[2]
Завжди використовується відповідник з найвищим рівнем відповідності. Наприклад, якщо визначено фільтрування для домену, учасником якого є користувач, і загальне фільтрування, буде використано фільтрування для окремого домену. Якщо буде виявлено декілька відповідників з однаковою специфікацією, використовуватиметься лише перший з них.
Приклади:
# застосувати фільтрування лише для домену з назвою dom1: dom1:(memberOf=cn=admins,ou=groups,dc=dom1,dc=com) # застосувати фільтрування лише для домену з назвою dom2: DOM:dom2:(memberOf=cn=admins,ou=groups,dc=dom2,dc=com) # застосувати фільтрування лише для лісу з назвою EXAMPLE.COM: FOREST:EXAMPLE.COM:(memberOf=cn=admins,ou=groups,dc=example,dc=com) # застосувати фільтрування до учасника вкладеної групи у dom1: DOM:dom1:(memberOf:1.2.840.113556.1.4.1941:=cn=nestedgroup,ou=groups,dc=example,dc=com)
Типове значення: не встановлено
ad_site (рядок)
Типове значення: не встановлено
ad_enable_gc (булеве значення)
Будь ласка, зауважте, що вимикання підтримки загального каталогу (Global Catalog) не призведе до вимикання спроб отримати дані користувачів з надійних (довірених) доменів. Просто SSSD намагатиметься отримати ці ж дані за допомогою порту LDAP надійних доменів. Втім, загальним каталогом (Global Catalog) доведеться скористатися для визначення зв’язків даних щодо участі у групах для різних доменів.
Типове значення: true
ad_gpo_access_control (рядок)
Функціональні можливості з керування доступом на основі GPO використовують параметри правил GPO для визначення того, може чи не може той чи інший користувач увійти до системи вузла мережі. Якщо вам потрібна докладніша інформація щодо підтримуваних параметрів правил, зверніться до параметрів “ad_gpo_map”.
Будь ласка, зверніть увагу на те, що у поточній версії SSSD не передбачено підтримки вбудованих груп Active Directory Вбудовані групи до правил керування доступом на основі GPO (зокрема Administrators із SID S-1-5-32-544) SSSD просто ігноруватиме. Див. запис системи стеження за вадами https://pagure.io/SSSD/sssd/issue/5063 .
Перед виконанням керування доступом SSSD застосовує захисне фільтрування на основі правил груп до списку GPO. Для кожного входу користувача до системи програма перевіряє застосовність GPO, які пов'язано із відповідним вузлом. Щоб GPO можна було застосувати до користувача, користувач або принаймні одна з груп, до яких він належить, повинен мати такі права доступу до GPO:
Типово, у GPO є група Authenticated Users, для якої встановлено одразу права доступу Read та Apply Group Policy. Оскільки розпізнавання користувача має бути успішно завершено до захисного фільтрування GPO і запуску керування доступом, до облікового запису користувача завжди застосовуються права доступу групи Authenticated Users щодо GPO.
ЗАУВАЖЕННЯ: якщо встановлено режим роботи «примусовий» (enforcing), можлива ситуація, коли користувачі, які раніше мали доступ до входу, позбудуться такого доступу (через використання параметрів правил GPO). З метою полегшити перехід на нову систему для адміністраторів передбачено дозвільний режим доступу (permissive), за якого правила керування доступом не встановлюватимуться у примусовому порядку. Програма лише перевірятиме відповідність цим правилам і виводитиме до системного журналу повідомлення, якщо доступ було надано усупереч цим правилам. Вивчення журналу надасть змогу адміністраторам внести відповідні зміни до встановлення примусового режиму (enforcing). Для запису до журналу даних керування доступом на основі GPO потрібен рівень діагностики «trace functions» (див. сторінку підручника sssctl(8)).
У цього параметра є три підтримуваних значення:
Типове значення: enforcing
ad_gpo_implicit_deny (булеве значення)
Типове значення: False
У наведених нижче двох таблицях проілюстровано ситуації, у яких користувачеві буде дозволено або відмовлено у доступі на основі прав дозволу або заборони входу, які визначено на боці сервера, і встановленого значення ad_gpo_implicit_deny.
ad_gpo_implicit_deny = False (типове значення) | ||
allow-rules | deny-rules | результати |
missing | missing | дозволені усі користувачі |
missing | present | дозволені лише користувачі, яких немає у deny-rules |
present | missing | дозволені лише користувачі, які є у allow-rules |
present | present | дозволені лише користувачі, які є в allow-rules і яких немає у deny-rules |
ad_gpo_implicit_deny = True | ||
allow-rules | deny-rules | результати |
missing | missing | заборонено усіх користувачів |
missing | present | заборонено усіх користувачів |
present | missing | дозволені лише користувачі, які є у allow-rules |
present | present | дозволені лише користувачі, які є в allow-rules і яких немає у deny-rules |
ad_gpo_ignore_unreadable (булеве значення)
Типове значення: False
ad_gpo_cache_timeout (ціле число)
Типове значення: 5 (секунд)
ad_gpo_map_interactive (рядок)
Зауваження: у редакторі керування правилами для груп це значення має назву «Дозволити локальний вхід» («Allow log on locally») та «Заборонити локальний вхід» («Deny log on locally»).
Можна додати іншу назву служби PAM до типового набору за допомогою конструкції «+назва_служби» або явним чином вилучити назву служби PAM з типового набору за допомогою конструкції «-назва_служби». Наприклад, щоб замінити типову назву служби PAM для цього входу (наприклад, «login») з нетиповою назвою служби pam (наприклад, «my_pam_service»), вам слід скористатися такими налаштуваннями:
ad_gpo_map_interactive = +my_pam_service, -login
Типове значення: типовий набір назв служб PAM складається з таких значень:
ad_gpo_map_remote_interactive (рядок)
Зауваження: у редакторі керування правилами щодо груп це значення називається «Дозволити вхід за допомогою служб віддаленої стільниці» («Allow log on through Remote Desktop Services») та «Заборонити вхід за допомогою служб віддаленої стільниці» («Deny log on through Remote Desktop Services»).
Можна додати іншу назву служби PAM до типового набору за допомогою конструкції «+назва_служби» або явним чином вилучити назву служби PAM з типового набору за допомогою конструкції «-назва_служби». Наприклад, щоб замінити типову назву служби PAM для цього входу (наприклад, «sshd») з нетиповою назвою служби pam (наприклад, «my_pam_service»), вам слід скористатися такими налаштуваннями:
ad_gpo_map_remote_interactive = +my_pam_service, -sshd
Типове значення: типовий набір назв служб PAM складається з таких значень:
ad_gpo_map_network (рядок)
Зауваження: у редакторі керування правилами щодо груп це значення називається «Відкрити доступ до цього комп’ютера із мережі» («Access this computer from the network») і «Заборонити доступ до цього комп’ютера із мережі» (Deny access to this computer from the network»).
Можна додати іншу назву служби PAM до типового набору за допомогою конструкції «+назва_служби» або явним чином вилучити назву служби PAM з типового набору за допомогою конструкції «-назва_служби». Наприклад, щоб замінити типову назву служби PAM для цього входу (наприклад, «ftp») з нетиповою назвою служби pam (наприклад, «my_pam_service»), вам слід скористатися такими налаштуваннями:
ad_gpo_map_network = +my_pam_service, -ftp
Типове значення: типовий набір назв служб PAM складається з таких значень:
ad_gpo_map_batch (рядок)
Зауваження: у редакторі керування правилами щодо груп це значення називається «Дозволити вхід як пакетне завдання» («Allow log on as a batch job») і «Заборонити вхід як пакетне завдання» («Deny log on as a batch job»).
Можна додати іншу назву служби PAM до типового набору за допомогою конструкції «+назва_служби» або явним чином вилучити назву служби PAM з типового набору за допомогою конструкції «-назва_служби». Наприклад, щоб замінити типову назву служби PAM для цього входу (наприклад, «crond») з нетиповою назвою служби pam (наприклад, «my_pam_service»), вам слід скористатися такими налаштуваннями:
ad_gpo_map_batch = +my_pam_service, -crond
Зауваження: назва служби cron у різних дистрибутивах Linux може бути різною.
Типове значення: типовий набір назв служб PAM складається з таких значень:
ad_gpo_map_service (рядок)
Зауваження: у редакторі керування правилами щодо груп це значення називається «Дозволити вхід як службу» («Allow log on as a service») і «Заборонити вхід як службу» («Deny log on as a service»).
Можна додати іншу назву служби PAM до типового набору за допомогою конструкції «+назва_служби». Оскільки типовий набір є порожнім, назви служби з типового набору назв служб PAM вилучити неможливо. Наприклад, щоб додати нетипову назву служби PAM (наприклад, «my_pam_service»), вам слід скористатися такими налаштуваннями:
ad_gpo_map_service = +my_pam_service
Типове значення: not set
ad_gpo_map_permit (рядок)
Можна додати іншу назву служби PAM до типового набору за допомогою конструкції «+назва_служби» або явним чином вилучити назву служби PAM з типового набору за допомогою конструкції «-назва_служби». Наприклад, щоб замінити типову назву служби PAM для безумовного дозволеного доступу (наприклад, «sudo») з нетиповою назвою служби pam (наприклад, «my_pam_service»), вам слід скористатися такими налаштуваннями:
ad_gpo_map_permit = +my_pam_service, -sudo
Типове значення: типовий набір назв служб PAM складається з таких значень:
ad_gpo_map_deny (рядок)
Можна додати іншу назву служби PAM до типового набору за допомогою конструкції «+назва_служби». Оскільки типовий набір є порожнім, назви служби з типового набору назв служб PAM вилучити неможливо. Наприклад, щоб додати нетипову назву служби PAM (наприклад, «my_pam_service»), вам слід скористатися такими налаштуваннями:
ad_gpo_map_deny = +my_pam_service
Типове значення: not set
ad_gpo_default_right (рядок)
Передбачені значення для цього параметра:
Типове значення: deny
ad_maximum_machine_account_password_age (ціле число)
Типове значення: 30 днів
ad_machine_account_password_renewal_opts (рядок)
Типове значення: 86400:750 (24 годин і 15 хвилин)
ad_update_samba_machine_account_password (булеве значення)
Типове значення: false
ad_use_ldaps (булеве значення)
Типове значення: False
ad_allow_remote_domain_local_groups (булеве значення)
Будь ласка, зауважте, що встановлення для цього параметра значення “true” суперечить призначенню локальної групи домену в Active Directory, НИМ СЛІД КОРИСТУВАТИСЯ ЛИШЕ ДЛЯ ПОЛЕГШЕННЯ МІГРАЦІЇ З ІНШИХ РІШЕНЬ. Хоча група існує і користувач може бути учасником групи, їх призначено для використання лише у визначеному для неї домену, а не в інших. Оскільки існує лише один тип груп POSIX, єдиним способом досягти цього з боку Linux є ігнорування цих груп. Зробити це можна також у Active Directory, як можна бачити у PAC квитка Kerberos для локальної служби, або у запитах tokenGroups, де також немає віддалених груп локальних доменів.
З огляду на наведені вище коментарі, якщо для цього параметра встановлено значення “true”, запит tokenGroups має бути вимкнено встановленням “ldap_use_tokengroups” у значення “false” для отримання узгодженого членства користувачів у групах. Крім того, пошук у загальному каталозі має бути пропущено встановленням для параметра “ad_enable_gc” значення “false”. Нарешті, можливо, слід внести зміни до “ldap_group_nesting_level”, якщо віддалені локальні групи домену може бути знайдено лише на глибшому рівні вкладеності.
Типове значення: False
dyndns_update (булеве значення)
ЗАУВАЖЕННЯ: на застарілих системах (зокрема RHEL 5) для надійної роботи у цьому режимі типову область дії Kerberos має бути належним чином визначено у /etc/krb5.conf
Типове значення: true
dyndns_ttl (ціле число)
Типове значення: 3600 (секунд)
dyndns_iface (рядок)
Типове значення: використовувати IP-адреси інтерфейсу, який використовується для з’єднання LDAP AD
Приклад: dyndns_iface = em1, vnet1, vnet2
dyndns_refresh_interval (ціле число)
Типове значення: 86400 (24 години)
dyndns_update_ptr (булеве значення)
Note that dyndns_update_per_family parameter does not apply for PTR record updates. Those updates are always sent separately.
Типове значення: True
dyndns_force_tcp (булеве значення)
Типове значення: False (надати змогу nsupdate вибирати протокол)
dyndns_auth (рядок)
Типове значення: GSS-TSIG
dyndns_auth_ptr (рядок)
Типове значення: те саме, що і dyndns_auth
dyndns_server (рядок)
Встановлення значення для цього параметра потрібне для середовищ, де сервер DNS відрізняється від сервера профілів.
Будь ласка, зауважте, що цей параметр буде використано лише для резервних спроб, якщо попередні спроби із використанням автовиявлення завершаться невдало.
Типове значення: немає (надати nsupdate змогу вибирати сервер)
dyndns_update_per_family (булеве значення)
Типове значення: true
override_homedir (рядок)
%u
%U
%d
%f
%l
%P
%o
%h
%H
%%
Значення цього параметра можна встановлювати для кожного з доменів окремо.
приклад:
override_homedir = /home/%u
Типове значення: не встановлено (SSSD використовуватиме значення, отримане від LDAP)
Будь ласка, зауважте, що домашній каталог для певного перевизначення для користувача, локально (див. sss_override(8)) або централізовано керованих перевизначень ідентифікаторів IPA, має вищий пріоритет, і його буде використано замість значення, вказаного в override_homedir.
homedir_substring (рядок)
Типове значення: /home
krb5_confd_path (рядок)
Щоб вимкнути створення фрагментів налаштувань, встановіть для параметра значення «none».
Типове значення: не встановлено (підкаталог krb5.include.d каталогу pubconf SSSD)
ЗМІНЕНІ ТИПОВІ ПАРАМЕТРИ¶
Деякі типові значення параметрів не збігаються із типовими значеннями параметрів засобу надання даних. Із назвами відповідних параметрів та специфічні для засобу надання даних AD значення цих параметрів можна ознайомитися за допомогою наведеного нижче списку:
Модуль надання даних KRB5¶
Модуль надання даних LDAP¶
Засіб надання даних AD типово шукає інші реєстраційні записи, ніж засіб надання даних LDAP, оскільки у середовищі Active Directory реєстраційні записи поділено на дві групи — реєстраційні записи користувачів і реєстраційні записи служб. Для отримання TGT типово може бути використано лише реєстраційний запис користувача, реєстраційні записи об'єктів комп'ютерів будуються на основі sAMAccountName та області AD. Широко відомий реєстраційний запис host/hostname@REALM є реєстраційним записом служби, отже не може бути використаний для отримання TGT.
Налаштування NSS¶
Засіб надання даних AD автоматично встановлює «fallback_homedir = /home/%d/%u» для надання особистих домашніх каталогів для записів користувачів без атрибута homeDirectory. Якщо ваш домен AD належним чином заповнено щодо атрибутів Posix і ви хочете уникнути такої резервної поведінки, ви можете явним чином вказати «fallback_homedir = %o».
Зауважте, що система типово очікує перебування домашнього каталогу у теці /home/%u. Якщо ви вирішите скористатися іншою структурою каталогів, коригування потребуватимуть деякі інші частини вашої системи.
Наприклад, автоматичне створення домашніх каталогів у поєднанні із selinux потребує коригування параметрів selinux, інакше домашній каталог буде створено у помилковому контексті selinux.
РЕЗЕРВ¶
Можливість резервування надає змогу модулям обробки автоматично перемикатися на інші сервери, якщо спроба встановлення з’єднання з поточним сервером зазнає невдачі.
Синтаксичні конструкції визначення резервного сервера¶
Список записів серверів, відокремлених комами. Між комами можна використовувати довільну кількість пробілів. Порядок у списку визначає пріоритет. У списку може бути будь-яка кількість записів серверів.
Для кожного з параметрів налаштування з увімкненим резервним отриманням існує два варіанти: основний і резервний. Ідея полягає у тому, що сервери з основного списку мають вищий пріоритет за резервні сервери, пошук же на резервних серверах виконується, лише якщо не вдасться з’єднатися з жодним з основних серверів. Якщо буде вибрано резервний сервер, встановлюється час очікування у 31 секунду. Після завершення часу очікування SSSD періодично намагатиметься повторно встановити з’єднання з основними серверами. Якщо спроба буде успішною, поточний активний резервний сервер буде замінено на основний.
Механізм визначення резервного сервера¶
Механізмом резервного використання розрізняються окремі комп’ютери і служби. Спочатку модуль намагається визначити назву вузла вказаного комп’ютера. Якщо спроби визначення зазнають невдачі, комп’ютер вважатиметься від’єднаним від мережі. Подальших спроб встановити з’єднання з цим комп’ютером для всіх інших служб не виконуватиметься. Якщо вдасться виконати визначення, модуль зробити спробу встановити з’єднання зі службою на визначеному комп’ютері. Якщо спроба з’єднання зі службою не призведе до успіху, непрацездатною вважатиметься лише служба, модуль автоматично перемкнеться на наступну службу. Комп’ютер служби вважатиметься з’єднаним з мережею, можливі подальші спроби використання інших служб.
Подальші спроби встановлення з’єднання з комп’ютерами або службами, позначеними як такі, що перебувають поза мережею, буде виконано за певний проміжок часу. У поточній версії цей проміжок є незмінним і дорівнює 30 секундам.
Якщо список комп’ютерів буде вичерпано, основний модуль перейде у режим автономної роботи і повторюватиме спроби з’єднання кожні 30 секунд.
Час очікування на перемикання на резервний ресурс та точне налаштовування¶
Для визначення сервера для з'єднання достатньо одного запиту DNS або декількох кроків, зокрема визначення відповідного сайта або спроба використати декілька назв вузлів у випадку, якщо якісь із налаштованих серверів недоступні. Складніші сценарії можуть потребувати додаткового часу, а SSSD треба збалансувати надання достатнього часу для завершення процесу визначення і використання притомного часу на виконання цього запиту перед переходом до автономного режиму. Якщо діагностичний журнал SSSD показує, що під час визначення сервера перевищено час очікування на з'єднання із працездатним сервером, варто змінити значення параметрів часу очікування.
У цьому розділі наведено списки доступних для коригування параметрів. Будь ласка, ознайомтеся із їхніми описами за допомогою сторінки підручника sssd.conf(5).
dns_resolver_server_timeout
Типове значення: 1000
dns_resolver_op_timeout
Типове значення: 3
dns_resolver_timeout
Типове значення: 6
Для заснованих на LDAP постачальників даних дія з визначення виконується як частина дії зі встановлення з'єднання із LDAP. Тому слід також встановити для часу очікування “ldap_opt_timeout” значення, яке перевищуватиме значення “dns_resolver_timeout”, яке також має перевищувати значення “dns_resolver_op_timeout”, яке має перевищувати значення “dns_resolver_server_timeout”.
ПОШУК СЛУЖБ¶
За допомогою можливості виявлення служб основні модулі мають змогу автоматично визначати відповідні сервери для встановлення з’єднання на основі даних, отриманих у відповідь на спеціальний запит до DNS. Підтримки цієї можливості для резервних серверів не передбачено.
Налаштування¶
Якщо серверів не буде вказано, модуль автоматично використає визначення служб для пошуку сервера. Крім того, користувач може використовувати і фіксовані адреси серверів і виявлення служб. Для цього слід вставити особливе ключове слово, «_srv_», до списку серверів. Пріоритет визначається за вказаним порядком. Ця можливість є корисною, якщо, наприклад, користувач надає перевагу використанню виявлення служб, якщо це можливо, з поверненням до використання певного сервера, якщо за допомогою DNS не вдасться виявити жодного сервера.
Назва домену¶
З докладнішими відомостями щодо параметра «dns_discovery_domain» можна ознайомитися на сторінці підручника (man) sssd.conf(5).
Протокол¶
Запитами зазвичай визначається протокол _tcp. Виключення документовано у описі відповідного параметра.
Також прочитайте¶
Докладніші відомості щодо механізмів визначення служб можна знайти у RFC 2782.
ВСТАНОВЛЕННЯ ВІДПОВІДНОСТІ ІДЕНТИФІКАТОРІВ¶
Можливість встановлення відповідності ідентифікаторів надає SSSD змогу працювати у режимі клієнта Active Directory без потреби для адміністраторів розширювати атрибути користувача з метою підтримки атрибутів POSIX для ідентифікаторів користувачів та груп.
Зауваження: якщо увімкнено встановлення відповідності ідентифікаторів, атрибути uidNumber та gidNumber буде проігноровано. Так зроблено з метою уникання конфліктів між автоматично визначеними та визначеними вручну значеннями. Якщо вам потрібно призначити певні значення вручну, вручну доведеться призначати ВСІ значення.
Будь ласка, зауважте, що зміна параметрів налаштувань, пов’язаних із встановленням відповідності ідентифікаторів, призведе до зміни ідентифікаторів користувачів і груп. У поточній версії SSSD зміни ідентифікаторів не передбачено, отже, вам доведеться вилучити базу даних SSSD. Оскільки кешовані паролі також зберігаються у базі даних, вилучення бази даних слід виконувати, лише якщо сервери розпізнавання є доступними, інакше користувачі не зможуть отримати потрібного їм доступу. З метою кешування паролів слід виконати сеанс розпізнавання. Для вилучення бази даних недостатньо використання команди sss_cache(8), процедура має складатися з декількох кроків:
Крім того, оскільки зміна ідентифікаторів може потребувати коригування інших властивостей системи, зокрема прав власності на файли і каталоги, варто спланувати усе наперед і ретельно перевірити налаштування встановлення відповідності ідентифікаторів.
Алгоритм встановлення відповідності¶
Active Directory надає значення objectSID для всіх об’єктів користувачів і груп у каталозі. Таке значення objectSID можна розбити на компоненти, які відповідають профілю домену Active Directory та відносному ідентифікатору (RID) об’єкта користувача або групи.
Алгоритмом встановлення відповідності ідентифікаторів SSSD передбачено поділ діапазону доступних UID на розділи однакових розмірів, які називаються «зрізами». Кожен зріз відповідає простору, доступному певному домену Active Directory.
Коли SSSD вперше зустрічає запис користувача або групи певного домену, SSSD віддає один з доступних зрізів під цей домен. З метою уможливлення відтворення такого призначення зрізів на різних клієнтських системах, зріз вибирається за таким алгоритмом:
Рядок SID передається алгоритмові murmurhash3 з метою перетворення його на хешоване 32-бітове значення. Для вибору зрізу використовується ціла частина від ділення цього значення на загальну кількість доступних зрізів.
Зауваження: за такого алгоритму можливі збіги за хешем та відповідною цілою частиною від ділення. У разі виявлення таких збігів буде вибрано наступний доступних зріз, але це може призвести до неможливості відтворити точно такий самий набір зрізів на інших комп’ютерах (оскільки в такому разі на вибір зрізів може вплинути порядок, у якому виконується обробка даних). Якщо ви зіткнулися з подібною ситуацією, рекомендуємо вам або перейти на використання явних атрибутів POSIX у Active Directory (вимкнути встановлення відповідності ідентифікаторів) або налаштувати типовий домен з метою гарантування того, що принаймні цей домен матиме еталонні дані. Докладніше про це у розділі «Налаштування».
Налаштування¶
Мінімальне налаштовування (у розділі “[domain/НАЗВА_ДОМЕНУ]”):
ldap_id_mapping = True ldap_schema = ad
За типових налаштувань буде створено 10000 зрізів, кожен з яких може містити до 200000 ідентифікаторів, починаючи з 2000000 і аж до 2000200000. Цього має вистачити для більшості розгорнутих середовищ.
Додаткові
налаштування
ldap_idmap_range_min (ціле число)
Зауваження: цей параметр відрізняється від “min_id” тим, що “min_id” працює як фільтр відповідей на запити щодо цього домену, а цей параметр керує діапазоном призначення ідентифікаторів. Ця відмінність є мінімальною, але загалом варто визначати “min_id” меншим або рівним “ldap_idmap_range_min”
Типове значення: 200000
ldap_idmap_range_max (ціле число)
Зауваження: цей параметр відрізняється від “max_id” тим, що “max_id” працює як фільтр відповідей на запити щодо цього домену, а цей параметр керує діапазоном призначення ідентифікаторів. Ця відмінність є мінімальною, але загалом варто визначати “max_id” більшим або рівним “ldap_idmap_range_max”
Типове значення: 2000200000
ldap_idmap_range_size (ціле число)
ЗАУВАЖЕННЯ: значення цього параметра має бути не меншим за значення максимального запланованого до використання RID на сервері Active Directory. Пошук даних та вхід для будь-яких користувачів з RID, що перевищує це значення, буде неможливим.
Приклад: якщо найсвіжішим доданим користувачем Active Directory є користувач з objectSid=S-1-5-21-2153326666-2176343378-3404031434-1107, «ldap_idmap_range_size» повинне мати значення, яке є не меншим за 1108, оскільки розмір діапазону дорівнює максимальному SID мінус мінімальний SID плюс 1. (Наприклад, 1108 = 1107 - 0 + 1).
Для майбутнього можливого розширення важливо все спланувати наперед, оскільки зміна цього значення призведе до зміни усіх прив’язок ідентифікаторів у системі, отже зміни попередніх локальних ідентифікаторів користувачів.
Типове значення: 200000
ldap_idmap_default_domain_sid (рядок)
Типове значення: not set
ldap_idmap_default_domain (рядок)
Типове значення: not set
ldap_idmap_autorid_compat (булеве значення)
When this option is configured, domains will be allocated starting with slice zero and increasing monotonically with each additional domain.
Зауваження: цей алгоритм є недетерміністичним (залежить від порядку записів користувачів та груп). Якщо з метою сумісності з системою, у якій запущено winbind, буде використано цей алгоритм, варто також скористатися параметром “ldap_idmap_default_domain_sid” з метою гарантування послідовного призначення принаймні одного домену до нульового зрізу.
Типове значення: False
ldap_idmap_helper_table_size (ціле число)
Зауваження: під час прив'язування SID до ідентифікатора UNIX може бути створено додаткові вторинні зрізи, якщо частини RID SID перебувають поза межами діапазону вже створених вторинних зрізів. Якщо значенням ldap_idmap_helper_table_size буде 0, додаткові вторинні зрізи не створюватимуться.
Типове значення: 10
Добре відомі SID¶
У SSSD передбачено підтримку пошуку назв за добре відомими (Well-Known) SID, тобто SID із особливим запрограмованим призначенням. Оскільки типові користувачі і групи, пов’язані із цими добре відомими SID не мають еквівалентів у середовищі Linux/UNIX, ідентифікаторів POSIX для цих об’єктів немає.
Простір назв SID упорядковано службами сертифікації, які виглядають як інші домени. Службами сертифікації для добре відомих (Well-Known) SID є
Написані літерами верхнього регістру ці назви буде використано як назви доменів для повернення повних назв добре відомих (Well-Known) SID.
Оскільки деякі з програм надають змогу змінювати дані щодо керування доступом на основі SID за допомогою назви, а не безпосереднього використання, у SSSD передбачено підтримку пошуку SID за назвою. Щоб уникнути конфліктів, для пошуку добре відомих (Well-Known) SID приймаються лише повні назви. Отже, не можна використовувати як назви доменів у sssd.conf такі назви: «NULL AUTHORITY», «WORLD AUTHORITY», «LOCAL AUTHORITY», «CREATOR AUTHORITY», «MANDATORY LABEL AUTHORITY», «AUTHENTICATION AUTHORITY», «NT AUTHORITY» та «BUILTIN».
ПРИКЛАД¶
У наведеному нижче прикладі припускаємо, що SSSD налаштовано належним чином, а example.com є одним з доменів у розділі [sssd]. У прикладі продемонстровано лише параметри доступу, специфічні для засобу AD.
[domain/EXAMPLE] id_provider = ad auth_provider = ad access_provider = ad chpass_provider = ad ad_server = dc1.example.com ad_hostname = client.example.com ad_domain = example.com
ЗАУВАЖЕННЯ¶
Інструмент керування доступом AD перевіряє, чи не завершено строк дії облікового запису. Дає той самий результат, що і ось таке налаштовування інструмента надання даних LDAP:
access_provider = ldap ldap_access_order = expire ldap_account_expire_policy = ad
Втім, якщо явно не налаштовано засіб надання доступу «ad», типовим засобом надання доступу буде «permit». Будь ласка, зауважте, що якщо вами налаштовано засіб надання доступу, відмінний від «ad», вам доведеться встановлювати усі параметри з’єднання (зокрема адреси LDAP та параметри шифрування) вручну.
Якщо для засобу надання даних autofs встановлено значення “ad”, використовується схема прив'язки атрибутів RFC2307 (nisMap, nisObject, ...), оскільки ці атрибути включено до типової схеми Active Directory.
ТАКОЖ ПЕРЕГЛЯНЬТЕ¶
sssd(8), sssd.conf(5), sssd-ldap(5), sssd-ldap-attributes(5), sssd-krb5(5), sssd-simple(5), sssd-ipa(5), sssd-ad(5), sssd-sudo(5), sssd-session-recording(5), sss_cache(8), sss_debuglevel(8), sss_obfuscate(8), sss_seed(8), sssd_krb5_locator_plugin(8), sss_ssh_authorizedkeys(8), sss_ssh_knownhostsproxy(8), sssd-ifp(5), pam_sss(8). sss_rpcidmapd(5)
AUTHORS¶
Основна гілка розробки SSSD — https://pagure.io/SSSD/sssd/
NOTES¶
- 1.
- підручником з груп захисту Active Directory
- 2.
- [MS-ADTS] Правила встановлення відповідності у LDAP
10/01/2024 | SSSD |