插件窝 干货文章 CentOS 7 简单搭建OpenLDAP服务

CentOS 7 简单搭建OpenLDAP服务

example 哈希 sudo dc 148    来源:    2025-05-10

CentOS 7 搭建OpenLDAP服务指南

1. 准备工作

确保你的CentOS 7系统已更新到最新状态:

sudo yum update -y
sudo reboot  # 如果需要内核更新,建议重启

2. 安装OpenLDAP和相关工具

sudo yum install -y openldap openldap-servers openldap-clients

3. 配置OpenLDAP服务器

3.1 复制默认配置文件

sudo cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG
sudo chown ldap:ldap /var/lib/ldap/DB_CONFIG

3.2 启动slapd服务并设置开机启动

sudo systemctl start slapd
sudo systemctl enable slapd

3.3 检查服务状态

sudo systemctl status slapd

4. 设置管理员密码

4.1 生成管理员密码哈希

slappasswd

输入你想要的密码后,会生成一个SSHA哈希值,记下这个值(后面会用到)。

4.2 创建修改密码的LDIF文件

创建一个名为chrootpw.ldif的文件:

dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}你刚才生成的哈希值

4.3 应用修改

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif

5. 导入基本模式

sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif

6. 设置域名和目录管理员

6.1 创建域名设置LDIF文件

创建一个名为chdomain.ldif的文件(将example.com替换为你自己的域名,dc=example,dc=com也要相应修改):

dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth" read by dn.base="cn=Manager,dc=example,dc=com" read by * none

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=Manager,dc=example,dc=com

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}你之前生成的哈希值

dn: olcDatabase={2}hdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by dn="cn=Manager,dc=example,dc=com" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=Manager,dc=example,dc=com" write by * read

6.2 应用修改

sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif

7. 创建基础目录结构

7.1 创建basedomain.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

dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People

dn: ou=Group,dc=example,dc=com
objectClass: organizationalUnit
ou: Group

7.2 添加基础结构

sudo ldapadd -x -D cn=Manager,dc=example,dc=com -W -f basedomain.ldif

系统会提示输入之前设置的密码。

8. 防火墙设置

sudo firewall-cmd --add-service=ldap --permanent
sudo firewall-cmd --reload

9. 测试LDAP服务

9.1 搜索测试

ldapsearch -x -b dc=example,dc=com -D "cn=Manager,dc=example,dc=com" -W

9.2 添加测试用户

创建一个testuser.ldif文件:

dn: uid=testuser,ou=People,dc=example,dc=com
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: Test User
uid: testuser
uidNumber: 1000
gidNumber: 1000
homeDirectory: /home/testuser
loginShell: /bin/bash
userPassword: {SSHA}生成的密码哈希
shadowLastChange: 0
shadowMax: -1
shadowWarning: 0

添加用户:

ldapadd -x -D cn=Manager,dc=example,dc=com -W -f testuser.ldif

10. 管理工具安装(可选)

安装phpLDAPadmin进行Web管理:

sudo yum install -y epel-release
sudo yum install -y phpldapadmin

配置phpLDAPadmin: 编辑/etc/phpldapadmin/config.php

$servers->setValue('server','host','127.0.0.1');
$servers->setValue('server','base',array('dc=example,dc=com'));
$servers->setValue('login','bind_id','cn=Manager,dc=example,dc=com');
$servers->setValue('login','auth_type','session');

然后通过浏览器访问:http://your-server-ip/phpldapadmin

常见问题解决

  1. 连接被拒绝

    • 检查slapd服务是否运行:systemctl status slapd
    • 检查防火墙设置
  2. 认证失败

    • 确保使用正确的DN和密码
    • 检查olcRootPW是否正确设置
  3. 权限问题

    • 确保/var/lib/ldap/目录及其内容属于ldap用户
  4. 日志查看

    journalctl -u slapd -f
    

现在你已经成功在CentOS 7上搭建了OpenLDAP服务!你可以根据需要添加更多用户和组织单元。