openEuler系统下OpenLDAP编译与配置全攻略

张开发
2026/4/22 9:57:33 15 分钟阅读

分享文章

openEuler系统下OpenLDAP编译与配置全攻略
1. 环境准备与依赖安装在openEuler系统上编译OpenLDAP前需要先配置好基础环境。我遇到过不少因为依赖缺失导致的编译失败问题这里分享几个关键点首先确认系统版本执行以下命令查看cat /etc/os-release依赖安装的注意事项必须安装libtool-ltdl和libtool-ltdl-devel否则会报configure: error: could not locate libtool ltdl.h错误不要使用通配符安装如yum install *ltdl* -yopenEuler的yum可能无法正确识别依赖包推荐使用华为官方源或国内镜像源完整依赖安装命令yum install libtool-ltdl -y yum install libtool-ltdl-devel -y yum install openssl-devel -y yum install cyrus-sasl-devel -y注意如果遇到依赖冲突可以尝试先卸载已有openldap包yum remove openldap*2. 源码编译全流程2.1 源码解压与配置下载源码包后以2.4.44为例tar -zxvf openldap-2.4.44.tgz cd openldap-2.4.44configure参数详解./configure \ --prefix/usr/local/openLDAP-2.4.44 \ --enable-modulesyes \ --enable-rewrite \ --enable-memberofyes \ --enable-refintyes \ --enable-hdbno \ --enable-bdbno \ --enable-overlays参数说明--enable-memberof启用成员Of特性需配合overlay使用--enable-overlays启用扩展模块支持禁用BDB/HDB后端数据库可减少依赖2.2 编译与安装执行编译三部曲make depend # 检查依赖 make # 编译建议使用-j参数加速 make test # 运行测试可选但推荐 sudo make install常见问题处理若make test报错检查/tmp/slapd目录权限内存不足时可添加--disable-slapd跳过服务端编译3. 服务配置与优化3.1 初始化配置创建数据目录并设置权限mkdir -p /usr/local/openldap-2.4.44/var/openldap-data chown ldap:ldap /usr/local/openldap-2.4.44/var/openldap-data生成管理员密码slappasswd -s yourpassword # 输出类似{SSHA}kbY3oJPDv8MfDdu9wAVIgQ2EVB/p3Cop3.2 配置文件修改编辑slapd.confvim /usr/local/openldap-2.4.44/etc/openldap/slapd.conf关键配置项include /usr/local/openldap-2.4.44/etc/openldap/schema/core.schema include /usr/local/openldap-2.4.44/etc/openldap/schema/cosine.schema include /usr/local/openldap-2.4.44/etc/openldap/schema/inetorgperson.schema database mdb suffix dcexample,dccom rootdn cnadmin,dcexample,dccom rootpw {SSHA}kbY3oJPDv8MfDdu9wAVIgQ2EVB/p3Cop directory /usr/local/openldap-2.4.44/var/openldap-data3.3 服务启动验证启动服务/usr/local/openldap-2.4.44/libexec/slapd -d 256验证服务ldapsearch -x -b -s base (objectclass*) namingContexts # 应返回配置的base DN4. 常见问题解决方案4.1 版本兼容性问题openEuler 22.03 LTS默认的openldap版本可能较高如果需要降级从20.03 LTS SP3获取2.4.50版本RPM包编译libpq并一起降级4.2 性能优化建议调整DB_CONFIG文件set_cachesize 0 1048576 0 set_lk_max_objects 1500 set_lk_max_locks 1500 set_lk_max_lockers 1500日志级别设置llevel 256 logfile /var/log/slapd.log4.3 安全加固措施禁用匿名访问disallow bind_anon启用TLS加密openssl req -new -x509 -nodes -out slapd.pem -keyout slapd.pem -days 3655. 实用技巧与扩展5.1 常用管理命令# 导入LDIF文件 ldapadd -x -D cnadmin,dcexample,dccom -W -f data.ldif # 备份配置 slapcat -n 0 config.ldif # 重建索引 slapindex -F /etc/openldap/slapd.d5.2 客户端工具配置创建~/.ldaprc文件BASE dcexample,dccom URI ldap://localhost BINDDN cnadmin,dcexample,dccom5.3 监控方案使用prometheus-openldap-exporterdocker run -p 9330:9330 \ -e LDAP_URIldap://localhost \ -e LDAP_BINDDNcnmonitor,dcexample,dccom \ -e LDAP_PASSWORDpassword \ -d dinkel/prometheus-openldap-exporter在实际部署中我发现openEuler的SELinux策略可能导致权限问题可以通过以下命令临时调整setsebool -P slapd_full_access 1

更多文章