环境:

系统:CentOS 6.7

openldap:2.4.40


安装:

1、导入epel源

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
rpm –ivh epel-release-6-8.noarch.rpm


2、安装openldap

yum -y install openldap openldap-*


3、配置openldap,包括准备DB_CONFIG和slapd.conf

cd /etc/openldap/
cp /usr/share/openldap-servers/slapd.conf.obsolete slapd.conf
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG


设置管理员密码:

slappasswd -s 123456
{SSHA}2TuB7EJeC1pUXDrGoxY1qqKg3ScgAvFC


4、修改slapd.conf,主要配置dc和rootpw,rootpw配置为上述步骤中的密码

database        bdb
suffix          "dc=beyondh,dc=org"
checkpoint      1024 15
rootdn          "cn=admin,dc=beyondh,dc=org"
rootpw   {SSHA}2TuB7EJeC1pUXDrGoxY1qqKg3ScgAvFC


5、修改目录权限

chown -R ldap:ldap /etc/openldap/  
chown -R ldap:ldap /var/lib/ldap/



6、启动slapd服务

/etc/init.d/slapd start

注意一定要先启动slapd服务,第7部测试的时候才不会报错,提示某数据库文件不存在,只有启动服务后才能生产该文件。


7、测试

slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d/
config file testing succeeded


8、安装migrationtools

yum install migrationtools -y


9、编辑/usr/share/migrationtools/migrate_common.ph并修改相关配置

vim /usr/share/migrationtools/migrate_common.ph 
$DEFAULT_MAIL_DOMAIN = "beyondh.org";
$DEFAULT_BASE = "dc=beyondh,dc=org";


10、生成base.ldif、passwd.ldif、group.ldif文件

/usr/share/migrationtools/migrate_base.pl > /tmp/base.ldif

/usr/share/migrationtools/migrate_group.pl /etc/group > /tmp/group.ldif

/usr/share/migrationtools/migrate_group.pl /etc/group > /tmp/group.ldif

ls /tmp/
base.ldif  group.ldif  passwd.ldif


11、导入base.ldif、passwd.ldif、group.ldif文件

[root@localhost openldap]# ldapadd -x -D "cn=admin,dc=beyondh,dc=org" -W -f /tmp/base.ldif                
[root@localhost migrationtools]# ldapadd -x -D "cn=admin,dc=beyondh,dc=org" -W -f /tmp/group.ldif 
[root@localhost migrationtools]# ldapadd -x -D "cn=admin,dc=beyondh,dc=org" -W -f /tmp/passwd.ldif

需要输入管理员密码


12、测试数据导入是否成功

[root@localhost openldap]# ldapsearch -LLL -W -x -H ldap://beyondh.org -D "cn=admin,dc=beyondh,dc=org" -b "dc=beyondh,dc=org" 
Enter LDAP Password: 
dn: dc=beyondh,dc=org
dc: beyondh
objectClass: top
objectClass: domain
dn: ou=Hosts,dc=beyondh,dc=org
ou: Hosts
objectClass: top
objectClass: organizationalUnit
dn: ou=Rpc,dc=beyondh,dc=org
ou: Rpc
objectClass: top
objectClass: organizationalUnit
dn: ou=Services,dc=beyondh,dc=org
ou: Services
objectClass: top
objectClass: organizationalUnit
dn: nisMapName=netgroup.byuser,dc=beyondh,dc=org
nisMapName: netgroup.byuser
objectClass: top
objectClass: nisMap
dn: ou=Mounts,dc=beyondh,dc=org
ou: Mounts
objectClass: top
objectClass: organizationalUnit
dn: ou=Networks,dc=beyondh,dc=org
ou: Networks
objectClass: top
objectClass: organizationalUnit
dn: ou=People,dc=beyondh,dc=org
ou: People
objectClass: top
objectClass: organizationalUnit
dn: ou=Group,dc=beyondh,dc=org
ou: Group
objectClass: top
objectClass: organizationalUnit
dn: ou=Netgroup,dc=beyondh,dc=org
ou: Netgroup
objectClass: top
objectClass: organizationalUnit
dn: ou=Protocols,dc=beyondh,dc=org
ou: Protocols
objectClass: top
objectClass: organizationalUnit
dn: ou=Aliases,dc=beyondh,dc=org
ou: Aliases
objectClass: top
objectClass: organizationalUnit
dn: nisMapName=netgroup.byhost,dc=beyondh,dc=org
nisMapName: netgroup.byhost
objectClass: top
objectClass: nisMap


13、安装httpd及PhpLdapAdmin

yum -y install httpd phpldapadmin


14、 配置/etc/httpd/conf.d/phpldapadmin.conf允许从远程访问

<Directory /usr/share/phpldapadmin/htdocs>
  Order Deny,Allow
  Allow from all
</Directory>


15、修改/etc/phpldapadmin/config.PHP配置用DN登录, 

在397行,将

// $servers->setValue('login','attr','dn');
$servers->setValue('login','attr','uid');

改成

$servers->setValue('login','attr','dn');
//$servers->setValue('login','attr','uid');


16启动httpd

 /etc/init.d/httpd start


17、访问ldapadmin

http://$ip/ldapadmin

wKiom1jTchGgln_bAAE572qGyZg851.png

wKioL1jTchGSzvqEAACLcxc61Ho510.png

wKiom1jTchLAKaWOAAEHG4duD7A135.png


18、开启日志功能

编辑/etc/rsyslog.conf 文件,加入下面一行

local4.*        /var/log/openldap.log


编辑/etc/openldap/slapd.conf文件,加入下面两行

loglevel  296
cachesize 1000


重启rsyslog服务和slapd服务

/etc/init.d/rsyslog restart
/etc/init.d/slapd restart

ls -l /var/log/openldap.log 
-rw------- 1 root root 216 Mar 23 15:46 /var/log/openldap.log