Ubuntu14.04配置LDAP Client

Ubuntu 14.04系统上配置LDAP客户端的过程,记录一下。

sudo apt-get install ldap-utils ldap-auth-client libnss-ldap libpam-ldap

安装过程中提示填写ldap相关信息:ldap server地址,base dc等,信息保存在/etc/ldap.conf中,可通过dpkg-reconfigure ldap-auth-config重新配置,其中:

lda地址格式 ldap://192.168.x.x:389
Distinguished name of the search base: 就是你目录树的根,比如我的是dc=163,dc=com
LDAP version to use: 3
Make local root Database admin: Yes
Does the LDAP database require login? No
LDAP account for root:  安装LDAP服务器时的创建的admin账号,我的是cn=admin,dc=163,dc=com
LDAP root account password: 

修改/etc/nsswitch.conf文件,添加ldap登陆方式,同时系统查找顺序,以便在查询 LDAP服务器之前先检查您的本地passwd文件

sudo cp -p /etc/nsswitch.conf /etc/nsswitch.conf.bak
sudo auth-client-config -t nss -p lac_ldap

可以看到,执行完命令以后,nsswitch.conf文件变成了如下内容

……
passwd: files ldap
group:  files ldap
shadow: files ldap
……

修改/etc/pam.d/common-password,使得执行passwd时密码可以同步到LDAP服务器上去

sudo vim /etc/pam.d/common-password
……
#找到第26行(删除use_authtok字段)
password     [success=1 user_unknown=ignore default=die]     pam_ldap.so try_first_pass
……

如果未操作这一步,登陆的LDAP用户在执行passwd命令修改密码时,会提示passwd: Authentication information cannot be recovered的错误

自动创建home目录
让pam_mkhomedir.so模块正常工作,用户第一次登录的时候创建主目录

sudo vim /etc/pam.d/common-session
#在末尾添加一行(必须添加在pam_ldap和pam_krb5项之前)
session required        pam_mkhomedir.so umask=0022 skel=/etc/skel
sudo /etc/init.d/libnss-ldap restart

sudo /etc/init.d/nscd restart  #ubuntu12.04还需要此步,否则会提示Unknown id: username

然后可以测试连接一下LDAP Server了

ldapsearch -H ldap://192.168.x.x:389 -x -b "ou=People,dc=163,dc=com" | grep dn

测试过程中如果遇到错误,请查看本机的/var/log/auth.log分析原因

参考文档:
Ubuntu LDAPClientAuthentication
Ubuntu 14.04 OpenLDAP 服务器
Configure LDAP Client

发表评论

电子邮件地址不会被公开。