搬瓦工 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):定义条目必须和可以包含的属性集合,如
inetOrgPerson、posixAccount。 - 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 SSO、Authelia 认证网关、Gitea、Nextcloud 等众多应用集成,实现一套账号管理所有服务。在搬瓦工 VPS 上搭建 LDAP 建议至少使用 1GB 内存的方案。选购搬瓦工 VPS 请参考 全部方案,购买时使用优惠码 NODESEEK2026 可享受 6.77% 的折扣,通过 bwh81.net 进入官网购买。