
在企业环境中,LDAP是一种用于存储和访问分布式目录信息的强大工具。OpenLDAP 是一种开源实现,广泛用于集中式身份验证和信息管理。本文将详细介绍如何在 CentOS Stream 10 上安装和配置 OpenLDAP,并确保整个过程具有较强的实操性,帮助您快速搭建稳定的LDAP环境。
一、部署环境准备
1. 系统要求
操作系统:CentOS Stream 10
- CPU:2核及以上
- 内存:4GB 及以上(推荐 8GB 以获得更佳性能)
- 磁盘空间:至少 10GB 空闲空间
- 网络连接:确保服务器可访问互联网以安装必要的软件包
2. 更新系统
在安装前,确保您的系统是最新的,以减少潜在的兼容性问题:
sudo dnf update -y
sudo dnf upgrade -y
二、安装 OpenLDAP
1. 安装 OpenLDAP 服务器和客户端工具
在 CentOS Stream 10 中,可以使用 `dnf` 命令直接安装 OpenLDAP 及其相关工具:
sudo dnf install -y openldap openldap-servers openldap-clients
2. 启动并启用服务
安装完成后,启用并启动 OpenLDAP 服务:
sudo systemctl enable slapd
sudo systemctl start slapd
sudo systemctl status slapd
确保 `slapd` 处于 active (running) 状态。
3. 设置 OpenLDAP 的管理员密码
生成一个强密码以用作管理员密码:
sudo slappasswd
> 示例输出:
New password:
Re-enter new password:
{SSHA}Qz8zqYh23XQ/N0fM4xiR6QAdh1t3rOp1
记录下 `{SSHA}Qz8zqYh23XQ/N0fM4xiR6QAdh1t3rOp1`(此为加密后的密码),稍后将在配置中使用。
三、配置 OpenLDAP
1. 备份默认配置
为防止误操作,建议先备份默认配置文件:
sudo cp /etc/openldap/slapd.d /etc/openldap/slapd.d.bak
sudo cp /etc/openldap/slapd.conf /etc/openldap/slapd.conf.bak
2. 创建 LDAP 数据库配置
首先创建 `db.ldif` 文件以初始化数据库:
sudo nano db.ldif
添加以下内容:
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=example,dc=com
dn: olcDatabase={2}hdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=admin,dc=example,dc=com
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}Qz8zqYh23XQ/N0fM4xiR6QAdh1t3rOp1
3. 导入配置
使用 `ldapmodify` 命令导入配置:
ldapmodify -Y EXTERNAL -H ldapi:/// -f db.ldif
四、创建 LDAP 基础结构
1. 创建 `base.ldif` 文件
sudo nano base.ldif
在其中写入以下内容:
dn: dc=example,dc=com
objectClass: top
objectClass: domain
dc: example
dn: cn=admin,dc=example,dc=com
objectClass: organizationalRole
cn: admin
description: Directory Administrator
dn: ou=users,dc=example,dc=com
objectClass: organizationalUnit
ou: users
dn: ou=groups,dc=example,dc=com
objectClass: organizationalUnit
ou: groups
2. 导入基础结构
ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f base.ldif
系统会提示输入管理员密码,输入之前设置的密码即可。
五、测试 OpenLDAP 配置
1. 添加测试用户
创建 `user.ldif` 文件:
sudo nano user.ldif
添加以下内容:
dn: uid=johndoe,ou=users,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: top
cn: John Doe
sn: Doe
uid: johndoe
mail: johndoe@example.com
userPassword: {SSHA}abc123password
loginShell: /bin/bash
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/johndoe
导入用户:
ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f user.ldif
2. 查询用户
验证用户是否成功添加:
ldapsearch -x -b "dc=example,dc=com" "(objectclass=*)"
六、配置 LDAP 访问控制
编辑 `access.ldif`:
sudo nano access.ldif
示例配置:
dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: to attrs=userPassword by self write by anonymous auth by dn.base="cn=admin,dc=example,dc=com" write by * none
olcAccess: to * by self read by dn.base="cn=admin,dc=example,dc=com" write by * read
导入配置:
ldapmodify -Y EXTERNAL -H ldapi:/// -f access.ldif
七、启用 TLS/SSL 加密(可选但推荐)
1. 安装证书工具
sudo dnf install -y mod_ssl
2. 创建自签名证书
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/openldap/certs/ldap.key -out /etc/openldap/certs/ldap.crt
3. 更新配置
编辑 `tls.ldif` 文件:
sudo nano tls.ldif
dn: cn=config
changetype: modify
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/openldap/certs/ldap.crt
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/openldap/certs/ldap.key
导入 TLS 配置:
ldapmodify -Y EXTERNAL -H ldapi:/// -f tls.ldif
八、配置防火墙
确保端口 389(LDAP)和 636(LDAPS)已开放:
sudo firewall-cmd --add-service=ldap --permanent
sudo firewall-cmd --add-service=ldaps --permanent
sudo firewall-cmd --reload
九、验证 OpenLDAP 配置
使用以下命令进行终端测试:
ldapwhoami -x -D "cn=admin,dc=example,dc=com" -W
若返回 `dn:cn=admin,dc=example,dc=com` 则说明认证成功。
通过以上步骤,您应该已成功在 CentOS Stream 10 上安装并配置了OpenLDAP服务器。此配置适用于企业环境中的用户管理、访问控制和目录服务。未来您可以进一步扩展功能,如搭建多主节点(Multi-Master Replication)环境、结合 Kerberos 实现更安全的认证机制等。











