Продолжая тему интеграции работающих сервисов с единой директорией
каталогов (LDAP), реализовал аутентификацию пользователей в Solaris 10
через PAM-модуль pam_ldap.
План следующий:
1. Подготовить LDAP-каталог для хранения данных о пользователях
2. Подготовить систему для работы с LDAP-каталогом
3. Настроить PAM-конфигурацию для работы с LDAP
4. Протестировать работоспособность
Перед тем как приступать к сборке всего этого "конструктора", советую
ознакомиться (освежить в памяти) с документацией по PAM-модулям.
1. Подготовка LDAP-каталога
В LDAP-директории должны существовать записи о пользователях, которые
будут иметь доступ к системе. Пример записи:
Также в LDAP-директории должен быть определен пользователь, имеющий
доступ к "ветке" со всеми пользователями (доступ к паролям
пользователей ему необязателен) - он будет использоваться для доступа
к LDAP от имени системы. В рассматриваемом примере такой пользователь
- cn=manager, o=Organization,c=lt (с паролем 'neskazu').
2. Подготовка операционной системы для работы с LDAP-директорией
В Solaris 10 (и прежних, как оказалось, версиях) есть команда
ldapclient, которая все сделает сама - нужно только правильно
сформировать запрос. Если указываемые значения содержат пробелы, их
необходимо обрамлять одинарными скобками. Например, на моей системе
это выглядело так:
ldapclient manual -v -a credentialLevel=proxy -a
authenticationMethod=simple -a 'proxyDN=cn=manager,o=My
Organization,c=lt' -a proxyPassword=neskazu -a
'defaultsearchbase=o=My Organization,c=lt '195.44.44.3
Команда создаст в системе необходимые для работы с LDAP файлы и
кое-что изменит не совсем верно - это касается файла
/etc/nsswitch.conf. В данном файле нужно будет поправить строку,
добавив запись возможность использовать dns для преобразования
dns-имен хостов (resolving)
hosts: dns ldap [NOTFOUND=return] files
Если все прошло без ошибок, то по команде getent passwd
other auth requisite pam_authtok_get.so.1
# other auth required pam_dhkeys.so.1
other auth required pam_unix_cred.so.1
other auth sufficient pam_unix_auth.so.1
other auth required pam_ldap.so.1
other account requisite pam_roles.so.1
other account sufficient pam_unix_account.so.1
other account required pam_ldap.so.1
С включенным модулем pam_dhkeys система отказывалась аутентифицировать
LDAP-пользователей. Поинтересовавшись, что это за модуль и поняв,
что я его не использую, закомментировал зверя.
Если в pam.conf какая-то служба описана отдельно (например
xscreensaver), то для нее необходимо также указать использование
модуля pam_ldap как и для 'other'.
После проделывания вышеприведенных процедур все должно заработать.
Если что-то не так, то на помощь приходит Syslog-система, правда
прежде чем ею воспользоваться, её конфигурационный файл
(/etc/syslog.conf) тоже требует доработки - например, такой:
auth.debug /var/log/authlog
причем, если файл /var/log/authlog не создан, создать пустышку и
заставить syslog перечиать свой файл конфигурации
Ссылки:
1. LDAP Authentication in Solaris 10
2. Solaris 10 and Active Directory Integration
3. Подключаемые Модули Аутентификации (PAM)
4. PAM Administration (pdf)
5. Manual Page for ldapclient
589 Прочтений • [LDAP аутентификация в Solaris (solaris ldap auth)] [08.05.2012] [Комментариев: 0]