Alpine Linux+ldap_pam: можно войти через ssh, нельзя использовать su или sudo с ldap-учетными записями.

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

Я установил nss-pam-ldapd на сервер Alpine Linux, отредактировал nslcd.conf для использования ldap-сервера, который у меня запущен в другом месте, и добавил “UsePAM yes” в /etc/ssh/sshd_config. У меня есть две локальные учетные записи: root и admin, и одна ldap-учетная запись: ldapuser.

  • Я могу подключиться по SSH к серверу как admin или ldapuser.
  • Как admin, я могу выполнить sudo -u ldapuser echo hello.
  • Как admin, я не могу выполнить su ldapuser.
  • Как root, я могу выполнить su для admin и ldapuser.
  • Как ldapuser, я могу выполнить su для root и admin.

В общем, кажется, что всё работает идеально, если единственными учетными записями, участвующими в этом, есть запись в /etc/shadow. Исследования в интернете, похоже, предполагают, что я могу решить любые проблемы с входом с помощью конфигурационных файлов /etc/pam.d, но они, похоже, ничего не делают для su. В качестве эксперимента я закомментировал “auth sufficient pam_rootok.so” из /etc/pam.d/su, и root по-прежнему может выполнять su как любой пользователь без пароля.

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

Проблема с доступом через su и sudo для LDAP-учётных записей в Alpine Linux

Введение

При настройке серверов на базе Alpine Linux для работы с LDAP и PAM (Pluggable Authentication Module) могут возникать сложности с правами доступа, особенно при использовании инструментов вроде su и sudo. В данном случае рассмотрим проблему, когда пользователь ldapuser может войти в систему через SSH, но не может использовать su или sudo для переключения на своего пользователя.

Анализ ситуации

На основе предоставленных данных, мы имеем следующую конфигурацию:

  • Установлен пакет nss-pam-ldapd.
  • Настроен файл /etc/nslcd.conf для подключения к LDAP-серверу.
  • Включена опция UsePAM yes в конфигурационном файле SSH (/etc/ssh/sshd_config).
  • У нас есть три учётные записи: локальные admin и root, а такжеLDAP-учётная запись ldapuser.

Пользователь ldapuser может войти по SSH, имеет доступ к sudo (через администратора admin), но возникают трудности при использовании su и sudo для переключения на других пользователей.

Проблемы с PAM

Основные проблемы можно отнести к конфигурации PAM, которая управляет процессом аутентификации. Важно проверить, как настроены файлы PAM для команд su и sudo.

  1. Проверка /etc/pam.d/su:
    Конфигурация PAM для su должна включать проверку на возможность использования LDAP-учётных записей. Убедитесь, что файл содержит следующие строки:

    auth required pam_unix.so
    auth sufficient pam_ldap.so
    account sufficient pam_unix.so
    account sufficient pam_ldap.so

    Если pam_unix.so стоит в первом приоритете, это может блокировать доступ к учётным записям LDAP, если система не может использовать стандартные локальные пароли.

  2. Проверка /etc/pam.d/sudo:
    Аналогично проверьте конфигурацию PAM для sudo. Он должен выглядеть следующим образом:

    auth required pam_unix.so
    auth sufficient pam_ldap.so
    account required pam_unix.so
    account sufficient pam_ldap.so

    Важно, чтобы обе системы аутентификации были равноправными, давая при этом приоритет LDAP, если это необходимо.

Отладка

  • Убедитесь, что файлы конфигурации PAM загружаются корректно. Для диагностики можно использовать журнал /var/log/auth.log или включить отладочные сообщения в PAM, добавив debug в строках аутентификации.

  • Также можно использовать команды для проверки правил PAM, например:

    sudo strace -e trace=open,read chmod 0400 /etc/shadow

Это позволит отследить, какие файлы открываются при вызове su и sudo, и как происходит обработка аутентификации.

Заключение

Чтобы решить проблему с возможностью использования su и sudo для LDAP-учётных записей на Alpine Linux, важно сконфигурировать файлы PAM правильно, удостоверившись, что поддержка LDAP включена. Рекомендуется также тщательно проверять логи и включать отладочные сообщения при необходимости.

Следуя этим рекомендациям, вы сможете восстановить возможность полнофункционального доступа для LDAP-учётной записи ldapuser.

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

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