Sudo/Domain: различия между версиями
Нет описания правки |
|||
Строка 22: | Строка 22: | ||
== Изменение LDAP схемы == | == Изменение LDAP схемы == | ||
Схема LDAP для хранения правил sudo - https://github.com/sudo-project/sudo/blob/main/docs/schema.ActiveDirectory | |||
=== Microsoft ActiveDirectory === | === Microsoft ActiveDirectory === | ||
Для MS AD все достаточно просто. | |||
1. Скачиваем файл схемы - https://raw.githubusercontent.com/sudo-project/sudo/main/docs/schema.ActiveDirectory | |||
2. В скачаном файле меняем DC=X на корень нашего домена (к примеру, DC=test,DC=alt) | |||
3. В консоли с правами доменного администратора, втягиваем схему командой | |||
ldifde -i -f schema.ActiveDirectory -c "CN=Schema,CN=Configuration,DC=X" #schemaNamingContext | |||
{{span||}} | |||
=== Samba DC === | === Samba DC === | ||
Не смотря на всю схожесть с AD, конфигурация данного решения требует некоторых корректив | Не смотря на всю схожесть с AD, конфигурация данного решения требует некоторых корректив | ||
== Примечания == | == Примечания == | ||
Все это работает при использовании sssd. В случае использования winbind, вероятно, придется | Все это работает при использовании sssd. В случае использования winbind, вероятно, придется пересобирать sudo с поддержкой ldap (получив в награду небезопасное решение). | ||
== Ссылки по теме == | == Ссылки по теме == | ||
# https://github.com/sudo-project/sudo/blob/main/docs/schema.ActiveDirectory | |||
# https://learn.microsoft.com/ru-ru/windows/win32/secauthz/sid-strings | # https://learn.microsoft.com/ru-ru/windows/win32/secauthz/sid-strings | ||
# https://learn.microsoft.com/ru-ru/windows/win32/secauthz/security-descriptor-string-format | # https://learn.microsoft.com/ru-ru/windows/win32/secauthz/security-descriptor-string-format | ||
# https://learn.microsoft.com/ru-ru/windows/win32/secauthz/security-descriptor-definition-language-for-conditional-aces- | # https://learn.microsoft.com/ru-ru/windows/win32/secauthz/security-descriptor-definition-language-for-conditional-aces- |
Версия от 08:14, 4 декабря 2023
Предназначение
В доменной среде удобно размещать правила sudo не в виде отдельных файлов в /etc/sudoers.d, а хранить их в LDAP каталоге. Именно это реализовано при использовании домена на базе FreeIPA. Но и в среде AD/Samba такая же возможность присутствует и не сложна в настройке. Ниже я опишу 2 варианта конфигурации исходя из того на базе чего поднят домен.
Для того, чтобы иметь возможность хранить правила sudo в LDAP, нужно расширить текущую схему добавив класс sudoRole и его атрибуты.
Формат правил sudo
Класс sudoRole предоставляет множество опций задания правил. Самые базовые это sudoCommand, sudoHost, sudoUser. Кроме этого доступны также sudoOption, sudoRunAsUser, sudoRunAsGroup, sudoNotBefore, sudoNotAfter и т.п.
Таким образом, правило с именем run-coreutils разрешающее запускать /bin/ls, /usr/bin/cat для пользователя username1 и username2 на всех хостах без запроса пароля будет выглядеть примерно так
cn=run-coreutils,ou=sudoers,dc=test,dc=alt sudoCommand: /bin/ls sudoCommand: /usr/bin/cat sudoHost: ALL sudoUser: username1 sudoUser: username2 sudoOption: !authenticate
Для задания имени пользователя можно использовать короткое имя (username1), длинное (username1@test.alt), числовой идентификатор (#12345678). Для группы перед именем указывается знак % - (%mygroup)
Изменение LDAP схемы
Схема LDAP для хранения правил sudo - https://github.com/sudo-project/sudo/blob/main/docs/schema.ActiveDirectory
Microsoft ActiveDirectory
Для MS AD все достаточно просто. 1. Скачиваем файл схемы - https://raw.githubusercontent.com/sudo-project/sudo/main/docs/schema.ActiveDirectory 2. В скачаном файле меняем DC=X на корень нашего домена (к примеру, DC=test,DC=alt) 3. В консоли с правами доменного администратора, втягиваем схему командой
ldifde -i -f schema.ActiveDirectory -c "CN=Schema,CN=Configuration,DC=X" #schemaNamingContext
Samba DC
Не смотря на всю схожесть с AD, конфигурация данного решения требует некоторых корректив
Примечания
Все это работает при использовании sssd. В случае использования winbind, вероятно, придется пересобирать sudo с поддержкой ldap (получив в награду небезопасное решение).
Ссылки по теме
- https://github.com/sudo-project/sudo/blob/main/docs/schema.ActiveDirectory
- https://learn.microsoft.com/ru-ru/windows/win32/secauthz/sid-strings
- https://learn.microsoft.com/ru-ru/windows/win32/secauthz/security-descriptor-string-format
- https://learn.microsoft.com/ru-ru/windows/win32/secauthz/security-descriptor-definition-language-for-conditional-aces-