如何在 Debian 11 上安装 OpenLDAP
本教程适用于这些操作系统版本
- Debian 11(Bullseye)
- Debian 10(Buster)
在此页
- 先决条件
- 在 Debian 11 上安装 OpenLDAP
- 配置 OpenLDAP 服务器
- 设置 UFW 防火墙
- 设置用户组
- 设置新用户
- 结论
OpenLDAP 是 LDAP(轻量级目录访问协议)的免费开源软件套件实现。它是一种独立于平台的协议,可用于集中式身份验证和目录访问服务,例如电子邮件和其他应用程序。
OpenLDAP 是一个独立的 LDAP 守护进程,提供其库和实用程序。此外,它还提供对 TLS 证书身份验证和 SASL 身份验证的支持。
在本文中,我们将向您展示如何在 Debian 11 Bullseye 上安装和配置 OpenLDAP。
先决条件
- 一台 Debian 11 服务器。
- 具有 sudo/root 权限的非 root 用户。
在 Debian 11 上安装 OpenLDAP
首先,您将安装 OpenLDAP 包到 Debian 11 服务器。默认的 Debian 存储库提供稳定版本 OpenLDAP v2.4。
在开始安装 OpenLDAP 软件包之前,请运行下面的 apt 命令来刷新 Debians 存储库。
sudo apt update
现在安装 OpenLDAP 包 slapd 和 ldap-utils。包 slapd 是 OpenLDAP 的主要包,ldap-utils 提供用于管理 OpenLDAP 服务器的命令行实用程序。
sudo apt install slapd ldap-utils
键入 Y 并按 ENTER 确认安装。

现在系统会要求您设置 OpenLDAP 管理员用户的密码。
输入您的密码并选择确定,然后按 ENTER。

重复您的密码并选择确定,然后再次按 ENTER。 OpenLDAP 安装完成。

配置 OpenLDAP 服务器
安装 OpenLDAP 软件包后,您现在将在 Debian 服务器上设置 OpenLDAP。
在继续之前,让我们使用以下命令设置服务器的 FQDN(完全限定域名)。
sudo hostnamectl set-hostname ldap.mydomain.local
现在使用 nano 编辑器编辑 /etc/hosts 文件。
sudo nano /etc/hosts
复制并粘贴以下配置,并确保将 IP 地址更改为您的服务器 IP 地址,将 FQDN 更改为您的主机名和本地域名。
192.168.10.50 ldap.mydomain.local ldap
保存并关闭文件。
现在从您当前的 SSH 会话注销并再次登录到您的服务器。
接下来,运行以下命令重新配置 OpenLDAP 包 slapd。
sudo dpkg-reconfigure slapd
当要求删除/省略旧的 OpenLDAP 配置时,选择否。这将使旧配置保持可用。

现在输入 OpenLDAP 服务器的 DNS 本地域名并选择确定。

输入组织名称并选择确定。或者,您可以将其保留为默认值,并使用与域名相同的名称。

现在输入 OpenLDAP 管理员密码并选择确定继续。

确认 OpenLDAP 管理员密码并再次选择确定。

当要求删除旧的 slapd 数据库时选择 NO。

现在选择 Yes 移动旧的 slapd 数据库。

OpenLDAP 包的配置现已完成。
要验证 OpenLDAP 配置,请运行下面的 slapcat 命令。
sudo slapcat
现在你应该得到类似于下面截图的输出。 OpenLDAP 的域名和组织名称正确使用 mydomain.local

最后,重新启动 slapd 服务以应用新更改。然后验证slapd 服务。
sudo systemctl restart slapd
sudo systemctl status slapd
现在您应该得到 slapd 服务状态为活动(运行)。

