- Вопрос или проблема
- Ответ или решение
- 1. Обновление конфигурации nsswitch.conf
- 2. Настройка sssd.conf
- 3. Убедитесь в наличии схемы sudoers в LDAP
- 4. Создание правил sudo в LDAP
- 5. Конфигурация PAM (Pluggable Authentication Modules)
- 6. Проверка конфигураций
- 7. Проверка работоспособности
- 8. Обзор логов
- Заключение
Вопрос или проблема
У меня проблема с конфигурацией 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 или выполните поиск по специфическим проблемам, связанным с вашей конфигурацией или версией ПО.