本教程适用于以下操作系统版本

  • Debian 12 (Bookworm)
  • Debian 11 (Bullseye)
  • Debian 10 (Buster)

本页内容

  • 先决条件
  • 设置 FQDN
  • 安装 OpenLDAP 服务器
  • 使用 UFW 保护 OpenLDAP
  • 添加基础组
  • 添加新用户
  • 安装 LDAP Account Manager
  • 配置 LDAP Account Manager
  • 结论

OpenLDAP 是轻量级目录访问协议(LDAP)的软件实现。OpenLDAP 是免费的开源软件,采用名为 OpenLDAP Public License 的 BSD 风格许可证。其命令行驱动的 LDAP 软件在大多数 Linux 发行版(如 CentOS、Ubuntu、Debian、SUSE 等)上均可使用。

OpenLDAP 是面向 LDAP 服务器的完整软件套件,包含 SLAPD(独立 LDAP 守护进程)、SLURPD(独立 LDAP 更新复制守护进程),以及用于管理 LDAP 服务器的一些实用程序和工具。OpenLDAP 是高度可定制的 LDAP 服务器,支持所有主流计算平台。

本文将逐步指导你在 Debian 12 上安装 OpenLDAP 服务器。你还将安装 LDAP Account Manager(简称 LAM),这是一个可用于管理 OpenLDAP 服务器的 PHP Web 应用程序。

先决条件

开始本指南前,你必须具备以下条件:

一台 Debian 12 服务器——本演示使用主机名为 ldap、IP 地址为 192.168.10.1 5 的机器。一个具有管理员权限的非 root 用户。

设置 FQDN

第一步,你必须配置 Debian 服务器的正确 fqdn(Fully Qualified Domain Name,完全限定域名)。这可以通过 hostnamectl 工具并修改 /etc/hosts 文件来实现。

执行下面的 hostnamectl 命令为你的 Debian 服务器设置 fqdn。在本例中,OpenLDAP 服务器将使用的 fqdn 是 ldap.mydomain.local。

sudo hostnamectl set-hostname ldap.mydomain.local

使用 nano 编辑器命令,打开 /etc/hosts 文件。

sudo nano /etc/hosts

像下面这样添加你的 OpenLDAP 服务器 IP 地址、主机名和 fqdn:

192.168.10.15  ldap.mydomain.local ldap

完成后,保存文件并退出编辑器。

最后,运行以下命令以确保你拥有正确的 fqdn。然后,确认 fqdn 指向正确的 IP 地址。

sudo hostname -f
sudo ping -c3 ldap.mydomain.local

在以下输出中,你应该看到 Debian 服务器的 fqdn 为 ldap.mydomain.local,其指向本地 IP 地址 192.168.10.15。

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

安装 OpenLDAP 服务器

配置好 fqdn 后,你可以从 Debian 官方仓库通过 APT 安装 OpenLDAP 服务器软件包。然后,你必须配置 OpenLDAP 服务器的一些基本信息,例如域名和管理员密码。

在安装 OpenLDAP 之前,运行 apt update 命令以刷新你的 Debian 软件包索引。

sudo apt update

现在运行下面的 apt install 命令来安装 OpenLDAP 服务器软件包。当提示时,输入 y 以确认并继续安装。

sudo apt install slapd ldap-utils

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

在安装过程中,系统会要求你设置 OpenLDAP 服务器的管理员密码。输入你的密码并重复确认。

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

OpenLDAP 服务器安装完成后,运行以下命令来配置你的 OpenLDAP 安装。

sudo dpkg-reconfigure slapd

当被问及是否省略默认的 OpenLDAP 配置时,选择 NO。

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

输入你的 OpenLDAP 服务器域名,然后选择 OK。

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

现在输入组织名称,然后选择 OK。

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

接下来,输入你的 OpenLDAP 服务器管理员密码并重复确认。

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

当被问及是否删除 OpenLDAP 服务器的旧数据库时,选择 NO。

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

要完成 OpenLDAP 服务器配置,当被问及是否将旧的 OpenLDAP 数据库移动到新位置时,选择 YES。

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

完成后,你应该得到如下所示的输出:

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

