前言
OpenLDAP 是 LDAP 协议的一个开源实现。LDAP 服务器本质上是一个为只读访问而优化的非关系型数据库。它主要用做地址簿查询(如 email 客户端)或对各种服务访问做后台认证以及用户数据权限管控。(例如,访问 Samba 时,LDAP 可以起到域控制器的作用;或者 Linux 系统认证 时代替 /etc/passwd 的作用。)
本文采用联网方式安装, 未来会尝试内网安装包方式.
搭建环境
- Centos 7.5
- OpenLdap 2.4.44
安装步骤
安装OpenLdap服务端
- yum安装OpenLdap
yum install openldap-clients openldap-servers # 安装OPENLdap 包
cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG # 配置文件
chown ldap. /var/lib/ldap/DB_CONFIG # 分配配置文件权限
systemctl enable slapd # OPENLdap 开机自启
systemctl start slapd # OPENLdap 启动
- 检擦服务是否安装成功
[root@testnode01 ~]# rpm -qa | grep openldap
openldap-clients-2.4.44-21.el7_6.x86_64
openldap-2.4.44-21.el7_6.x86_64
openldap-servers-2.4.44-21.el7_6.x86_64
[root@testnode01 openldap]# systemctl status slapd
● slapd.service - OpenLDAP Server Daemon
Loaded: loaded (/usr/lib/systemd/system/slapd.service; enabled; vendor preset: disabled)
Active: active (running) since Wed 2020-03-04 21:56:06 EST; 21s ago
Docs: man:slapd
man:slapd-config
man:slapd-hdb
man:slapd-mdb
file:///usr/share/doc/openldap-servers/guide.html
如果启动出现权限问题,给相应文件赋予LDAP用户权限
配置LDAP
- 我们使用 slappasswd 命令来生成一个密码,并使用 LDIF(LDAP 数据交换格式)文件将其导入到 LDAP 中来配置管理员密码:
[root@testnode01 openldap]# slappasswd -s 2NsxAHruCQy7ZD
{
SSHA}UkZvtF0xj7uHKFBgvEmRgIiADjYRtZB4
[root@testnode01 ldapInstallScript]vim chrootpw.ldif
# specify the password generated above for "olcRootPW" section
dn: olcDatabase={
0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {
SSHA}UkZvtF0xj7uHKFBgvEmRgIiADjYRtZB4
[root@testnode01 ldapInstallScript]# ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
modifying entry "olcDatabase={0}config,cn=config"
- 我们需要向 LDAP 中导入一些基本的 Schema。这些 Schema 文件位于 /etc/openldap/schema/ 目录中,定义了我们以后创建的条目可以使用哪些属性:
[root@testnode01 ~]# ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
SASL/EXTERNAL authentication started
SASL username: gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth
SASL SSF: 0
adding new entry "cn=cosine,cn=schema,cn=config"
[root@testnode01 ~