本页内容
- 先决条件
- 设置 FQDN
- 安装 OpenLDAP 服务器
- OpenLDAP 服务器基本配置
- 设置域名和基础域 配置域名 配置基础域
- 在 OpenLDAP 服务器上添加新用户
- 结论
- 配置域名
- 配置基础域
OpenLDAP 是轻量级目录访问协议(LDAP)的软件实现。OpenLDAP 是一款免费的开源软件,采用名为 OpenLDAP 公共许可证的 BSD 风格许可证。其命令行驱动的 LDAP 软件在大多数 Linux 发行版(如 CentOS、Ubuntu、Debian、SUSE 等)上均可使用。
OpenLDAP 是一套完整的 LDAP 服务器软件套件,包含 SLAPD(独立 LDAP 守护进程)、SLURPD(独立 LDAP 更新复制守护进程),以及用于管理 LDAP 服务器的一些实用程序和工具。OpenLDAP 是一个高度可定制的 LDAP 服务器,支持所有主流计算平台。
在本教程中,我们将向你展示如何在 AlmaLinux 9 上安装 OpenLDAP 服务器,让你可以轻松上手。
先决条件
要完成本教程,请确保你具备以下条件:
- 一台 AlmaLinux 9 机器——本演示使用主机名为 ldap、IP 地址为 192.168.10.50 的服务器。
- 一个具有管理员权限的非 root 用户。
设置 FQDN
在安装 OpenLDAP 服务器之前,你必须确保 fqdn 已配置并指向正确的 IP 地址。完成以下步骤以在你的 AlmaLinux 机器上设置 fqdn。
运行以下命令来设置你的 AlmaLinux 机器的 fqdn。在本例中,服务器的 fqdn 将为 ldap.hwdomain.local。
sudo hostnamectl set-hostname ldap.hwdomain.local
现在使用以下 nano 编辑器命令打开 /etc/hosts 文件。
sudo nano /etc/hosts
插入以下配置,并确保修改 IP 地址、fqdn 和主机名。
192.168.10.50 ldap.hwdomain.local ldap
完成后保存文件并退出编辑器。
最后,运行以下命令验证你系统的 fqdn,并确保它指向正确的本地 IP 地址。
sudo hostname -f
ping -c3 ldap.hwdomain.local
在本例中,fqdn ldap.hwdomain.local 指向 IP 地址 192.168.10.50。

安装 OpenLDAP 服务器
OpenLDAP 服务器软件包可在 EPEL 仓库中获取。因此,在安装 OpenLDAP 服务器之前,你必须在你的 AlmaLinux 服务器上安装 EPEL 仓库。
以下小节将向你展示如何添加 EPEL 仓库、安装 OpenLDAP 服务器以及管理 OpenLDAP 服务。
首先,通过下面的 dnf 命令将 EPEL 仓库添加到你的 AlmaLinux 服务器。
sudo dnf install epel-release -y

之后,运行下面的 dnf 命令来安装 OpenLDAP 服务器和客户端软件包。
sudo dnf install openldap-servers openldap-clients
当提示时,输入 y 确认并按 ENTER。

此外,当被要求添加 EPEL 仓库的 GPG 密钥时,再次输入 y 并按 ENTER。

现在运行下面的 systemctl 命令来启动并设置 OpenLDAP 服务 slapd 开机自启。
sudo systemctl start slapd
sudo systemctl enable slapd
使用以下命令验证 slapd 服务,以确保该服务正在运行。
sudo systemctl status slapd
如果正在运行,你应该会看到类似 active (running) 的输出。

最后,你需要通过 firewalld 开放 LDAP 和 LDAPS 服务以允许客户端连接。
运行下面的 firewall-cmd 命令将 LDAP 和 LDAPS 服务添加到 firewalld。然后重新加载 firewalld 以使更改生效。
sudo firewall-cmd --add-service={ldap,ldaps} --permanent
sudo firewall-cmd --reload
现在你可以使用下面的命令验证 firewalld 规则列表。
sudo firewall-cmd --list-all
如果成功,你应该会看到 LDAP 和 LDAPS 服务都出现在 firewalld 服务列表中。