设置 UFW 防火墙
如果您在启用 UFW 防火墙的情况下运行 Debian 服务器,则需要将 LDAP 和 LDAPS 服务添加到 UFW 防火墙。
建议在您的本地环境中使用防火墙,这将增强您的服务器安全性。
现在运行下面的 ufw 命令将 LDAP 和 LDAPS 服务添加到 ufw 防火墙。
sudo ufw allow LDAP
sudo ufw allow LDAPS
接下来,使用以下命令重新加载 UFW 防火墙规则。
sudo ufw reload
最后,使用以下命令验证 UFW 防火墙上启用的服务列表。
sudo ufw status
您应该得到如下面的屏幕截图所示的输出。 LDAP 和 LDAPS 服务被添加到 UFW 防火墙。

现在您已准备好设置 OpenLDAP 服务器的组和用户。
设置用户组
OpenLDAP 服务器通常用于对一组计算机或服务器进行身份验证。在此步骤中,您将使用 LDIF(LDAP 数据交换格式)文件在 OpenLDAP 服务器上设置组。
LDIF 是 LDAP 条目的格式化文件,可用于管理 OpenLDAP 服务器上的用户和组。
使用 nano 编辑器创建一个新文件 /etc/ldap/users.ldif。
sudo nano /etc/ldap/users.ldif
复制并粘贴以下配置。此配置将在域名 mydomain.local 上创建一个名为 People 的新组。
dn: ou=People,dc=mydomain,dc=local
objectClass: organizationalUnit
ou: People
保存并关闭文件。
接下来,运行下面的 ldapadd 命令以添加在 users.ldif 文件中定义的组。
sudo ldapadd -D "cn=admin,dc=mydomain,dc=local" -W -H ldapi:/// -f /etc/ldap/users.ldif
您将被要求输入 OpenLDAP 服务器的管理员密码。当该过程成功时,您应该会看到一条消息,例如 adding new entry \ou=People,dc=mydomain,dc=local\。

要验证人员组,请运行下面的 ldapsearch 命令。此命令将显示 OpenLDAP 服务器上的可用组。
sudo ldapsearch -x -b "dc=mydomain,dc=local" ou
现在您应该可以看到组 People 在 OpenLDAP 服务器上可用。

设置新用户
在 OpenLDAP 上设置组后,您现在可以将新用户添加到 OpenLDAP 服务器。而且,这可以通过使用 LDIF 文件和 ldapadd 命令行工具来完成。
现在使用 nano 编辑器创建一个新文件 alice.ldif。
sudo nano alice.ldif
复制并粘贴以下配置,并确保使用强密码更改密码 AlicePassword。
在此示例中,您将创建一个名为 alice 的新用户,其主目录为 /home/alice,默认 shell 为 /bin/bash。此外,用户 alice 是组 People 的一部分。
# Add user alice to LDAP Server
dn: cn=alice,ou=People,dc=mydomain,dc=local
objectClass: top
objectClass: account
objectClass: posixAccount
objectClass: shadowAccount
cn: alice
uid: alice
uidNumber: 10001
gidNumber: 10001
homeDirectory: /home/alice
userPassword: AlicePassword
loginShell: /bin/bash
保存并关闭文件。
接下来,运行下面的 ldapadd 命令以根据 alice.ldif 文件添加新用户。
sudo ldapadd -D "cn=admin,dc=mydomain,dc=local" -W -H ldapi:/// -f alice.ldif
输入 OpenLDAP 管理员密码,您应该得到诸如 adding new entry \cn=alice,ou=People,dc=mydomain,dc=local\ 之类的输出,这意味着新用户 alice 有已添加到 OpenLDAP 服务器。

运行下面的 ldapsearch 命令以获取 OpenLDAP 服务器上的用户列表。
sudo ldapsearch -x -b "ou=People,dc=mydomain,dc=local"
您应该得到如下面的屏幕截图所示的输出。新用户 alice 现在可在 OpenLDAP 服务器上使用。

结论
恭喜!您现在已经在 Debian 11 服务器上成功安装了 OpenLDAP 服务器。此外,您还学习了如何使用 LDIF(LDAP 数据交换格式)文件和 ldapadd 命令行工具添加组和用户。
在下一步中,您可能有兴趣了解有关如何将 Ubuntu 和 CentOS 等 Linux 机器添加到 OpenLDAP 服务器的更多信息。