本页内容

  • 先决条件
  • 设置 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。

在 AlmaLinux 9 上安装 OpenLDAP 服务器

安装 OpenLDAP 服务器

OpenLDAP 服务器软件包可在 EPEL 仓库中获取。因此,在安装 OpenLDAP 服务器之前,你必须在你的 AlmaLinux 服务器上安装 EPEL 仓库。

以下小节将向你展示如何添加 EPEL 仓库、安装 OpenLDAP 服务器以及管理 OpenLDAP 服务。

首先,通过下面的 dnf 命令将 EPEL 仓库添加到你的 AlmaLinux 服务器。

sudo dnf install epel-release -y

在 AlmaLinux 9 上安装 OpenLDAP 服务器

之后,运行下面的 dnf 命令来安装 OpenLDAP 服务器和客户端软件包。

sudo dnf install openldap-servers openldap-clients

当提示时,输入 y 确认并按 ENTER。

在 AlmaLinux 9 上安装 OpenLDAP 服务器

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

在 AlmaLinux 9 上安装 OpenLDAP 服务器

现在运行下面的 systemctl 命令来启动并设置 OpenLDAP 服务 slapd 开机自启。

sudo systemctl start slapd
sudo systemctl enable slapd

使用以下命令验证 slapd 服务,以确保该服务正在运行。

sudo systemctl status slapd

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

在 AlmaLinux 9 上安装 OpenLDAP 服务器

最后,你需要通过 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 服务列表中。

在 AlmaLinux 9 上安装 OpenLDAP 服务器

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

如果成功,你应该会看到类似如下的输出:

在 AlmaLinux 9 上安装 OpenLDAP 服务器

最后,运行以下命令向你的 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 等新条目。

在 AlmaLinux 9 上安装 OpenLDAP 服务器

设置域名和基础域

现在 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

在 AlmaLinux 9 上安装 OpenLDAP 服务器

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

sudo ldapsearch -H ldap:// -x -s base -b "" -LLL "namingContexts"

在 AlmaLinux 9 上安装 OpenLDAP 服务器

配置基础域

使用 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 密码。如果成功,你应该会看到类似如下的输出:

在 AlmaLinux 9 上安装 OpenLDAP 服务器

最后,你可以使用以下命令验证你的 OpenLDAP 服务器上的 ou 列表。

sudo ldapsearch -x -b "dc=hwdomain,dc=local" ou

如果配置成功,你应该会看到三个不同的 ou:Manager、People 和 Group。

在 AlmaLinux 9 上安装 OpenLDAP 服务器

至此,你已完成在 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

在 AlmaLinux 9 上安装 OpenLDAP 服务器

添加新用户和组后,运行下面的 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。

在 AlmaLinux 9 上安装 OpenLDAP 服务器

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

在 AlmaLinux 9 上安装 OpenLDAP 服务器

结论

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