OpenLDAP 服务器基本配置
安装 OpenLDAP 服务器后,你现在需要配置 OpenLDAP 安装。你必须做的第一步是设置一个管理员用户,并为你的 OpenLDAP 服务器安装导入一些基本 schema。
运行以下命令为你的 OpenLDAP 服务器生成哈希密码。输入你的密码并重复,然后复制生成的哈希密码。
slappasswd
使用下面的 nano 编辑器命令创建一个新文件 chrootpw.ldif。
nano chrootpw.ldif
添加以下配置,并确保将 olcRootPW 参数的值替换为你的哈希密码。这将更改你的 OpenLDAP 服务器的密码。
# chrootpw.ldif
dn: olcDatabase={0}config,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}yK9Dk+Kz9S9CLu3Y+ZtJVAYF+MPIRl1X
完成后保存并退出文件。
现在运行下面的 ldapadd 命令将配置应用到 OpenLDAP 服务器。
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f chrootpw.ldif
如果成功,你应该会看到类似如下的输出:

最后,运行以下命令向你的 OpenLDAP 服务器添加一些基本 schema。
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/cosine.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/nis.ldif
sudo ldapadd -Y EXTERNAL -H ldapi:/// -f /etc/openldap/schema/inetorgperson.ldif
这将向你的 OpenLDAP 服务器添加诸如 nis、cosine 和 inetorgperson 等新条目。

设置域名和基础域
现在 OpenLDAP 服务器的管理员密码已配置完成,下一步是为你的 OpenLDAP 服务器设置域名,并为用户创建一些基本的域名。
完成以下步骤以通过 LDIF 文件设置域名和基础域。
配置域名
使用以下 nano 编辑器命令创建一个新 LDIF 文件 chdomain.ldif。
nano chdomain.ldif
添加以下配置,并确保将域名 dc=hwdomain,dc=local 替换为你的 OpenLDAP 服务器域名。此外,在 olcRootPW 参数中,将其替换为你的哈希密码。
这将把你的 OpenLDAP 服务器的默认域名更改为新域名。
# chdomain.ldif
# replace to your own domain name for [dc=***,dc=***] section
# specify the password generated above for [olcRootPW] section
dn: olcDatabase={1}monitor,cn=config
changetype: modify
replace: olcAccess
olcAccess: {0}to * by dn.base="gidNumber=0+uidNumber=0,cn=peercred,cn=external,cn=auth"
read by dn.base="cn=Manager,dc=hwdomain,dc=local" read by * none
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcSuffix
olcSuffix: dc=hwdomain,dc=local
dn: olcDatabase={2}mdb,cn=config
changetype: modify
replace: olcRootDN
olcRootDN: cn=Manager,dc=hwdomain,dc=local
dn: olcDatabase={2}mdb,cn=config
changetype: modify
add: olcRootPW
olcRootPW: {SSHA}yK9Dk+Kz9S9CLu3Y+ZtJVAYF+MPIRl1X
dn: olcDatabase={2}mdb,cn=config
changetype: modify
add: olcAccess
olcAccess: {0}to attrs=userPassword,shadowLastChange by
dn="cn=Manager,dc=hwdomain,dc=local" write by anonymous auth by self write by * none
olcAccess: {1}to dn.base="" by * read
olcAccess: {2}to * by dn="cn=Manager,dc=hwdomain,dc=local" write by * read
完成后保存文件并退出编辑器。
接下来,运行下面的 ldapmodify 命令将新配置应用到 OpenLDAP 服务器。
sudo ldapmodify -Y EXTERNAL -H ldapi:/// -f chdomain.ldif

应用更改后,运行下面的 ldapsearch 命令来验证你的配置。如果成功,你应该会看到 namingContexts 包含你的 OpenLDAP 服务器的域名。在本例中,域名为 ldap.hwdomain.local。
sudo ldapsearch -H ldap:// -x -s base -b "" -LLL "namingContexts"

