Следующие работы для RHEL 6.x. С Fedora это может работать с очень небольшими изменениями или без изменений, хотя это не было проверено.
Вам нужны пакеты nss-pam-ldapd и openldap-клиентов. В зависимости от того, как вы хотите, чтобы все работало, вы также можете добавить nscd и / или nslcd поверх этого. Установите необходимые пакеты с помощью yum -y install nss-pam-ldapd openldap-clients
, команда также может выдавать некоторые пакеты зависимостей.
Здесь все может стать немного волосатым. Возможно, вы захотите, чтобы произошли две вещи: 1) аутентификация пользователей по LDAP и 2) наличие пользовательских записей для передачи passwd/group также из LDAP. Я не собираюсь углубляться в последнее, потому что это сильно зависит от доступных объектов LDAP и их атрибутов. Первый довольно простой, хотя.
Для аутентификации пользователей из LDAP, независимо от того, как они подключаются (это может быть локальный виртуальный терминал, SSH-соединение, локальный сеанс X11 GDM или почти все), вы используете PAM. Файлы, как правило, находятся в /etc/pam.d
и в RHEL, с чем вы действительно хотите поиграть, это /etc/pam.d/system-auth
. Несколько других файлов, таких как /etc/pam.d/password-auth
являются символическими ссылками на этот файл. Файл /etc/pam.d/system-auth
консультируются при аутентификации пользователя, если нет конфигурации PAM конкретной службы (например , /etc/pam.d/sshd
, которые в системах RHEL, хотя, консультируется / и /etc/pam.d/system-auth
- подробности см. в содержимом файла).
Следующий пример позволит вашим пользователям проходить аутентификацию с локального пароля (то есть /etc/passwd
/ /etc/shadow
), а затем с LDAP. Идея состоит в том, что локальные пароли переопределяют пароли LDAP, но на самом деле вы можете захотеть использовать их наоборот, т.е. так что локальный пароль - это запасной вариант вместо LDAP. Далее следует поместить в файл /etc/pam.d/system-auth
(оставьте остальную часть /etc/pam.d/system-auth
как есть, не заменяйте все содержимое файла следующим):
auth sufficient pam_unix.so nullok try_first_pass # try a local passwd entry
auth sufficient pam_ldap.so use_first_pass # try a LDAP entry
auth required pam_deny.so # deny access if both passwd and LDAP fails
В дополнение к определению того, как ваши пользователи проходят аутентификацию, вам нужно сообщить pam_ldap.so о вашем сервере LDAP. Это определено в /etc/ldap.conf
. Страницу руководства для этого файла можно прочитать с помощью man pam_ldap
тогда как man ldap.conf
сгенерирует запись файла конфигурации клиентской библиотеки OpenLDAP (/etc/openldap/ldap.conf
) на вашем терминале. Минимум для вашего /etc/ldap.conf
для pam_ldap.so будет примерно таким:
base <your_base_dn> # ou=Admin,o=Organization
uri <your_uri> # ldap://ldapsrv.org.com/
bind_policy soft # you might want to use hard too, but usually not
ssl off # you really should be using SSL/TLS
Предполагая, что ваш сервер LDAP возвращает правильные объекты posixAccount (скорее всего, это не тот случай, если вы используете Microsoft AD, для которой требуются дополнительные пакеты для возврата объектов posixAccount), это должно быть сделано, и теперь ваши пользователи должны иметь возможность аутентифицировать себя на вашем Сервер LDAP. Им все еще нужна локальная запись в /etc/passwd
для их UID и так далее. Если вы хотите получить всю информацию о пользователях из LDAP, а не просто аутентифицировать их на своем сервере LDAP, вам нужно взглянуть на механизм nsswitch (см., Например, man nss
, man nsswitch.conf
, man nslcd.conf
).
Теперь это абсолютный минимум, и он не очень полезен и не безопасен. Скорее всего, вы хотите использовать pam_access.so для некоторых белых списков для пользователей и pam_env.so для удобства использования и так далее.