资源包准备
安装包名称 | 说明 |
---|---|
openldap | openldap服务端和客户端必须用的库文件 |
openldap-servers | 用于启动服务和设置. 包含单独的ldap后台守护程序 |
openldap-clients | 用于启动服务和设置. 包含单独的ldap后台守护程序 |
openldap-devel | devel包,可选择进行安装 |
openldap-servers-sql | 支持sql模块,可进行选择性安装 |
migrationtools | 通过migrationtools实现OpenLDAP用户及用户组的添加,导入系统账户,可进行选择性安装 |
compat-openldap | openldap兼容性库 |
本文采用的安装方式是rpm,可在https://pkgs.org/
上自行搜索以上资源进行下载,注意不同资源之间版本对应
安装资源
# 查询资源是否已经安装
[root@localhost xb]# rpm -qa openldap
openldap-2.4.46-15.el8.x86_64 # 资源已经安装,发现版本不一致,可以选择升级版本或者卸载
# 选择升级openldap
[root@localhost xb]# rpm -Uvh openldap-2.4.46-18.el8.x86_64.rpm
警告:openldap-2.4.46-18.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID 8483c65d: NOKEY
Verifying... ################################# [100%]
准备中... ################################# [100%]
正在升级/安装...
1:openldap-2.4.46-18.el8 ################################# [ 50%]
正在清理/删除...
2:openldap-2.4.46-15.el8 ################################# [100%]
[root@localhost xb]# rpm -qa openldap
openldap-2.4.46-18.el8.x86_64
# 安装openldap-servers
[root@localhost xb]# rpm -ivh openldap-servers-2.4.46-18.el8.x86_64.rpm
警告:openldap-servers-2.4.46-18.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID 8483c65d: NOKEY
Verifying... ################################# [100%]
准备中... ################################# [100%]
正在升级/安装...
1:openldap-servers-2.4.46-18.el8 ################################# [100%]
_#################### 100.00% eta none elapsed none fast!
Closing DB...
[/usr/lib/tmpfiles.d/mysql.conf:23] Line references path below legacy directory /var/run/, updating /var/run/mysqld → /run/mysqld; please update the tmpfiles.d/ drop-in file accordingly.
[/usr/lib/tmpfiles.d/slapd.conf:2] Line references path below legacy directory /var/run/, updating /var/run/openldap → /run/openldap; please update the tmpfiles.d/ drop-in file accordingly.
# 安装openldap-clients
[root@localhost xb]# rpm -ivh openldap-clients-2.4.46-18.el8.x86_64.rpm
警告:openldap-clients-2.4.46-18.el8.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID 8483c65d: NOKEY
Verifying... ################################# [100%]
准备中... ################################# [100%]
正在升级/安装...
1:openldap-clients-2.4.46-18.el8 ################################# [100%]
配置openldap-servers
-
将下述文件中框起来的内容改为自己的命名
/etc/openldap/slapd.d/cn\=config/olcDatabase\=\{1\}monitor.ldif
修改前:
修改后:
/etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}mdb.ldif
修改前:
修改后:
-
在下列文件中添加认证密码
olcRootPW: 123123
# 加密,生成密码密文 [root@localhost /]# slappasswd New password: Re-enter new password: {SSHA}qEwWM5OBvEAVR0iQFGW6TmVQOq5nWO8l # 123456密码密文
将密码添加到
/etc/openldap/slapd.d/cn\=config/olcDatabase\=\{2\}mdb.ldif
-
拷贝DB文件
[root@localhost /]# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG # 修改文件权限 [root@localhost /]# chown -R ldap:ldap /var/lib/ldap/
-
配置ldap.conf
vim /etc/openldap/ldap.conf
将
BASE
和URL
的注释去除,更换为下述,URL
中的IP 地址更换为你的云服务器的公网 IP。
-
启动服务
# 检查配置文件是否正确 [root@localhost schema]# slaptest -u 62c6aafe ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif" 62c6aafe ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={2}mdb.ldif" config file testing succeeded # 成功 # 启动服务 [root@localhost schema]# systemctl start slapd.service # 设置服务开机启动 [root@localhost schema]# systemctl enable slapd.service Created symlink /etc/systemd/system/openldap.service → /usr/lib/systemd/system/slapd.service. Created symlink /etc/systemd/system/multi-user.target.wants/slapd.service → /usr/lib/systemd/system/slapd.service. # 查看服务状态 [root@localhost schema]# systemctl status slapd.service ● slapd.service - OpenLDAP Server Daemon Loaded: loaded (/usr/lib/systemd/system/slapd.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2022-07-07 17:45:25 CST; 17s ago Docs: man:slapd man:slapd-config man:slapd-hdb man:slapd-mdb file:///usr/share/doc/openldap-servers/guide.html Main PID: 37196 (slapd) Tasks: 2 (limit: 11076) Memory: 3.9M CGroup: /system.slice/slapd.service └─37196 /usr/sbin/slapd -u ldap -h ldap:/// ldaps:/// ldapi:/// 7月 07 17:45:25 localhost.localdomain systemd[1]: Starting OpenLDAP Server Daemon... 7月 07 17:45:25 localhost.localdomain runuser[37184]: pam_unix(runuser:session): session opened for user ldap by (uid=0) 7月 07 17:45:25 localhost.localdomain runuser[37184]: pam_unix(runuser:session): session closed for user ldap 7月 07 17:45:25 localhost.localdomain slapd[37194]: @(#) $OpenLDAP: slapd 2.4.46 (Aug 10 2021 05:11:20) $ mockbuild@x86-02.mbox.centos.org:/builddir/build/BUILD/openldap-2.4.46/openldap-2.4.46/servers/slapd 7月 07 17:45:25 localhost.localdomain slapd[37194]: ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={1}monitor.ldif" 7月 07 17:45:25 localhost.localdomain slapd[37194]: ldif_read_file: checksum error on "/etc/openldap/slapd.d/cn=config/olcDatabase={2}mdb.ldif" 7月 07 17:45:25 localhost.localdomain slapd[37196]: slapd starting 7月 07 17:45:25 localhost.localdomain systemd[1]: Started OpenLDAP Server Daemon. ~~~
-
配置日志
# 创建 log.ldif,然后写入内容 touch log.ldif
#内容 dn: cn=config changetype: modify add: olcLogLevel olcLogLevel: 32
#根据文件导入 [root@localhost schema]# 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@localhost schema]# mkdir -p /var/log/slapd # 授权文件夹 [root@localhost schema]# chown ldap:ldap /var/log/slapd/ # 系统日志文件配置 [root@localhost schema]# echo "local4.* /var/log/slapd/slapd.log" >> /etc/rsyslog.conf # 重启日志服务 [root@localhost schema]# systemctl restart rsyslog # 重启ldap服务 [root@localhost schema]# systemctl restart slapd # 查看日志文件 [root@localhost schema]# tail -n 4 /var/log/slapd/slapd.log Jul 7 17:49:39 localhost slapd[37299]: => test_filter Jul 7 17:49:39 localhost slapd[37299]: PRESENT Jul 7 17:49:39 localhost slapd[37299]: <= test_filter 6 Jul 7 17:49:39 localhost slapd[37301]: slapd starting
-
添加基础的schema
# 依次执行以下文件(可以写个脚本执行) ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/cosine.ldif ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/nis.ldif ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/inetorgperson.ldif ldapadd -Y EXTERNAL -H ldapi:/// -D "cn=config" -f /etc/openldap/schema/core.ldif