基于 Rocky Linux 部署 LDAP Tool Box Self Service Password:企业 AD 域用户自助密码重置平台

前言

在企业 IT 运维工作中,密码问题往往占据了大量工单:

  • 密码过期无法登录

  • 忘记密码需要重置

  • 账户被锁定

  • VPN 无法登录

  • 文件服务器挂载失败

尤其是在 VFX、动画、渲染农场等行业中,艺术家和制作人员经常需要同时访问:

  • Windows AD 域

  • SMB 文件共享

  • Linux 工作站

  • 渲染管理平台

一旦密码出现问题,往往会影响整个制作流程。

为了降低 IT 运维压力,本文介绍如何使用开源项目 LDAP Tool Box Self Service Password(简称 SSP)搭建企业级自助密码管理平台。

部署环境:

项目

版本

操作系统

Rocky Linux 8.10

Web服务

Nginx

目录服务

Microsoft Active Directory

SSL证书

Let's Encrypt

部署方式

Docker


什么是 Self Service Password

Self Service Password 是一套开源 LDAP 自助密码管理系统。

主要功能:

  • 修改密码

  • 忘记密码重置

  • 解锁账户

  • 密码到期提醒

  • 邮件验证

  • 安全问题验证

  • Active Directory支持

  • OpenLDAP支持

  • FreeIPA支持

用户无需联系 IT 即可完成大部分密码相关操作。


系统架构

                Internet / VPN
                       │
                       ▼
                 Nginx HTTPS
                       │
                       ▼
          Self Service Password
                       │
                       ▼
             Active Directory
                       │
        ┌──────────────┼──────────────┐
        ▼              ▼              ▼

    Windows        Linux        macOS

部署前准备

假设:

域名:
ssp.company.com

AD服务器:
10.10.10.10

域名:
company.local

Service Account:
svc_ldap

OU:
OU=Users,DC=company,DC=local

服务器要求:

CPU:2 Core
内存:2GB
硬盘:20GB

安装 Docker

更新系统:

sudo dnf update -y

安装 Docker:

curl -fsSL https://get.docker.com | bash

启动服务:

systemctl enable docker
systemctl start docker

验证:

docker version

创建工作目录

mkdir -p /opt/ssp
cd /opt/ssp

创建配置目录:

mkdir conf

编写 Docker Compose 文件

创建:

vim docker-compose.yml

内容:

version: "3"

services:
  ssp:
    image: ltbproject/self-service-password:latest

    container_name: ssp

    restart: always

    ports:
      - "8080:80"

    volumes:
      - ./conf:/var/www/conf

启动:

docker compose up -d

查看状态:

docker ps

配置 Active Directory

进入配置目录:

cd /opt/ssp/conf

复制默认配置:

docker cp ssp:/var/www/conf/config.inc.local.php .

编辑:

vim config.inc.local.php

修改以下内容:

LDAP服务器:

$ldap_url = "ldap://10.10.10.10";

Base DN:

$ldap_base = "DC=company,DC=local";

Service Account:

$ldap_binddn = "CN=svc_ldap,OU=Service,DC=company,DC=local";

密码:

$ldap_bindpw = "StrongPassword";

用户搜索:

$ldap_login_attribute = "sAMAccountName";

用户过滤器:

$ldap_filter = "(&(objectClass=user)(sAMAccountName={login}))";

配置密码修改策略

启用密码复杂度检查:

$pwd_min_length = 12;

开启大写要求:

$pwd_uppercase = 1;

开启小写要求:

$pwd_lowercase = 1;

开启数字要求:

$pwd_digit = 1;

开启特殊字符:

$pwd_special = 1;

配置邮箱找回密码

企业邮箱:

$mail_from = "it@company.com";

$mail_from_name = "IT Support";

SMTP服务器:

$mail_smtp_host = "smtp.company.com";

$mail_smtp_user = "it@company.com";

$mail_smtp_pass = "SMTP_PASSWORD";

$mail_smtp_port = 587;

$mail_smtp_secure = "tls";

配置 HTTPS

安装 Nginx:

dnf install nginx -y

创建配置:

vim /etc/nginx/conf.d/ssp.conf

内容:

server {

    listen 80;

    server_name ssp.company.com;

    location / {

        proxy_pass http://127.0.0.1:8080;

        proxy_set_header Host $host;

        proxy_set_header X-Real-IP $remote_addr;

    }
}

启动:

systemctl enable nginx
systemctl restart nginx

配置 SSL

安装 Certbot:

dnf install certbot python3-certbot-nginx -y

申请证书:

certbot --nginx -d ssp.company.com

自动续期测试:

certbot renew --dry-run

安全加固建议

1. 不直接开放公网

推荐:

VPN
   ↓
SSP

或者:

WAF
 ↓
SSP

2. 使用专用 LDAP 账号

不要使用:

Domain Admin

建议:

svc_ldap

仅赋予:

  • 查询用户

  • 修改密码

权限即可。


3. 限制访问来源

Nginx:

allow 10.0.0.0/8;
deny all;

4. 开启日志审计

建议记录:

  • 修改密码

  • 解锁账户

  • 重置密码

  • 登录失败

日志统一接入:

  • ELK

  • Graylog

  • Splunk


VFX 行业实际应用案例

某动画制作公司拥有:

  • 500+ 艺术家

  • 600TB项目数据

  • Active Directory域环境

  • Linux渲染农场

以前:

每月密码相关工单:
约80~120个

部署 SSP 后:

每月密码相关工单:
不足10个

IT 运维压力大幅下降。


总结

LDAP Tool Box Self Service Password 是一套成熟且稳定的企业级密码自助管理平台。

对于拥有:

  • Active Directory

  • OpenLDAP

  • FreeIPA

  • Samba AD

的企业来说,都可以快速部署。

其优势包括:

  • 开源免费

  • Docker部署简单

  • 支持AD

  • 支持找回密码

  • 支持账户解锁

  • 支持HTTPS

  • 支持企业邮箱

对于运维团队而言,它不仅能够提升用户体验,也能显著减少密码相关工单,是一项投入小、收益高的基础设施建设项目。

Ubuntu 22.04 虚拟机中添加新硬盘并扩容存储空间 2026-04-09
使用 Snipe-IT 构建公司资产管理系统,打通部门信息壁垒 2026-07-06