搬瓦工 VPS LDAP 目录服务搭建教程

LDAP(Lightweight Directory Access Protocol,轻量目录访问协议)是企业环境中最常用的统一身份认证解决方案。通过搭建 LDAP 目录服务,可以实现多台服务器和多个应用的统一账户管理,用户只需一套凭证即可访问所有授权资源。本文将详细介绍如何在搬瓦工 VPS 上使用 OpenLDAP 搭建目录服务,并配置客户端集成和安全加固。

一、LDAP 基本概念

  • 目录信息树(DIT):LDAP 采用树形结构组织数据,根节点通常是域名(如 dc=example,dc=com)。
  • 条目(Entry):树中的每个节点,具有唯一的 DN(Distinguished Name,如 uid=zhangsan,ou=People,dc=example,dc=com)。
  • 属性(Attribute):条目包含的信息字段,如 cn(通用名)、mail(邮箱)、uid(用户 ID)。
  • 对象类(ObjectClass):定义条目必须和可以包含的属性集合,如 inetOrgPersonposixAccount
  • Schema:属性和对象类的定义集合,规定了数据的结构和约束。

二、安装 OpenLDAP 服务端

2.1 Ubuntu / Debian 安装

apt update
apt install slapd ldap-utils -y

# 安装过程会提示设置管理员密码
# 安装后重新配置
dpkg-reconfigure slapd

在重新配置过程中,选择 DNS 域名(如 example.com)、组织名称并设置管理员密码。

2.2 CentOS / RHEL 安装

yum install openldap openldap-servers openldap-clients -y
systemctl start slapd
systemctl enable slapd

# 生成管理员密码
slappasswd

2.3 使用 Docker 部署

mkdir -p /opt/openldap/{data,config}

docker run -d \
  --name openldap \
  --restart always \
  -p 389:389 \
  -p 636:636 \
  -e LDAP_ORGANISATION="My Company" \
  -e LDAP_DOMAIN="example.com" \
  -e LDAP_ADMIN_PASSWORD="StrongAdminPass123" \
  -v /opt/openldap/data:/var/lib/ldap \
  -v /opt/openldap/config:/etc/ldap/slapd.d \
  osixia/openldap:latest

三、组织架构设计

3.1 创建组织单元

创建基础的组织结构,新建文件 base.ldif

dn: ou=People,dc=example,dc=com
objectClass: organizationalUnit
ou: People
description: All users

dn: ou=Groups,dc=example,dc=com
objectClass: organizationalUnit
ou: Groups
description: All groups

dn: ou=Services,dc=example,dc=com
objectClass: organizationalUnit
ou: Services
description: Service accounts

导入 LDIF 文件:

ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f base.ldif

3.2 添加用户

创建用户 LDIF 文件 users.ldif

dn: uid=zhangsan,ou=People,dc=example,dc=com
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
uid: zhangsan
cn: Zhang San
sn: Zhang
givenName: San
mail: zhangsan@example.com
uidNumber: 10001
gidNumber: 10001
homeDirectory: /home/zhangsan
loginShell: /bin/bash
userPassword: {SSHA}hashed_password_here
ldapadd -x -D "cn=admin,dc=example,dc=com" -W -f users.ldif

3.3 创建用户组

dn: cn=developers,ou=Groups,dc=example,dc=com
objectClass: posixGroup
cn: developers
gidNumber: 10001
memberUid: zhangsan
memberUid: lisi

四、LDAP 常用管理操作

# 搜索所有用户
ldapsearch -x -b "ou=People,dc=example,dc=com" -D "cn=admin,dc=example,dc=com" -W

# 搜索特定用户
ldapsearch -x -b "dc=example,dc=com" "(uid=zhangsan)" -D "cn=admin,dc=example,dc=com" -W

# 修改用户属性
ldapmodify -x -D "cn=admin,dc=example,dc=com" -W <<EOF
dn: uid=zhangsan,ou=People,dc=example,dc=com
changetype: modify
replace: mail
mail: zhangsan_new@example.com
EOF

# 修改用户密码
ldappasswd -x -D "cn=admin,dc=example,dc=com" -W -S "uid=zhangsan,ou=People,dc=example,dc=com"

# 删除条目
ldapdelete -x -D "cn=admin,dc=example,dc=com" -W "uid=zhangsan,ou=People,dc=example,dc=com"

五、配置 LDAPS 加密通信

# 准备 TLS 证书(可使用 Let's Encrypt)
cp /etc/letsencrypt/live/ldap.example.com/fullchain.pem /etc/ldap/ssl/cert.pem
cp /etc/letsencrypt/live/ldap.example.com/privkey.pem /etc/ldap/ssl/key.pem
chown openldap:openldap /etc/ldap/ssl/*.pem

# 创建 TLS 配置 LDIF
cat > tls.ldif <<EOF
dn: cn=config
changetype: modify
add: olcTLSCACertificateFile
olcTLSCACertificateFile: /etc/ldap/ssl/cert.pem
-
add: olcTLSCertificateFile
olcTLSCertificateFile: /etc/ldap/ssl/cert.pem
-
add: olcTLSCertificateKeyFile
olcTLSCertificateKeyFile: /etc/ldap/ssl/key.pem
EOF

ldapmodify -Y EXTERNAL -H ldapi:/// -f tls.ldif

六、部署 phpLDAPadmin 管理界面

docker run -d \
  --name phpldapadmin \
  --restart always \
  -p 6443:443 \
  --link openldap:ldap \
  -e PHPLDAPADMIN_LDAP_HOSTS=ldap \
  -e PHPLDAPADMIN_HTTPS=true \
  osixia/phpldapadmin:latest

通过浏览器访问 https://your-server-ip:6443 即可使用图形化界面管理 LDAP。

七、客户端集成

7.1 Linux 客户端

# Ubuntu / Debian
apt install libnss-ldapd libpam-ldapd -y

# 配置 /etc/nslcd.conf
uri ldaps://ldap.example.com
base dc=example,dc=com
ssl on
tls_reqcert allow

# 重启服务
systemctl restart nslcd nscd

7.2 验证集成

# 测试 LDAP 用户是否可见
getent passwd zhangsan

# 测试 LDAP 认证
su - zhangsan

八、安全加固建议

  • 始终使用 LDAPS(636 端口)或 StartTLS 加密通信,禁止明文传输密码。
  • 设置访问控制列表(ACL),限制普通用户只能读取自身信息。
  • 使用强密码策略模块 ppolicy 强制密码复杂度和过期策略。
  • 定期备份 LDAP 数据库,使用 slapcat 导出数据。
  • 通过防火墙限制 LDAP 端口的访问来源。

总结

OpenLDAP 是搭建统一身份认证的核心基础设施,配置完成后可以与 Keycloak SSOAuthelia 认证网关、Gitea、Nextcloud 等众多应用集成,实现一套账号管理所有服务。在搬瓦工 VPS 上搭建 LDAP 建议至少使用 1GB 内存的方案。选购搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的折扣,通过 bwh81.net 进入官网购买。

关于本站

搬瓦工VPS中文网(bwgvps.com)是非官方中文信息站,整理搬瓦工的方案、优惠和教程。我们不销售主机,不提供技术服务。

新手必读
搬瓦工优惠码

NODESEEK2026(优惠 6.77%)

购买时填入即可抵扣。