使用命令安装OpenLDAP:
yum -y install openldap compat-openldap openldap-clients openldap-servers openldap-servers-sql openldap-devel migrationtools
查看OpenLDAP版本,使用如下命令:
slapd -VV
到这里OpenLDAP基本安装完毕,接下来就是开始配置OpenLDAP
四、OpenLDAP配置
PS: OpenLDAP2.4.23版本开始所有配置数据都保存在/etc/openldap/slapd.d/,看了很多博客都是使用slapd.conf作为配置文件,而且很多博客内容都已经过时,所以没有一个好的文档真的会踩很多坑,在此记录一下
4.0 配置OpenLDAP管理员密码
设置OpenLDAP的管理员密码:
slappasswd -s [password]
密码设置好了之后呢,保存好,下面会使用到。
4.1 修改olcDatabase={2}hdb.ldif文件
修改olcDatabase={2}hdb.ldif文件,对于该文件增加一行
olcRootPW: {SSHA}dXgO/Ipy5SQiKFZ0u7m79Xo7uzKIr038,然后修改域信息:
olcSuffix: dc=teracloud2,dc=cn
olcRootDN: cn=admin,dc=teracloud2,dc=cn
注意:其中cn=admin中的admin表示OpenLDAP管理员的用户名,dc为ldap的服务器域名,导出而olcRootPW表示OpenLDAP管理员的密码。
实际修改如下:
vim /etc/openldap/slapd.d/cn=config/olcDatabase\=\{2\}hdb.ldif
olcSuffix: dc=teracloud2,dc=cn
olcRootDN: cn=admin,dc=teracloud2,dc=cn
olcRootPW: {SSHA}dXgO/Ipy5SQiKFZ0u7m79Xo7uzKIr038
4.2 修改olcDatabase={1}monitor.ldif文件
修改olcDatabase={1}monitor.ldif文件,如下:
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=admin,dc=teracloud2,dc=cn” read by * none
验证OpenLDAP的基本配置是否正确,使用如下命令:
slaptest -u
通过结果看出我们的配置是没有问题的
4.3启动OpenLDAP服务,
使用如下命令:
//开始ldap
systemctl enable slapd
//启动ldap
systemctl start slapd
//查看ldap的状态
systemctl status slapd
4.4 配置OpenLDAP数据库
OpenLDAP默认使用的数据库是BerkeleyDB,现在来开始配置OpenLDAP数据库,使用如下命令:
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
chown ldap:ldap -R /var/lib/ldap
chmod 700 -R /var/lib/ldap
ll /var/lib/ldap/
注意:/var/lib/ldap/就是BerkeleyDB数据库默认存储的路径。
4.5 导入基本Schema
导入基本Schema,使用如下命令:
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
注意:如果这一步导入失败,一般都是密码输入错误,密码要输上面配置的加密前的密码
4.6创建基本的用户节点,数据库管理员
dn: dc=teracloud2,dc=cn
objectClass: top
objectClass: dcObject
objectclass: organization
o: Example Inc.
dc: teracloud2
dn: ou=Users,dc=teracloud2,dc=cn
objectClass: organizationalUnit
ou: Users
dn: ou=group,dc=teracloud2,dc=cn
objectClass: organizationalUnit
ou: group
dn: cn=admin,dc=teracloud2,dc=cn
objectClass: organizationalRole
cn: admin
description: Directory Administrator
ldapadd -x -D cn=admin,dc=teracloud2,dc=cn-W -f basedomain.ldif
[root@VM_0_15_centos myself]# ldapadd -x -D cn=admin,dc=teracloud2,dc=cn-W -f basedomain.ldif
Enter LDAP Password:
adding new entry “dc=teracloud2,dc=cn”
adding new entry “ou=people,dc=teracloud2,dc=cn”
adding new entry “ou=group,dc=teracloud2,dc=cn”
adding new entry “cn=admin,dc=teracloud2,dc=cn”
五、配置日志
[root@VM_0_15_centos myself]# vim log.ldif
[root@VM_0_15_centos myself]# cat log.ldif
dn: cn=config
changetype: modify
add: olcLogLevel
olcLogLevel: 32
"log.ldif" [New] 4L, 66C written
[root@VM_0_15_centos myself]# ldapmodify -Y EXTERNAL -H ldapi:/// -f log.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "cn=config"
[root@VM_0_15_centos myself]# mkdir -p /var/log/slapd
[root@VM_0_15_centos myself]# chown ldap:ldap /var/log/slapd/
[root@VM_0_15_centos myself]# echo "local4.* /var/log/slapd/slapd.log" >> /etc/rsyslog.conf
[root@VM_0_15_centos myself]# systemctl restart rsyslog
[root@VM_0_15_centos myself]# systemctl restart slapd
[root@VM_0_15_centos myself]# tail -n 4 /var/log/slapd/slapd.log
Sep 5 20:43:31 VM_0_15_centos slapd[4520]: => test_filter
Sep 5 20:43:31 VM_0_15_centos slapd[4520]: PRESENT
Sep 5 20:43:31 VM_0_15_centos slapd[4520]: <= test_filter 6
Sep 5 20:43:31 VM_0_15_centos slapd[4523]: slapd starting
六、工具连接
图形操作界面有很多种,包括ldapadmin、ldapadmin.exe,当然还有其他的,这个步骤比较简单,就不详细讲解了。
七、遇到的错误
查看ldap的状态,发现无法启动
查看日志发现,有个和证书相关的错误
could not use certificate openLDAP server’,
查看下目录发现没有证书的,目录
把证书拷贝过去,启动,问题解决