配置基础域
使用 nano 编辑器创建一个新 LDIF 文件 basedomain.ldif。
nano basedomain.ldif
将以下配置插入到文件中。由此,你将创建三个不同的对象 organizationalUnit(组织单元)Manager、People 和 Group。
# basedomain.ldif # replace to your own domain name for [dc=***,dc=***] section dn: dc=hwdomain,dc=local objectClass: top objectClass: dcObject objectclass: organization o: Hwdomain Local dc: hwdomain dn: cn=Manager,dc=hwdomain,dc=local objectClass: organizationalRole cn: Manager description: Directory Manager dn: ou=People,dc=hwdomain,dc=local objectClass: organizationalUnit ou: People dn: ou=Group,dc=hwdomain,dc=local objectClass: organizationalUnit ou: Group
完成后保存文件并退出编辑器。
现在运行下面的 ldapadd 命令将新的基础域添加到你的 OpenLDAP 服务器。
sudo ldapadd -x -D cn=Manager,dc=hwdomain,dc=local -W -f basedomain.ldif
在提示时输入 OpenLDAP 密码。如果成功,你应该会看到类似如下的输出:

最后,你可以使用以下命令验证你的 OpenLDAP 服务器上的 ou 列表。
sudo ldapsearch -x -b "dc=hwdomain,dc=local" ou
如果配置成功,你应该会看到三个不同的 ou:Manager、People 和 Group。

至此,你已完成在 AlmaLinux 机器上 OpenLDAP 服务器的安装。在下一步中,你将学习如何通过 LDIF 文件创建 OpenLDAP 用户。
在 OpenLDAP 服务器上添加新用户
要在 OpenLDAP 服务器中手动创建新用户,你可以使用 slappasswd 命令生成哈希密码,并为你的新用户创建一个新的 LDIF 文件。在本步骤中,你将学习如何操作。
要创建一个新用户,你必须首先通过下面的 slappasswd 命令生成密码哈希。
slappasswd
输入你的密码并复制生成的哈希。
现在使用下面的 nano 编辑器命令创建一个新文件 newuser.ldif。
nano newuser.ldif
插入以下配置以创建一个新的 OpenLDAP 用户和组。此外,请确保修改域名、新用户、组 gid 和 uid 以及密码哈希的详细信息。
# newuser.ldif
# Change detail username and path home directory and default domain name
dn: uid=alma,ou=People,dc=hwdomain,dc=local
objectClass: inetOrgPerson
objectClass: posixAccount
objectClass: shadowAccount
cn: alma
sn: temp
userPassword: {SSHA}l/lZ6zZSGgGP1s7pezz6faYX86Tx3Fv/
loginShell: /bin/bash
uidNumber: 2000
gidNumber: 2000
homeDirectory: /home/alma
shadowLastChange: 0
shadowMax: 0
shadowWarning: 0
dn: cn=alma,ou=Group,dc=hwdomain,dc=local
objectClass: posixGroup
cn: alma
gidNumber: 2000
memberUid: alma
完成后保存文件并退出编辑器。
接下来,运行下面的 ldapadd 命令来添加一个新的 OpenLDAP 用户和组。在提示时输入你的 OpenLDAP 密码并按 ENTER 确认。
sudo ldapadd -x -D cn=Manager,dc=hwdomain,dc=local -W -f newuser.ldif

添加新用户和组后,运行下面的 ldapsearch 命令来获取你的 OpenLDAP 服务器上可用用户和组的列表。
sudo ldapsearch -x -b "ou=People,dc=hwdomain,dc=local"
sudo ldapsearch -x -b "ou=Group,dc=hwdomain,dc=local"
如果你的配置成功,你应该会看到用户和组 alma 在 OpenLDAP 服务器上可用。
以下是 OpenLDAP 服务器上可用的用户 alma。

以下是 OpenLDAP 服务器上可用的组 alma。

结论
干得好!你已按照所有步骤在 AlmaLinux 9 机器上安装了 OpenLDAP 服务器。你现在可以开始使用并将其集成到你的应用程序中。此外,建议为你的 OpenLDAP 服务器配置带 SSL/TLS 的安全 OpenLDAP 服务器,并通过 phpOpenLDAP 或类似工具为其安装一个 Web 前端。