Назад | Перейти на главную страницу

Головная боль конфигурации клиента OpenLDAP во FreeBSD

Я использую FreeBSD 7.2 как сервер NFS и как клиент сервера OpenLDAP (на котором запущен Debian etch). Когда пользователи получают доступ к своим файлам на сервере NFS, UID пользователей просматриваются на сервере ldap и сопоставляются с их именами пользователей (через nsswitch). Моя проблема в том, что даже после настройки FreeBSD в качестве клиента для сервера ldap он не может пройти аутентификацию.

Я знаю, что конфигурация правильная, потому что ввод «ldapsearch» дает мне список всех пользователей на сервере ldap. Я использовал документ в http://www.freebsd.org/doc/en/articles/ldap-auth/client.html сделать конфигурацию. В этих документах чего-то не хватает?

Вот ldap.conf, используемый PAM / NSS:

[root@csastorage /csastore]# cat /usr/local/etc/ldap.conf
#
# LDAP Defaults
#

# See ldap.conf(5) for details
# This file should be world readable but not world writable.

#BASE   dc=example,dc=com
#URI    ldap://ldap.example.com ldap://ldap-master.example.com:666

BASE    dc=cl,dc=csa,dc=iisc,dc=ernet,dc=in
URI     ldaps://<server address>/

TLS_REQCERT     allow
TLS_CACERT      /usr/local/etc/openldap/server.pem


#SIZELIMIT      12
#TIMELIMIT      15
#DEREF          never

pam_login_attribute uid

Для действительно хорошей поддержки OpenLDAP во FreeBSD вам понадобятся:

  • nss_ldap
  • pam_ldap - модуль ldap PAM
  • pam_mkhomedir - для автоматического создания домашнего каталога пользователей из skel после первого входа в систему
  • sudo - с поддержкой LDAP
  • openssh-portable - с патчем LPK (для пользователей ssh-ключей в LDAP)

добавить следующее к /etc/pam.d/sshd

auth    sufficient /usr/local/lib/pam_ldap.so no_warn try_first_pass
account required   /usr/local/lib/pam_ldap.so ignore_authinfo_unavail ignore_unknown_user
session required   /usr/local/lib/pam_mkhomedir.so debug mode=0755 skel=/usr/local/share/skel

к /etc/pam.d/system Добавить

auth            sufficient      /usr/local/lib/pam_ldap.so      no_warn try_first_pass
account         required        /usr/local/lib/pam_ldap.so      ignore_authinfo_unavail ignore_unknown_user
session         required        /usr/local/lib/pam_mkhomedir.so  debug umask=0077 skel=/usr/local/share/skel
password        sufficient      /usr/local/lib/pam_ldap.so      use_authok

заменить группу passwd и sudoers в /etc/nsswitch.conf следующим образом:

group: files cache ldap
passwd: files cache ldap
sudoers: files cache ldap

Вам также необходимо изменить

  • /usr/local/etc/nss_ldap.conf
  • /usr/local/etc/ldap.conf
  • / usr / local / etc / ssh / sshd_config (для поддержки ключей LDAP)
  • /etc/nscd.conf (для кеширования)