OpenLDAP 服务器配置完成后,执行下面的 systemctl 命令以重启 OpenLDAP 服务 slapd 并应用更改。然后,验证 slapd 服务以确保其正在运行。

sudo systemctl restart slapd
sudo systemctl status slapd

如果正在运行,你应该得到类似 active (running) 的输出。

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

最后,运行以下命令来验证你的 OpenLDAP 服务器的域名。

sudo slapcat

如果一切顺利,你应该看到 OpenLDAP 服务器已使用自定义域进行配置。在本例中,域名为 ldap.mydomain.local。

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

使用 UFW 保护 OpenLDAP

在本例中,你将通过 UFW 保护 OpenLDAP 服务器。因此,你将通过 APT 安装 UFW,然后配置 UFW 并开放 LDAP、LDAPS、HTTP 和 HTTPS 协议。

首先,通过下面的 apt install 命令安装 UFW。输入 y 以确认安装。

sudo apt install ufw

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

UFW 安装完成后,运行以下命令以添加 OpenSSH 配置文件并启用 UFW。输入 y 并按 ENTER 确认。

sudo ufw allow OpenSSH
sudo ufw enable

输出 "Firewall is active and enabled on system startup" 应该表明 UFW 现在正在运行且已启用。

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

接下来,运行下面的 ufw 命令以在 UFW 上启用 LDAP、LDAPS 和 WWW Full 配置文件。

sudo ufw allow LDAP
sudo ufw allow LDAPS
sudo ufw allow "WWW Full"

最后,运行下面的命令以重新加载 UFW 并应用更改。然后,验证 UFW 状态以确保 LDAP 和 LDAPS 在 UFW 上均可用。

sudo ufw reload
sudo ufw status

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

添加基础组

安装完 OpenLDAP 服务器和 UFW 后,现在你将通过 LDIF 文件为 OpenLDAP 服务器创建基础组。此处的基础域将用于存储 OpenLDAP 用户和组。

使用以下 nano 编辑器命令创建一个新的 LDIF 文件 base.ldif。

sudo nano base.ldif

插入以下配置,并务必将域名替换为你自己的域名。在本例中,你将创建两个基础组:People 和 Groups。

# base.ldif
dn: ou=People,dc=ldap,dc=mydomain,dc=local
objectClass: organizationalUnit
ou: people
dn: ou=Groups,dc=ldap,dc=mydomain,dc=local
objectClass: organizationalUnit
ou: groups

完成后,保存文件并退出编辑器。

现在运行以下命令以通过 base.ldif 文件添加一个新的基础组。当提示时,输入你的 OpenLDAP 管理员密码。

sudo ldapadd -x -D cn=admin,dc=ldap,dc=mydomain,dc=local -W -f base.ldif

最后,运行下面的 ldapsearch 命令以查找你的 OpenLDAP 服务器上可用基础组。

sudo ldapsearch -x -b "dc=ldap,dc=mydomain,dc=local" ou

如果一切顺利,你应该看到 OpenLDAP 上有两个可用的基础组 People 和 Groups。

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

添加新用户

在本节中,你将通过 LDIF 文件创建一个新的 OpenLDAP 用户。

要创建一个新的 OpenLDAP 用户,你必须通过下面的 slappasswd 命令生成加密密码。输入你的密码并重复,然后复制生成的密码。

sudo slappasswd

现在使用以下 nano 编辑器命令创建一个新的 LDIF 文件 user.ldi f。

nano user.ldif

插入以下配置,并务必更改用户、密码和域名的详细信息。在本例中,你将创建一个新用户和组 debian。

# user.ldif
dn: uid=debian,ou=People,dc=ldap,dc=mydomain,dc=local
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: debian
sn: bookworm
userPassword: {SSHA}23rFF1ofbNo5MRxEJo6D2Z4PT2GOxeWt
loginShell: /bin/bash
uidNumber: 2000
gidNumber: 2000
homeDirectory: /home/debian
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0
dn: cn=debian,ou=Groups,dc=ldap,dc=mydomain,dc=local
objectClass: posixGroup
cn: debian
gidNumber: 2000
memberUid: debian

完成后,保存并退出文件。

