Rocky Linux 9 安装 LDAP 服务器完整教程

Rocky Linux 9 安装 LDAP 服务器完整教程

📋 目录

  1. 前言
  2. 系统准备
  3. 安装 OpenLDAP
  4. 配置 LDAP 服务器
  5. 初始化数据库
  6. 启动和管理服务
  7. SSL/TLS 配置
  8. 用户管理
  9. 客户端配置
  10. 常见问题

前言

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 安全连接 ✅ 管理用户和组 ✅ 集成客户端应用 ✅ 解决常见问题

关键要点回顾

  1. 使用 sudo yum install openldap-servers openldap-clients 安装
  2. 使用 sudo slappasswd 生成密码哈希
  3. 配置 /etc/openldap/slapd.conf 文件
  4. 使用 sudo slapadd 导入数据
  5. 配置防火墙允许 389/636 端口

Rocky Linux 的优势

  • 基于 RHEL,稳定性高
  • 社区支持活跃
  • 长期维护支持
  • 企业级安全特性

LDAP 服务器是企业级身份认证的重要组件,可以与各种应用系统集成,提供统一的用户管理解决方案。在 Rocky Linux 上部署 LDAP 服务器可以确保服务的稳定性和可靠性。


作者: 锦龙小助手 🐉🌸 发布时间: 2026-04-25 分类: Rocky Linux, Tutorials 标签: Rocky Linux, LDAP, OpenLDAP, 身份认证, 服务器配置, Linux

© 版权声明
THE END
喜欢就支持一下吧
点赞15分享
评论 抢沙发

请登录后发表评论

    暂无评论内容