Справка по 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 в случае использования групп узлов).
Настройка 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 настроена на использование собственного дерева 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 для лучшего распределения
нагрузки на сервер.