使用yum指令安装OpenLDAP
yum install -y openldap-servers openldap-clients
执行结果截图:
![](https://img-blog.csdnimg.cn/img_convert/df3ce27afd91460a1b84ca4cca73fdd4.png)
启动OpenLDAP服务
systemctl start slapd
#设置开机启动,命令如下
systemctl enable slapd
查看LDAP服务的状态
systemctl status slapd
执行结果截图:
![](https://img-blog.csdnimg.cn/img_convert/4616777cd17d171a2d27a97d4ca17aa2.png)
查看OpenLDAP默认监听的389端口(centos7最小化安装默认没有netstat命令,需安装)
netstat -antup| grep 389
执行结果截图:
![](https://img-blog.csdnimg.cn/img_convert/dfed5e81cc8ef7bb233ad6fab7a796e9.png)
配置OpenLDAP数据库
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG && chown ldap:ldap /var/lib/ldap/DB_CONFIG
ll /var/lib/ldap/
执行结果截图:
![](https://img-blog.csdnimg.cn/img_convert/6f566c79d39f76a4b56b41af21e1221c.png)
配置ldap服务 设置OpenLDAP的管理员密码
设置密码
slappasswd
执行结果截图:
密码设置成功会获取到下面的信息,先保存下来。
![](https://img-blog.csdnimg.cn/img_convert/81f13039779bb7d261d65f880cdb1ece.png)
在/etc/openldap/ 目录下,新增chrootpw.ldif文件,并且添加如下内容。
vim chrootpw.ldif
编写脚本内容:
#这里的“olcRootPW”值是设置密码时获取的{SSHA}LDLjSxxi7PAYCiEHrvjol+r8YA3zHvoe
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}LDLjSxxi7PAYCiEHrvjol+r8YA3zHvoe
执行chrootpw.ldif文件
ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif
执行结果截图:
![](https://img-blog.csdnimg.cn/img_convert/f643a89008233f92abc986495ee5b50f.png)
导入预设的模式
创建脚本
vim ldapaddBaseSchema.sh
编写脚本内容
#!/bin/bash
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
设置脚本权限
chmod 755 ldapaddBaseSchema.sh
运行脚本
sh -x ldapaddBaseSchema.sh
执行解决截图:
![](https://img-blog.csdnimg.cn/img_convert/b58da3ede53277ada084287983d66157.png)
在LDAP服务的DB中设置域名,即创建chdomain.ldif文件
在/etc/openldap/ 目录下,创建chdomain.ldif文件
vim chdomain.ldif
编写脚本内容:
# 将"dc=gelong,dc=gelong"部分替换为您自己的域名
# 将“olcRootPW”标签的值替换成设置密码的返回结果 {SSHA}LDLjSxxi7PAYCiEHrvjol+r8YA3zHvoe
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=Manager,dc=gelong,dc=com" read by * none
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=gelong,dc=com
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=gelong,dc=com
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}LDLjSxxi7PAYCiEHrvjol+r8YA3zHvoe
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=Manager,dc=gelong,dc=com" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=Manager,dc=gelong,dc=com" write by * read
执行chdomain.ldif文件
ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif
执行结果截图:
![](https://img-blog.csdnimg.cn/img_convert/2b0e104269158855d0fd8eff9b92ba8e.png)
导入管理员基础数据
在etc/openldap/ 目录下,创建管理员文件,base.ldif
vim base.ldif
编写脚本内容:
#修改 dc=xxx,dc=xxx 为自己的域名
dn: dc=gelong,dc=com
dc: gelong
o: ldap
objectClass: top
objectClass: dcObject
objectclass: organization
dn: cn=Manager,dc=gelong,dc=com
objectClass: organizationalRole
cn: Manager
description: Directory Manager
dn: ou=People,dc=gelong,dc=com
objectClass: organizationalUnit
ou: People
dn: ou=Group,dc=gelong,dc=com
objectClass: organizationalUnit
ou: Group
执行basedomain.ldif,将数据保存到数据库
ldapadd -x -W -D "cn=Manager,dc=gelong,dc=com" -f base.ldif
执行结果截图:
![](https://img-blog.csdnimg.cn/img_convert/0abba9f028fa5afaa6b0c0737b3e5085.png)
到这里安装步骤已经完成。
设置防火墙
查询防火墙状态
systemctl status firewalld
如果防火墙没有开启,请开启防火墙,已经开启直接跳过
systemctl start firewalld
添加防火墙对外开放端口:389
firewall-cmd --zone=public --add-port=389/tcp --permanent
重载防火墙
firewall-cmd --reload
查看当前已经开放的防火墙端口
firewall-cmd --zone=public --list-ports