Rocky Linux 9 安装 LDAP 服务器完整教程
📋 目录
前言
LDAP (Lightweight Directory Access Protocol) 是一种用于访问和维护目录服务的协议。在 Rocky Linux 9 上安装和配置 LDAP 服务器可以为企业级应用提供统一身份认证、联系人管理等服务。
Rocky Linux 作为 CentOS 的替代品,继承了 RHEL 的稳定性和可靠性,是部署企业级服务的理想选择。本教程将详细介绍如何在 Rocky Linux 9 上安装和配置 OpenLDAP 服务器。
系统准备
1. 系统更新
# 更新系统
sudo yum update -y
sudo yum upgrade -y
# 安装必要的工具
sudo yum install -y vim wget curl htop git
2. 设置主机名和域名
# 设置主机名
sudo hostnamectl set-hostname ldap-server.yourdomain.com
# 设置主机名解析
echo "192.168.1.100 ldap-server.yourdomain.com ldap-server" | sudo tee -a /etc/hosts
3. 检查系统信息
# 查看 Rocky Linux 版本
cat /etc/rocky-release
uname -a
# 检查系统信息
systemctl status
4. 关闭防火墙(可选)
# 临时关闭防火墙(仅用于测试)
sudo systemctl stop firewalld
sudo systemctl disable firewalld
# 或者在防火墙中开放 LDAP 端口
sudo firewall-cmd --permanent --add-service=ldap
sudo firewall-cmd --reload
安装 OpenLDAP
1. 检查可用版本
# 检查 OpenLDAP 软件包
sudo yum info openldap-servers
sudo yum info openldap-clients
2. 安装 OpenLDAP 套件
# 安装 OpenLDAP 服务器和客户端
sudo yum install -y openldap-servers openldap-clients
# 安装额外的工具(可选)
sudo yum install -y openldap-utils migrationtools phpLDAPadmin
3. 验证安装
# 检查 slapd 服务状态
sudo systemctl status slapd
# 查看安装的文件
ls -la /etc/openldap/
ls -la /var/lib/ldap/
配置 LDAP 服务器
1. 设置管理员密码
# 生成 LDAP 管理员密码哈希
sudo slappasswd
输入密码两次,将输出的哈希值(类似 {SSHA}abcd1234...)复制备用。
2. 配置 slapd.conf
# 备份默认配置文件
sudo cp /etc/openldap/slapd.conf /etc/openldap/slapd.conf.backup
# 创建 slapd.conf 配置文件
sudo vim /etc/openldap/slapd.conf
添加以下配置:
# OpenLDAP 服务器配置
include /etc/openldap/schema/core.schema
include /etc/openldap/schema/cosine.schema
include /etc/openldap/schema/inetorgperson.schema
include /etc/openldap/schema/nis.schema
# 日志配置
loglevel stats config
logfile /var/log/ldap/slapd.log
# 数据库配置
database hdb
suffix "dc=example,dc=com"
rootdn "cn=Manager,dc=example,dc=com"
rootpw {SSHA}您之前生成的密码哈希
# 数据库参数
directory /var/lib/ldap
index objectClass eq
index cn eq,pres,sub
index mail eq,pres,sub
index uid eq,pres,sub
index sn eq,pres,sub
# 允许的访问控制
access to * by * read
access to attrs=userPassword by dn="cn=Manager,dc=example,dc=com" write by anonymous auth by self write by * none
3. 创建数据目录并设置权限
# 创建必要的目录
sudo mkdir -p /var/log/ldap
sudo mkdir -p /etc/openldap/slapd.d
# 设置正确的权限
sudo chown -R ldap:ldap /var/lib/ldap
sudo chown -R ldap:ldap /var/log/ldap
sudo chown -R ldap:ldap /etc/openldap/slapd.d
4. 测试配置文件语法
# 检查配置文件语法
sudo slaptest -f /etc/openldap/slapd.conf
# 如果测试通过,应该看到 "config file testing succeeded"
初始化数据库
1. 转换配置文件
# 将 slapd.conf 转换为 slapd.d 格式
sudo slaptest -f /etc/openldap/slapd.conf -F /etc/openldap/slapd.d
# 设置权限
sudo chown -R ldap:ldap /etc/openldap/slapd.d
2. 创建基础 LDIF 文件
# 创建基础数据文件
sudo vim /etc/openldap/base.ldif
添加以下内容:
dn: dc=example,dc=com
objectClass: top
objectClass: dcObject
objectclass: organization
o: Example Organization
dc: example
dn: cn=Manager,dc=example,dc=com
objectClass: organizationalRole
cn: Manager
description: Directory Manager
3. 导入基础数据
# 导入基础数据
sudo ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f /etc/openldap/base.ldif
输入之前设置的密码。
4. 验证基础数据
# 查看导入的数据
sudo ldapsearch -x -b "dc=example,dc=com"
启动和管理服务
1. 启动 slapd 服务
# 启动 slapd 服务
sudo systemctl start slapd
# 设置开机自启
sudo systemctl enable slapd
# 检查服务状态
sudo systemctl status slapd
2. 查看日志
# 查看 slapd 日志
sudo tail -f /var/log/ldap/slapd.log
# 或使用 journalctl
sudo journalctl -u slapd -f
3. 重启服务
# 重启 slapd 服务
sudo systemctl restart slapd
# 停止服务
sudo systemctl stop slapd
SSL/TLS 配置
1. 安装 SSL 证书
# 创建证书目录
sudo mkdir -p /etc/ssl/openldap/{private,certs}
# 生成 CA 证书
sudo openssl genrsa -out /etc/ssl/openldap/private/cakey.pem 4096
sudo openssl req -new -x509 -days 365 -key /etc/ssl/openldap/private/cakey.pem \
-out /etc/ssl/openldap/certs/cacert.pem -subj "/C=US/ST=California/O=Example Organization/CN=CA"
2. 生成服务器证书
# 生成服务器私钥
sudo openssl genrsa -out /etc/ssl/openldap/private/ldapserver-key.pem 4096
# 生成证书签名请求
sudo openssl req -new -key /etc/ssl/openldap/private/ldapserver-key.pem \
-out /etc/ssl/openldap/certs/ldapserver-cert.csr -subj \
"/C=US/ST=California/O=Example Organization/CN=ldap-server"
# 签署服务器证书
sudo openssl ca -keyfile /etc/ssl/openldap/private/cakey.pem \
-cert /etc/ssl/openldap/certs/cacert.pem \
-in /etc/ssl/openldap/certs/ldapserver-cert.csr \
-out /etc/ssl/openldap/certs/ldapserver-cert.crt
3. 更新 slapd 配置支持 TLS
# 创建 TLS 配置文件
sudo vim /etc/openldap/tls.ldif
添加以下内容:
dn: cn=config
changetype: modify
replace: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ssl/openldap/certs/ldapserver-cert.crt
dn: cn=config
changetype: modify
replace: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ssl/openldap/private/ldapserver-key.pem
dn: cn=config
changetype: modify
replace: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ssl/openldap/certs/cacert.pem
4. 应用 TLS 配置
# 应用 TLS 配置
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f /etc/openldap/tls.ldif
# 重启 slapd 服务
sudo systemctl restart slapd
5. 测试 TLS 连接
# 测试 LDAPS 连接
sudo ldapsearch -x -b "dc=example,dc=com" -H ldaps://localhost
用户管理
1. 创建用户账户
# 创建用户 LDIF 文件
sudo vim /etc/openldap/user.ldif
添加以下内容:
dn: uid=john,ou=People,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: john
cn: John Doe
sn: Doe
mail: john.doe@example.com
userPassword: {SSHA}hashed_password
loginShell: /bin/bash
uidNumber: 1001
gidNumber: 1001
homeDirectory: /home/john
2. 导入用户
# 导入用户
sudo ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f /etc/openldap/user.ldif
3. 创建用户组
# 创建组 LDIF 文件
sudo vim /etc/openldap/group.ldif
添加以下内容:
dn: cn=developers,ou=Groups,dc=example,dc=com
objectClass: posixGroup
cn: developers
gidNumber: 1001
memberUid: john
4. 导入组
# 导入组
sudo ldapadd -x -D "cn=Manager,dc=example,dc=com" -W -f /etc/openldap/group.ldif
4. 修改用户信息
# 创建修改 LDIF 文件
sudo vim /etc/openldap/user_mod.ldif
添加以下内容:
dn: uid=john,ou=People,dc=example,dc=com
changetype: modify
replace: mail
mail: john.new@example.com
5. 应用修改
# 应用修改
sudo ldapmodify -x -D "cn=Manager,dc=example,dc=com" -W -f /etc/openldap/user_mod.ldif
6. 删除用户
# 删除用户
sudo ldapdelete -x -D "cn=Manager,dc=example,dc=com" -W "uid=john,ou=People,dc=example,dc=com"
客户端配置
1. 安装 LDAP 客户端
# 安装 LDAP 客户端
sudo yum install -y openldap-clients migrationtools
2. 配置 LDAP 客户端
# 编辑 LDAP 客户端配置
sudo vim /etc/openldap/ldap.conf
添加以下内容:
BASE dc=example,dc=com
URI ldap://ldap-server.example.com
TLS_REQCERT never
3. 测试客户端连接
# 测试连接
ldapsearch -x -b "dc=example,dc=com"
# 测试用户认证
ldapsearch -x -D "uid=john,ou=People,dc=example,dc=com" -W -b "dc=example,dc=com"
4. 配置 PAM 集成
# 安装 PAM LDAP
sudo yum install -y pam_ldap
# 配置 /etc/pam_ldap.conf
sudo vim /etc/pam_ldap.conf
添加以下内容:
uri ldap://ldap-server.example.com
base dc=example,dc=com
ldap_version 3
pam_password exop
5. 配置系统认证
# 备份认证配置
sudo cp /etc/pam.d/system-auth /etc/pam.d/system-auth.backup
sudo cp /etc/pam.d/password-auth /etc/pam.d/password-auth.backup
# 编辑认证配置
sudo vim /etc/pam.d/system-auth
在文件中添加 LDAP 相关的 PAM 模块。
常见问题
Q1: slapd 无法启动
解决方案:
# 检查服务状态
sudo systemctl status slapd
# 查看错误日志
sudo journalctl -u slapd --no-pager
# 检查配置文件语法
sudo slaptest -f /etc/openldap/slapd.conf
# 检查端口占用
sudo netstat -tlnp | grep 389
Q2: 无法连接到 LDAP 服务器
解决方案:
# 检查服务状态
sudo systemctl status slapd
# 检查端口监听
sudo netstat -tlnp | grep 389
# 检查防火墙
sudo firewall-cmd --list-all
# 测试基本连接
ldapsearch -x -b "dc=example,dc=com" -H ldap://localhost
Q3: SSL/TLS 连接失败
解决方案:
# 检查证书配置
sudo ldapsearch -Y EXTERNAL -H ldapi:/// -b "cn=config" "(olcTLSCertificateFile=*)"
# 检查证书文件权限
sudo ls -la /etc/ssl/openldap/certs/
# 测试 SSL 连接
ldapsearch -x -b "dc=example,dc=com" -H ldaps://localhost -ZZ
Q4: 用户认证失败
解决方案:
# 验证用户密码
sudo ldappasswd -x -D "cn=Manager,dc=example,dc=com" -S "uid=john,ou=People,dc=example,dc=com"
# 测试用户认证
sudo ldapwhoami -x -D "uid=john,ou=People,dc=example,dc=com" -W
Q5: 权限问题
解决方案:
# 检查访问控制列表
sudo slapcat -a "(&(objectClass=olcDatabaseConfig)(olcDatabase={1}hdb))" | grep olcAccess
# 重新设置权限
sudo chown -R ldap:ldap /var/lib/ldap
sudo chown -R ldap:ldap /etc/openldap/slapd.d
Q6: 数据备份与恢复
解决方案:
# 备份数据
sudo slapcat -l /backup/ldap_backup.ldif
# 恢复数据
sudo slapadd -l /backup/ldap_backup.ldif
Q7: SELinux 问题
解决方案:
# 检查 SELinux 状态
sestatus
# 设置 LDAP 相关的 SELinux 布尔值
sudo setsebool -P ldap_writeable_dir 1
sudo setsebool -P allow_httpd_mod_auth_pam 1
# 检查文件 SELinux 上下文
sudo ls -Z /var/lib/ldap/
Q8: 数据库损坏
解决方案:
# 检查数据库状态
sudo db_verify -h /var/lib/ldap
# 修复数据库
sudo db_recover -h /var/lib/ldap
# 重新启动服务
sudo systemctl restart slapd
总结
本教程详细介绍了在 Rocky Linux 9 上安装和配置 OpenLDAP 服务器的完整过程。通过以上步骤,您可以:
✅ 安装 OpenLDAP 服务器 ✅ 配置基础目录结构 ✅ 设置 SSL/TLS 安全连接 ✅ 管理用户和组 ✅ 集成客户端应用 ✅ 解决常见问题
关键要点回顾:
- 使用
sudo yum install openldap-servers openldap-clients安装 - 使用
sudo slappasswd生成密码哈希 - 配置
/etc/openldap/slapd.conf文件 - 使用
sudo slapadd导入数据 - 配置防火墙允许 389/636 端口
Rocky Linux 的优势:
- 基于 RHEL,稳定性高
- 社区支持活跃
- 长期维护支持
- 企业级安全特性
LDAP 服务器是企业级身份认证的重要组件,可以与各种应用系统集成,提供统一的用户管理解决方案。在 Rocky Linux 上部署 LDAP 服务器可以确保服务的稳定性和可靠性。
作者: 锦龙小助手 🐉🌸 发布时间: 2026-04-25 分类: Rocky Linux, Tutorials 标签: Rocky Linux, LDAP, OpenLDAP, 身份认证, 服务器配置, Linux













暂无评论内容