接下来,运行下面的 ldapadd 命令以通过 LDIF 文件 user.ldif 添加你的用户。当提示时,输入你的 OpenLDAP 管理员密码。

sudo ldapadd -x -D cn=admin,dc=ldap,dc=mydomain,dc=local -W -f user.ldif

最后,运行以下命令以查找基础组 People 上可用的用户。如果成功,你应该看到用户 debian 已被添加到 OpenLDAP 服务器。

sudo ldapsearch -x -b "ou=People,dc=ldap,dc=mydomain,dc=local"

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

安装 LDAP Account Manager

至此,你已经完成了 OpenLDAP 服务器的安装。在接下来的两个步骤中,你将通过 Debian 官方仓库安装 LDAP Account Manager(LAM),然后将 LAM 与你的 OpenLDAP 服务器安装进行配置。

运行下面的 apt install 命令,将 ldap-account-manager 安装到你的 OpenLDAP 服务器。通过安装 ldap-account-manager,你还将安装额外的依赖项,例如 PHP 8.2 和 Apache2 Web 服务器。

sudo apt install ldap-account-manager

输入 y 以确认安装。

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

ldap-account-manager 安装完成后,使用 nano 编辑器命令打开 PHP 配置文件 /etc/php/8.2/apache2/php.ini。

sudo nano /etc/php/8.2/apache2/php.ini

将默认的 memory_limit 参数更改为 256M。

memory_limit = 256M

完成后,保存并退出文件。

接下来,使用 nano 编辑器命令打开 ldap-account-manager 的 Apache2 配置 /etc/apache2/conf-enabled/ldap-account-manager.conf。

sudo nano /etc/apache2/conf-enabled/ldap-account-manager.conf

将 "Require all granted" 参数更改为 "Require ip subnet",并务必添加你的本地 IP 地址以允许其访问 LDAP Account Manager。

```
#Require all granted
Require ip 127.0.0.1 192.168.10.0/24
```

完成后保存并退出文件。

现在运行下面的 systemctl 命令以重启 apache2 服务并应用更改。

sudo systemctl restart apache2

最后,启动你的 Web 浏览器,访问带有路径 lam 的服务器 IP 地址(即:http://192.168.10.15/lam)以进入 LDAP Account Manager。如果成功,你应该看到如下所示的 LAM 页面:

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

配置 LDAP Account Manager

在接下来的步骤中,你将把 OpenLDAP 服务器添加到 LDAP Account Manager。这可以通过 Web 浏览器轻松完成。

点击右上角的 LAM configuration 菜单。

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

点击 Edit server profiles 以修改 OpenLDAP 配置文件。

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

当提示时,输入默认用户和密码 lam,然后点击 OK 继续。

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

现在你应该看到 LAM 配置页面。

在 General Settings 中,配置以下部分:

  • 在 Tool settings 中,输入你的 OpenLDAP 服务器域名。
  • 在 Security settings 中,将登录方式选择为 Fixed list,并输入 OpenLDAP 服务器的 admin 用户详细信息。
  • 在 Profile password 中,输入新密码并重复。

点击 Save 以应用更改。

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

接下来,点击 Account Types 部分,配置以下部分:

  • 在 Users 部分,输入 OpenLDAP 用户的默认基础域。在本例中,默认后缀为 People。
  • 在 Groups 部分,输入组的默认基础域。在本例中,默认其他组为 Groups。

点击 Save 以应用更改。

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

现在你应该被重定向到 LAM 登录页面。输入你的 OpenLDAP 服务器的 admin 用户和密码,然后点击 Login。

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

在 Users 部分,你应该看到用户 debian。

如何在 Debian 12 上安装 OpenLDAP 服务器和 LDAP Account Manager

结论

按照本分步指南,你已成功在 Debian 12 上完成了 OpenLDAP 服务器和 LDAP Account Manager 的安装。你还通过 UFW 保护了 OpenLDAP 服务器,并通过 LDIF 文件在 OpenLDAP 上创建了一个用户。最后,你还将 LAM 与 OpenLDAP 服务器进行了集成。现在你可以通过 LDAP Account Manager 向 OpenLDAP 服务器添加更多用户。