FreeBSD中的OpenLDAP客户端configuration令人头疼

我使用FreeBSD 7.2作为NFS服务器,并作为OpenLDAP服务器(运行Debian etch)的客户端。 当用户访问NFS服务器上的文件时,用户的UID在ldap服务器中查找并映射到用户名(通过nsswitch)。 我的问题是,即使在将FreeBSDconfiguration为ldap服务器的客户端之后,也无法进行身份validation。

我知道configuration是正确的,因为input“ldapsearch”给我一个ldap服务器上所有用户的列表。 我使用http://www.freebsd.org/doc/en/articles/ldap-auth/client.html上的文档来进行configuration。 这些文档中是否有缺失?

这是PAM / NSS使用的ldap.conf:

[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 

对于FreeBSD下非常好的OpenLDAP支持,您需要:

  • NSS_LDAP
  • pam_ldap – PAM ldap模块
  • pam_mkhomedir – 首次login后从skel自动创build用户的homedir
  • sudo – 带有LDAP支持
  • openssh-portable – 带有LPK补丁(用于LDAP中的用户ssh密钥)

将以下内容添加到/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 

/etc/nsswitch.confreplacegroup passwd和sudoers如下:

 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(用于caching)