Сторінки підручника SSSD
sssd-sudo
5
Формати файлів та правила
sssd-sudo
Налаштовування sudo за допомогою модуля SSSD
ОПИС
На цій сторінці підручника описано способи налаштовування
sudo 8
на роботу у комплексі з sssd
8 та способи кешування правил sudo у
SSSD.
Налаштовування sudo на співпрацю з SSSD
Щоб увімкнути SSSD як джерело правил sudo, додайте sss
до запису sudoers у файлі
nsswitch.conf 5
.
Наприклад, щоб налаштувати sudo на першочерговий пошук правил у стандартному
файлі sudoers
5 (цей файл має містити правила, що
стосуються локальних користувачів), а потім у SSSD, у файлі nsswitch.conf
слід вказати такий рядок:
sudoers: files sss
Докладніші дані щодо налаштовування порядку пошуку у sudoers за допомогою
файла nsswitch.conf, а також дані щодо бази даних LDAP, у якій зберігаються
правила sudo каталогу, можна знайти на сторінці підручника
sudoers.ldap 5
.
Зауваження: щоб у правилах sudo можна було
використовувати мережеві групи або групи вузлів IPA, вам слід належним чином
налаштувати nisdomainname
1 на назву домену NIS (назва цього
домену збігається з назвою домену IPA, якщо використовуються групи вузлів
IPA).
Налаштовування SSSD на отримання правил sudo
На боці SSSD достатньо розширити список служб
дописуванням «sudo» до розділу [sssd]
sssd.conf 5
. Щоб пришвидшити пошуку у LDAP, ви також можете налаштувати
базу пошуку для правил sudo за допомогою параметра
ldap_sudo_search_base.
У наведеному нижче прикладі показано, як налаштувати SSSD на отримання
правил sudo з сервера LDAP.
[sssd]
config_file_version = 2
services = nss, pam, sudo
domains = EXAMPLE
[domain/EXAMPLE]
id_provider = ldap
sudo_provider = ldap
ldap_uri = ldap://example.com
ldap_sudo_search_base = ou=sudoers,dc=example,dc=com
Важливо зауважити, що на платформах, де
передбачено підтримку systemd, немає потреби додавати засіб надання даних
«sudo» до списку служб, оскільки він стає необов'язковим. Втім, замість
нього слід увімкнути sssd-sudo.socket.
Якщо SSSD налаштовано на використання IPA як засобу надання даних ID, засіб
надання даних sudo буде увімкнено автоматично. Базу пошуку sudo буде
налаштовано на використання природного для IPA дерева LDAP
(cn=sudo,$SUFFIX). Якщо у sssd.conf буде визначено будь-яку іншу базу
пошуку, використовуватиметься це значення. Для використання функціональних
можливостей sudo у IPA потреби у дереві compat (ou=sudoers,$SUFFIX) більше
немає.
Механізм кешування правил SUDO
Найбільшою складністю під час розробки підтримки sudo у SSSD було
забезпечення роботи sudo з SSSD так, щоб для користувача джерело даних
надавало дані у один спосіб та з тією самою швидкістю, що і sudo, надаючи
при цьому якомога свіжіший набір правил. Щоб виконати ці умови, SSSD
використовує оновлення трьох типів. Будемо називати ці тип повним
оновленням, інтелектуальним оновленням та оновленням правил.
Використання типу інтелектуального оновлення полягає у
отриманні правил, які було додано або змінено з часу попереднього
оновлення. Основним призначенням оновлення такого типу є підтримання
актуального стану бази даних невеличкими порціями, які не спричиняють
значного навантаження на мережу.
У разі використання повного оновлення всі правила sudo,
що зберігаються у кеші, буде вилучено і замінено на всі правила, які
зберігаються на сервері. Таким чином, кеш буде узгоджено шляхом вилучення
всіх правил, які було вилучено на сервері. Втім, повне оновлення може значно
навантажувати канал з’єднання, а отже його варто використовувати лише
іноді. Проміжок між сеансами повного оновлення має залежати від розміру і
стабільності правил sudo.
У разі використання типу оновлення правил
забезпечується ненадання користувачам ширших дозволів, ніж це було визначено
на сервері. Оновлення цього типу виконується під час кожного запуску
користувачем sudo. Під час оновлення буде виявлено всі правила, які
стосуються користувача, перевірено, чи не завершено строк дії цих правил, і
повторно отримано правила, якщо строк дії правил завершено. Якщо якихось з
правил не буде виявлено на сервері, SSSD виконає позачергове повне
оновлення, оскільки може виявитися, що було вилучено набагато більше правил
(які стосуються інших користувачів).
Якщо увімкнено, SSSD зберігатиме лише правила, які можна застосувати до
цього комп’ютера. Це означає, що зберігатимуться правила, що містять у
атрибуті sudoHost одне з таких значень:
ключове слово ALL
шаблон заміни
мережеву групу (у форматі «+мережева група»)
назву вузла або повну назву у домені цього комп’ютера
одну з IP-адрес цього комп’ютера
одну з IP-адрес мережі (у форматі «адреса/маска»)
Для точного налаштовування поведінки передбачено доволі багато параметрів
Будь ласка, зверніться до розділу «ldap_sudo_*» у
sssd-ldap 5
та «sudo_*» у
sssd.conf 5
, щоб ознайомитися з докладним описом.
Коригування швидкодії
SSSD використовує різні типи механізмів із складнішими або простішими
фільтрами LDAP для підтримання актуальності кешованих правил sudo. У типових
налаштуваннях використано значення, які мають задовольнити потреби більшості
наших користувачів, але у наступних абзацах міститься декілька підказок щодо
того, як скоригувати налаштування до ваших потреб.
1. Індексуйте атрибути LDAP. Переконайтеся, що
індексуються такі атрибути LDAP: objectClass, cn, entryUSN та
modifyTimestamp.
2. Встановіть ldap_sudo_search_base. Встановіть основу
для пошуку так, щоб вона вказувала на контейнер, який містить правила sudo
для обмеження області пошуку.
3. Встановіть інтервал повного і кмітливого
оновлення. Якщо ваші правила sudo змінюються нечасто, і вам не
потрібне швидке оновлення кешованих правил на ваших клієнтах, ви можете
збільшити значення ldap_sudo_full_refresh_interval і
ldap_sudo_smart_refresh_interval. Крім того, варто
вимкнути кмітливе оновлення встановленням
ldap_sudo_smart_refresh_interval = 0.
4. Якщо у вас багато клієнтів, вам варто збільшити значення
ldap_sudo_random_offset, щоб краще розподілити
навантаження на сервер.