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 в случае использования групп узлов).

Настройка 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 настроена на использование собственного дерева LDAP IPA (cn=sudo,$SUFFIX). Если в sssd.conf определена какая-либо другая база поиска, будет использоваться это значение. Дерево совместимости (ou=sudoers,$SUFFIX) больше не является необходимым для работы sudo IPA.

Механизм кэширования правил SUDO

При разработке поддержки sudo в SSSD сложнее всего было сделать так, чтобы работа sudo c SSSD в качестве источника данных обеспечивала такие же скорость и взаимодействие с пользователем, что и sudo, при этом предоставляя настолько актуальный набор правил, насколько это возможно. Для этого в SSSD используются три вида обновлений: полное обновление, интеллектуальное обновление и обновление правил.

Интеллектуальное обновление периодически загружает правила, которые являются новыми или были изменены после последнего обновления. Основная задача — увеличивать базу данных путём получения небольших порций данных, что не создаёт большой сетевой трафик.

Полное обновление просто удаляет все правила sudo, которые хранятся в кэше, и заменяет их всеми правилами, которые хранятся на сервере. Это позволяет поддерживать согласованность кэша: удаляются все те правила, которые были удалены с сервера. Однако полное обновление может генерировать большое количества трафика, поэтому его следует выполнять только иногда (промежуток между обновлениями зависит от размера и стабильности правил sudo).

Обновление правил обеспечивает, что пользователю не будет предоставлено больше прав, чем определено. Это обновление выполняется при каждом запуске sudo пользователем. Обновление правил находит все правила, которые применяются к этому пользователю, проверяет срок их действия и повторно загружает их, если этот срок истёк. Если на сервере отсутствуют какие-либо из таких правил, SSSD выполнит общее полное обновление, так как могло быть удалено гораздо больше правил (применяемых к другим пользователям).

Если этот параметр включён, SSSD будет сохранять только правила, которые могут быть применены к этому компьютеру. Это те правила, которые содержат в атрибуте sudoHost одно из следующих значений:

    • ключевое слово ALL

    • подстановочный знак

    • сетевая группа (в виде «+netgroup»)

    • имя узла или полное доменное имя компьютера

    • один из IP-адресов компьютера

    • один из IP-адресов сети (в виде «address/mask»)

Предусмотрено много параметров, которыми можно воспользоваться для настройки поведения программы. Подробное описание доступно в разделах «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://github.com/SSSD/sssd/