Получение sudoers через LDAP (SUSE Linux Enterprise Server 12)

Вопрос или проблема

У меня проблема с конфигурацией LDAP на SUSE Linux Enterprise Server 12.

Как многие из вас знают, файл ldap.conf был заменен на sssd.conf и несколько других конфигурационных файлов, таких как nsswitch.conf.

Я хочу настроить аутентификацию через LDAP, выбирая пользователей из определенного OU. Мне также нужно получить определение для sudoers через LDAP. Я никогда раньше не работал с sssd.

Моя текущая конфигурация NSS выглядит следующим образом:

passwd: files ldap
shadow: files ldap
group:  files ldap

hosts:  files dns
networks:       files

services:       files
protocols:      files
rpc:    files
ethers: files
netmasks:       files
netgroup:       files nis
publickey:      files

bootparams:     files
automount:      files nis
aliases:        files
passwd_compat:  files
group_compat:   files
sudoers:        ldap files [я добавил эту строку]

А вот и мой sssd.conf:

[sssd]
config_file_version = 2
services = nss, pam
domains = *****
sbus_timeout = 30

[nss]
filter_users = root
filter_groups = root
reconnection_retries = 3
entry_cache_timeout = 300
entry_cache_nowait_percentage = 75

[pam]

[domain/GuH]
id_provider = ldap
auth_provider = ldap
ldap_schema = rfc2307bis
ldap_user_object_class = posixAccount
debug_level = 20
#access_provider = ldap
ldap_uri = ldap://******.de
ldap_search_base = o=***
create_homedir = truei
ldap_tls_cacert = /etc/sssd/certs/*******.pem
ldap_tls_cacertdir = /etc/sssd/certs
ldap_id_use_start_tls = true
ldap_default_bind_dn = cn=********,o=guh
ldap_default_authtok_type = *******
ldap_default_authtok = *********
ldap_user_member_of = *********
ldap_group_name = cn=*******,ou=*******,ou=******,o=******

Просто предположите, что * заполнены правильно.

К тому же, нужно ли что-то делать в конфигурационном файле PAM? Я еще не видел, чтобы кто-то это упоминал.

Этот путеводитель сработал для меня на Ubuntu 14.04. Также страница Redhat, на которую ссылаются в комментариях, больше не упоминает authconfig. Основные моменты:

  • Если ваш LDAP не включает это, импортируйте схему sudoers (например, schema.ActiveDirectory требуется для Active Directory)
  • Создайте правила согласно мануалу sudoers-ldap (в Active Directory с помощью инструмента вроде ADSI Edit)
  • Обновите etc/nsswitch.conf, чтобы включить sss среди sudoers =
  • Обновите etc/sssd/sssd.conf, чтобы включить:
    • sudo среди services =
    • строку sudo_provider = (в моем случае ad для Active Directory, но возможно ldap)
    • пустой раздел [sudo] (конфигурации не требуются, но Redhat утверждает, что это вызывает правильную конфигурацию поддержки sudo)

Многие сталкивались с проблемами из-за ошибок в различных частях стека, поэтому смотрите этот ответ и этот вопрос, если у вас есть какие-либо проблемы. Для информации эти инструкции дали мне достаточно отладочной информации, чтобы подтвердить, что правила доходят до sudo, а именно:

  • Добавьте следующие строки в /etc/sudo.conf:

    Debug sudo /var/log/sudo_debug.log all@debug
    Debug sudoers.so /var/log/sudo_debug.log all@debug
    
  • Запустите команду sudo от имени пользователя, которого вы хотите отладить

Ответ или решение

Для настройки получения sudoers через LDAP на SUSE Linux Enterprise Server 12 с использованием SSSD необходимо выполнить несколько шагов, чтобы правильно настроить конфигурацию и удостовериться, что пользователи и права доступа на sudo получаются из LDAP.

1. Обновление конфигурации nsswitch.conf

В вашем текущем файле /etc/nsswitch.conf вы добавили строку для подключения sudoers через LDAP. Убедитесь, что строка выглядит следующим образом:

sudoers: ldap files

Это позволит системе сначала искать определение для sudoers в LDAP, а затем, если не будет найдено, проверять локальные файлы.

2. Настройка sssd.conf

В вашем файле /etc/sssd/sssd.conf необходимо внести изменения для поддержки конфигурации sudoers на основе LDAP. Добавьте следующие строки в секцию [sssd] и создайте новый раздел [sudo]:

[sssd]
config_file_version = 2
services = nss, pam, sudo
domains = *****  ; ваш домен

[sudo]
sudo_provider = ldap

Обратите внимание, что строка services теперь включает в себя sudo.

3. Убедитесь в наличии схемы sudoers в LDAP

Если ваша LDAP-система не включает схему для sudoers, вам нужно её импортировать. В зависимости от используемого типа LDAP (например, Active Directory или OpenLDAP) это может быть различным. Например, для Active Directory необходимо применить schema.ActiveDirectory.

4. Создание правил sudo в LDAP

Следующим шагом необходимо определить правила для sudo в вашей LDAP-базе данных. Используйте любые инструменты типа ldp, чтобы добавить нужные правила в раздел, который вы хотите, например:

dn: cn=“sudo”,ou=sudoers,dc=example,dc=com
objectClass: top
objectClass: sudoRole
cn: sudo
sudoCommand: ALL
sudoHost: ALL
sudoUser: username

Данный пример показывает, как разрешать пользователю username выполнять любые команды с помощью sudo.

5. Конфигурация PAM (Pluggable Authentication Modules)

Вам нужно удостовериться, что настроены необходимые модули PAM для поддержкиLDAP. Проверьте файл /etc/pam.d/common-auth и добавьте в него следующее, если это не было сделано ранее:

auth required pam_env.so
auth sufficient pam_unix.so nullok_secure
auth requisite pam_succeed_if.so uid >= 1000 quiet
auth required pam_permit.so

И в файле /etc/pam.d/sudo убедитесь, что у вас есть следующая строка:

auth required pam_sss.so

6. Проверка конфигураций

После внесения всех изменения вам нужно перезапустить сервис sssd, чтобы изменения вступили в силу:

sudo systemctl restart sssd

7. Проверка работоспособности

Для диагностики возможных проблем очень важно активировать отладку:

Измените файл /etc/sssd/sssd.conf, добавив уровень отладки:

debug_level = 5

Также, чтобы помочь в отладке доступа к sudo, добавьте строки в /etc/sudo.conf:

Debug sudo /var/log/sudo_debug.log all@debug
Debug sudoers.so /var/log/sudo_debug.log all@debug

8. Обзор логов

После выполнения всех вышеописанных шагов проверяйте логи по пути /var/log/sudo_debug.log и journalctl -xe для обнаружения ошибок и определения источников проблем.

Заключение

Следуя указанным шагам и настройкам, вы сможете успешно настроить систему SUSE Linux Enterprise Server 12 для использования sudoers через LDAP с помощью SSSD. Убедитесь в корректности всех введенных данных и наличии необходимых прав у пользователей для выполнения команд с использованием sudo. При возникновении сложностей обратитесь к документации SSSD или выполните поиск по специфическим проблемам, связанным с вашей конфигурацией или версией ПО.

Оцените материал
Добавить комментарий

Капча загружается...