- 第一种使用Docker安装
- 查看安装包信息
[root@c7 ~]#yum provides openldap
- 安装LDAP和Docker
[root@c7 ~]#yum install openldap docker -y
- 创建存放数据和配置文件
[root@c7 ~]#mkdir -p /data/openldap/{config,databases}
设置docker开机自启
[root@c7 ~]#systemctl enable docker.service --now
下载docker镜像
[root@c7 ~]#docker pull osixia/openldap:1.2.2
- 生成配置文件
[root@c7 ~]#docker run -d --name ldap-service --hostname ldap-service -p 389:389 -p 689:689 -v /data/openldap/database:/var/lib/ldap -v /data/openldap/config:/etc/ldap/slapd.d --env LDAP_ORGANISATION="Bruce.com" --env LDAP_DOMAIN="Bruce.com" --env LDAP_ADMIN_PASSWORD="Bruce@123" --env LDAP_TLS=false --detach osixia/openldap:1.2.2
- 下载ldap管理工具
docker pull osixia/phpldapadmin:0.7.2
- 生成管理端配置文件
[root@c7 ~]#docker run --name phpldapadmin-service -p 6443:443 -p 6680:80 --hostname phpldapadmin-service --link ldap-service:Bruce.com --env PHPLDAPADMIN_LDAP_HOSTS=Bruce.com --env PHPLDAPADMIN_HTTPS=false --detach osixia/phpldapadmin:0.7.2
- 浏览器输入centos主机的ip地址加端口号
- 点击login输入用户名和密码
- 使用yum安装和配置
- 安装相关软件包
[root@c7 ~]#yum install openldap openldap-servers openldap-clients -y
- 修改登录用户,cn=admin dc=Bruce dc=com
[root@c7 ~]#vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{1\}monitor.ldif
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
al,cn=auth" read by dn.base="cn=Manager,dc=my-domain,dc=com" read by * none
#修改后
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=extern
al,cn=auth" read by dn.base="cn=admin,dc=Bruce,dc=com" read by * none
- 同理修改 dc=Bruce cn=admin ,最后添加的密码后面需要用到
[root@c7 ~]#vim /etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}hdb.ldif
olcSuffix: dc=my-domain,dc=com
olcRootDN: cn=Manager,dc=my-domain,dc=com
#修改后
olcSuffix: dc=Bruce,dc=com
olcRootDN: cn=admin,dc=Bruce,dc=com
#在配置文件最后一行添加密码
olcRootPW: Bruce1234
- 拷贝DB文件并修改权限
[root@c7 ~]#cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
[root@c7 ~]#chown -R ldap:ldap /var/lib/ldap/
- 验证测试配置文件是否有误
[root@c7 ~]#slaptest -u
- 设置开机自启
[root@c7 openldap]#systemctl enable slapd.service --now
- 查看端口号
[root@c7 ~]#ss -ntl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:389 *:*
LISTEN 0 128 *:22 *:*
LISTEN 0 100 [::1]:25 [::]:*
LISTEN 0 128 [::]:389 [::]:*
LISTEN 0 128 [::]:22 [::]:*
- 创建base.ldif文件
[root@c7 ~]#cd /etc/openldap/
[root@c7 ~]#vim base.ldif
dn: dc=Bruce,dc=com
objectClass: dcObject
objectClass: organization
o: Bruce.com
dc: Bruce
dn: ou=users,dc=Bruce,dc=com
objectClass: organizationalUnit
objectClass: top
ou: users
dn: ou=groups,dc=Bruce,dc=com
objectClass: organizationalUnit
objectClass: top
ou: groups
- 建立目录结构 (此处输入的密码是olcRootPW: Bruce1234)
[root@c7 openldap]#ldapadd -x -W -D "cn=admin,dc=Bruce,dc=com" -f base.ldif
- 修改ldap配置文件
[root@c7 openldap]# vim /etc/openldap/ldap.conf
#BASE dc=example,dc=com
#URI ldap://ldap.example.com ldap://ldap-master.example.com:666
#修改后
BASE dc=Bruce,dc=com
URI ldap://192.168.10.126 ldap://192.168.10.126:666
- 安装ldapscripts管理user And group
[root@c7 openldap]#wget https://liquidtelecom.dl.sourceforge.net/project/ldapscripts/ldapscripts/ldapscripts-2.0.8/ldapscripts-2.0.8.tgz -P /root/
- 解压并移动
[root@c7 ~]#tar xzf ldapscripts-2.0.8.tgz
[root@c7 ~]#mv ldapscripts-2.0.8 /etc/ldapscripts
- 编译安装
[root@c7 ~]#cd /etc/ldapscripts/
[root@c7 ldapscripts]#make install PREFIX=/
- 修改配置文件
[root@c7 /]#vim /etc/ldapscripts/ldapscripts.conf
# LDAP server
SERVER="ldap://localhost"
#修改后
SERVER="ldap://192.168.10.126"
# Suffixes
SUFFIX="dc=example,dc=com" # Global suffix
修改后
SUFFIX="dc=Bruce,dc=com" # Global suffix
# The following BIND* parameters are ignored if SASLAUTH is set
BINDDN="cn=Manager,dc=example,dc=com"
#修改后
BINDDN="cn=admin,dc=Bruce,dc=com"
#ICONVCHAR="ISO-8859-15"
#修改后
ICONVCHAR="ISO-8859-15"
- 导入密码
[root@c7 ~]#sh -c "echo -n 'Bruce1234' > /etc/ldapscripts/ldapscripts.passwd"
- 重启服务
[root@c7 ~]#systemctl restart slapd.service
- 添加Scheme表
[root@c7 ~]#ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/nis.ldif
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)
[root@c7 ~]#ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/cosine.ldif
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)
[root@c7 ~]#ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)
[root@c7 ~]#ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)
[root@c7 ~]#ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
ldap_sasl_interactive_bind_s: Can't contact LDAP server (-1)
- 创建group and user
[root@c7 ~]#ldapaddgroup openstack
[root@c7 ~]#ldapadduser user1 openstack
[root@c7 ~]#ldapsetpasswd user1
- 安装httpd页面管理工具
[root@c7 ~]#yum install phpldapadmin.noarch -y
- 修改登录管理权限
[root@c7 ~]#vim /etc/httpd/conf.d/phpldapadmin.conf
# Apache 2.4
Require local
#修改后
# Apache 2.4
Require all granted
- 修改管理配置文件
[root@c7 ~]#vim /etc/phpldapadmin/config.php
/* Enable anonymous bind login. */
// $servers->setValue('login','anon_bind',true);
修改后,关闭匿名登录
$servers->setValue('login','anon_bind',false);
// $servers->setValue('login','attr','dn');
$servers->setValue('login','attr','uid');
#修改后,默认的是用uid登录,我们要用dn
$servers->setValue('login','attr','dn');
- 启动并设置http服务开机自启
[root@c7 ~]#systemctl start httpd.service;systemctl enable httpd.service --now
- 浏览器测试
- http://192.168.10.126/ldapadmin/
- 此时登录即可