序:时隔几年,再次接触ldap,这里做个整体的汇总,记录下,以便以后查阅,后续会继续增补。话不多说,干货备上。
1. Yum安装
yum install -y openldap openldap-servers openldap-clients
2. 准备配置文件
cp /usr/share/openldap-servers/slapd.conf.obsolete /etc/openldap/slapd.conf
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
3. 修改server配置文件slapd.conf # ldap.conf是客户端的配置文件
vim /etc/openldap/slapd.conf
3.1备份配置文件
# cd /etc/openldap/
[root@node5 openldap]# cp slapd.conf slapd.conf.bak
3.2编辑配置文件
1) 设置目录树的后缀
suffix "dc=dianping,dc=com"
2) 设置管理员DN
rootdn "cn=admin,dc=example,dc=com"
3) 设置管理员密码
rootpw redhat
或机密格式, 加密格式可通过 slappasswd命令来生成
rootpw {SSHA}j6OO++o76F2yhww2Cg/+Hy8oDPixx6C3
备注:这里讲下密码的生成方式,rootpw的密码最好用密文形式的,密文形式的密文可以用命令slappasswd来生成。
# /usr/local/openldap/sbin/slappasswd
New password:
Re-enter new password:
{SSHA}BsaRKs65dsw5dhesleHEHEWOE1843decJ
密文就是:{SSHA}BsaRKs65dsw5dhesleHEHEWOE1843decJ
3.3参考样例
# vim slapd.conf
注释掉一下四行
# database dbb
#suffix "dc=my-domain,dc=com"
#checkpoint 1024 15
#rootdn "cn=Manager,dc=my-domain,dc=com"
添加如下内容
# add start by jack 2016/07/01
database bdb
suffix "dc=chinasoft,dc=com"
rootdn "cn=admin,dc=chinasoft,dc=com"
3.4设置ldap日志,在argsfile下面添加如下内容
cat >> /etc/openldap/slapd.conf<<EOF
# add start by jack 2016/07/01
loglevel 296
cachesize 1000
checkpoint 2018 10
EOF
参数说明:
# add start by jack 2016/07/01
loglevel 296 # 日志级别,记录日志信息方便调试,296级别是由256(日志连接/操作/结果)、
32(搜索过滤器处理)、8(连接管理)累加的结果
cachesize 1000 # 设置ldap可以换成的记录数
checkpoint 2018 10 # 可以设置把内存中的数据协会数据文件的操作上,上面设置表示每达到2048KB或者10分钟执行一次,checkpoint即写入数据文件的操作
修改系统日志配置文件
vim /etc/rsyslog.conf # centos5版应该是syslog.conf
local4.* /var/log/ldap.log
service rsyslog restart
3.5修改完配置文件后用以下命令生成新的配置文件,以后不再特殊说明(这一点特别重要)
service slapd start
rm -rf /etc/openldap/slapd.d/*
slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
chown -R ldap:ldap /etc/openldap/slapd.d/
service slapd restart
3.6修改权限
chown -R ldap.ldap /etc/openldap/*
chown -R ldap.ldap /var/lib/ldap/*
3.7启动
service slapd start
netstat -tulnp | grep slapd # 查看是否监听389
3.8初始化库测试库
备注:这一步骤必须得执行,不然用客户端工具连接的时候会报无此对象的错误。
vim example.ldif
dn:dc=dianping,dc=com
objectclass:dcObject
objectclass:organization
o:dianping, Inc.
dc:dianping
dn:cn=admin,dc=dianping,dc=com
objectclass:organizationalRole
cn:admin
导入到ldap中
ldapadd -x -W -D "cn=admin,dc=dianping,dc=com" -f example.ldif #会提示导入的数据
测试查找
ldapsearch -x -b "dc=dianping,dc=com" "(objectclass=*)"
3.9客户端连接测试
用phpldapadmin测试(也可以安装ldap browser或者ldap administrator)
下载地址 phpldapadmin.sourceforge.net/
安装简介:1). 放到apache+php定义的vhost的RootDocument中
2). 修改配置文件 cd ldapadmin/config/;cp config.php.example;config.php
278行开始配置:
$servers = new Datastore();
$servers->newServer('ldap_pla');
$servers->setValue('server','name','dc');
$servers->setValue('server','host','localhost');
$servers->setValue('server','port',389);
$servers->setValue('server','base',array('dc=dianping,dc=com'));
$servers->setValue('login','auth_type','session');
$servers->setValue('login','bind_id','cn=admin,dc=dianping,dc=com'); # 初始登录的id,以下两行可以不定义
$servers->setValue('login','bind_pass','redhat'); # 初始登录的密码
3.10初始化ldap用户
这个在这里不详细描述,简单概述下。创建ldap用户有两种方式,一种是直接手动编辑ldif文件,通过ldapadd命令添加;一种是使用工具(比如migrationtools)来生成ldif文件,然后通过ldapadd命令添加。