SSSD-SUDO(5)

NAME
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]
    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, щоб краще розподілити навантаження на сервер.

ТАКОЖ ПЕРЕГЛЯНЬТЕ

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-files(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(1), sss_ssh_knownhosts(1), sssd-ifp(5), pam_sss(8). sss_rpcidmapd(5)

AUTHORS

Основна гілка розробки SSSD — https://pagure.io/SSSD/sssd/