一、定义DIT,目录信息树
1. suffix后缀,建议使用公司DNS域名作为整个DIT的后缀
dc=ldap,dc=com

二、安装软件包
yum -y install openldap openldap-clients openldap-servers db4

三、配置openldap
1. 查看相关的文件
[root@ldap~]# cd /etc/openldap/
[root@ldap openldap]# ls
cacerts DB_CONFIG.example ldap.conf schema slapd.conf
slapd.conf //ldap服务器配置文件
ldap.conf //ldap客户端配置文件
schema/* //schema文件nis.schema, core.schema 
DB_CONFIG.example //后端模板数据文件
cacerts //存放如CA证书,实现LDAP安全ldaps 

2. 生成管理DN口令
[root@ldap openldap]# slappasswd
New password: 
Re-enter new password: 
{SSHA}qaLBgS4YORQ8cjiTcO7qdP4kn2j+Fkfn

[root@ldap openldap]# vim slapd.conf
include /etc/openldap/schema/core.schema 
include /etc/openldap/schema/cosine.schema 
include /etc/openldap/schema/inetorgperson.schema 
include /etc/openldap/schema/nis.schema 
database bdb 
suffix "dc=ldap,dc=com" 
rootdn "cn=admin,dc=ldap,dc=com" 
rootpw {SSHA}BwlCKPwAyGxBWiPNsEMi+62Mhi+OsFS2
directory /var/lib/ldap //后端数据目录

3. 复制模板数据库文件
[root@ldap openldap]# pwd
/etc/openldap
[root@ldap openldap]# cp DB_CONFIG.example /var/lib/ldap/DB_CONFIG
[root@ldap openldap]# chown ldap.ldap /var/lib/ldap/DB_CONFIG 

4. 启动LDAP
[root@ldap openldap]# service ldap start
[root@ldap openldap]# chkconfig ldap on
[root@ldap openldap]# ps aux |grep slapd
ldap 10617 0.8 6.8 422960 71156? Ssl 20:47 0:00/usr/sbin/slapd -h ldap:/// -u ldap
root 10626 0.0 0.0 4264 700 pts/1 R+ 20:48 0:00 grep slapd
[root@ldap openldap]# grep ldap /etc/services 
ldap 389/tcp
ldap 389/udp
ldaps 636/tcp # LDAP over SSL
ldaps 636/udp # LDAP over SSL
[root@station11 ~]# netstat -tnlp |grep :389
tcp 0 00.0.0.0:389 0.0.0.0:* LISTEN 10617/slapd 


四、利用openldap自带的迁移工具生成相应ldif文件(base.ldif,group.ldif,usre.ldif)
迁移工具:
[root@ldap ~]# ls /usr/share/openldap/migration/
migrate_aliases.pl migrate_hosts.pl
migrate_all_netinfo_offline.sh migrate_netgroup_byhost.pl
migrate_all_netinfo_online.sh migrate_netgroup_byuser.pl

1. migrate_base.pl 生成基础DNBase DN
# cd /usr/share/openldap/migration/
# vim migrate_common.ph
$DEFAULT_MAIL_DOMAIN = "ldap.com"; //邮件域
$DEFAULT_BASE = "dc=ldap,dc=com"; //Base DN
$EXTENDED_SCHEMA = 1; //支持扩展Schema,可选
# ./migrate_base.pl > /tmp/base.ldif

3. 生成用户和组的ldif文件
# mkdir /rhome
# for i in `seq 10`
> do
> useradd ldapuser$i -d /rhome/ldapuser$i
> echo "123" |passwd --stdin ldapuser$i
> done
# grep '^ldapuser' /etc/passwd > user.txt
# grep '^ldapuser' /etc/group > group.txt
# ./migrate_passwd.pl user.txt > /tmp/user.ldif
# ./migrate_group.pl group.txt > /tmp/group.ldif

4. 导入ldifLDAP数据库(客户端行为)
[root@ldap migration]# vim /tmp/base.ldif 
[root@ldap migration]# vim /tmp/user.ldif 
[root@ldap migration]# vim /tmp/group.ldif

配置客户端文件
/etc/openldap/ldap.conf 
BASE dc=ldap, dc=com
URI ldap://192.168.5.240
导入ldif
# ldapadd -x -D "cn=admin,dc=ldap,dc=com" -w ldap -f /tmp/base.ldif 
# ldapadd -x -D "cn=admin,dc=ldap,dc=com" -w ldap -f /tmp/group.ldif
# ldapadd -x -D "cn=admin,dc=ldap,dc=com" -w ldap -f /tmp/user.ldif
查询,默认使用的是匿名用户
# ldapsearch -x
# ldapsearch -x 'uid=ldapuser8' -LLL

五、安装phpldapadmin
# yum -y install httpd php php-ldap