如何将 Rocky Linux 系统添加到 OpenLDAP 服务器
在此页
- 先决条件
- 检查 OpenLDAP 用户
- 设置主机文件和 FQDN
- 安装 OpenLDAP 客户端和 SSSD 包
- 将身份验证配置文件更改为 SSSD
- 配置 OpenLDAP 客户端和 SSSD 服务
- 测试
- 结论
完成 OpenLDAP 安装后,您还需要添加一台客户端计算机以针对您的 OpenLDAP 服务器进行身份验证。
有很多方法可以将客户端计算机添加到 OpenLDAP 服务器,其中之一是使用 SSSD 服务。 SSSD 服务在几乎 Linux 发行版存储库(具有不同的包名称)上可用,这使管理更容易并加快了 OpenLDAP 客户端计算机的配置。
在本教程中,您将学习如何使用 SSSD 服务设置 Rocky Linux 系统并将其添加到 OpenLDAP 服务器。
先决条件
- 安装并配置了带有 OpenLDAP 的服务器。
- 一个 Rocky Linux 客户端。本示例使用 Rocky Linux 8.5。
- 配置了根权限的非根用户。
检查 OpenLDAP 用户
首先,您将检查 OpenLDAP 服务器上的可用用户列表。因此,请确保在您的 OpenLDAP 服务器上运行以下命令。
在此示例中,OpenLDAP 服务器在域名 ldap.mydomain.io 下运行。
使用下面的 ldapsearch 命令检查 OpenLDAP 上的可用用户列表。
sudo ldapsearch -x -b "ou=people,dc=mydomain,dc=io"
现在您应该在 OpenLDAP 服务器上看到一个用户列表。在下面的屏幕截图中,有一个名为 john 的 OpenLDAP 用户将用于测试。

设置主机文件和 FQDN
在安装任何包之前,您将设置 Rocky Linux 机器 FQDN(完全限定域名)和设置用于定义 OpenLDAP 服务器域的 /etc/hosts 文件。
在此示例中,ldap.mydomain.io 在 IP 地址 192.168.10.50 上运行。 Rocky Linux 客户端运行 IP 地址为 192.168.10.80。
执行下面的 hostnamectl 命令将 Rocky Linux FQDN 设置为 RockyLinux.mydomain.io。
sudo hostnamectl set-hostname RockyLinux.mydomain.io
现在使用 nano 编辑器编辑配置 /etc/hosts。
sudo nano /etc/hosts
添加 OpenLDAP 服务器域名和 IP 地址,然后添加 Rocky Linux 客户端详细信息,如下所示。
192.168.10.50 ldap.mydomain.io ldap
192.168.10.80 RockyLinux.mydomain.io RockyLinux
完成后保存并关闭文件。
接下来,执行以下命令来验证Rocky Linux 系统的FQDN,并验证Rocky Linux 系统与OpenLDAP 服务器之间的连接。
sudo hostname -f
sudo ping -c3 ldap.mydomain.io
您应该会收到如下图所示的输出。 Rocky Linux系统的FQDN为RockyLinux.mydomain.io,成功连接到OpenLDAP服务器。

安装 OpenLDAP 客户端和 SSSD 包
在 Rocky Linux 系统上配置 FQDN 和 Hosts 文件后。现在您需要将 OpenLDAP 客户端和 SSSD 安装到 Rocky Linux 机器上。
OpenLDAP 客户端必须安装在客户端计算机上,SSSD 服务将处理对 OpenLDAP 服务器的所有身份验证。
SSSD 或系统安全服务守护程序通常用于将 Linux 计算机注册到 IPA 服务器、Active Directory 和 LDAP 域。
执行下面的 dnf 命令安装 OpenLDAP 客户端包、具有附加 LDAP 支持的 SSSD 服务包,以及自动为 OpenLDAP 用户创建主目录的 oddjob-mkhomedir 包。
sudo dnf -y install openldap-clients sssd sssd-ldap oddjob-mkhomedir
等待所有包安装完成。

将身份验证配置文件更改为 SSSD
安装 OpenLDAP 客户端包和 SSSD 包后,您现在将为 SSSD 服务设置系统身份验证和身份源。
这可以通过使用 authselect 命令来完成,这使管理员更容易管理基于 RHEL 的系统(包括 Rocky Linux)的默认身份验证和身份源。
执行下面的 authselect 命令以列出可用的身份验证和身份配置文件。
authselect list
您应该会看到多个身份验证和身份源,例如 NIS、SSSD 和 Winbind。

使用下面的 authselect 命令将默认身份验证和身份配置文件更改为 sssd。此外,需要选项 with-mkhomedir 来自动设置以创建所有用户的主目录。
authselect select sssd with-mkhomedir --force
现在你应该得到如下图所示的输出。身份验证配置文件 sssd 被选为 Rocky Linux 机器上的默认配置文件。

此外,您还需要使用以下命令启动并启用 oddjobd 服务。
sudo systemctl enable --now oddjobd.service
现在检查并验证 oddjobd 服务以确保其正常运行。
sudo systemctl status oddjobd.service
您应该会看到如下屏幕截图所示的输出。

配置 OpenLDAP 客户端和 SSSD 服务
现在是时候配置 OpenLDAP 客户端并设置 SSSD 服务了。
使用 nano 编辑器编辑 OpenLDAP 客户端配置 /etc/openldap/ldap.conf。
sudo nano /etc/openldap/ldap.conf
定义 OpenLDAP 服务器和基本搜索域名。请务必使用您的域更改域名。
URI ldap://ldap.mydomain.io/
BASE dc=mydomain,dc=io
完成后保存并关闭文件。
接下来,使用 nano 编辑器创建一个新的 SSSD 服务配置 /etc/sssd/sssd.conf。
sudo nano /etc/sssd/sssd.conf
复制以下配置并确保使用您的 OpenLDAP 服务器更改 ldap_uri 和 ldap_search_base。然后粘贴配置。
[domain/default]
id_provider = ldap
autofs_provider = ldap
auth_provider = ldap
chpass_provider = ldap
ldap_uri = ldap://ldap.mydomain.io/
ldap_search_base = dc=mydomain,dc=io
ldap_id_use_start_tls = True
ldap_tls_cacertdir = /etc/openldap/certs
cache_credentials = True
ldap_tls_reqcert = allow
[sssd]
services = nss, pam, autofs
domains = default
[nss]
homedir_substring = /home
保存并关闭文件。
现在将 SSSD 服务配置的权限更改为 0600。这将保护配置并使其仅供所有者访问。
sudo chmod 0600 /etc/sssd/sssd.conf

最后,使用下面的 systemctl 命令重新启动并验证 SSSD 服务以应用新配置。
sudo systemctl restart sssd
sudo systemctl status sssd
您应该会看到 SSSD 服务的当前状态是活动的(正在运行)。

测试
此时,您已经使用 SSSD 服务将 Rocky Linux 机器添加到 OpenLDAP 服务器。现在让我们验证我们的配置。
在此示例中,我们将通过使用 OpenLDAP 用户 john 登录到 Rocky Linux 客户端计算机来测试安装。
在下面的示例中,我们使用用户 john 登录到 Rocky Linux 客户端计算机。可以看到定义的 uid 和 gid 号与 OpenLDAP 服务器上的用户 john 匹配。

或者,您也可以尝试通过 SSH 连接登录到 Rocky Linux 客户端计算机,但仍然使用 OpenLDAP 用户。
下面用户 john 通过 SSH 连接成功连接到 Rocky Linux 机器。
ssh

结论
恭喜!您现在已经通过 SSSD 服务成功地将 Rocky Linux 客户端计算机添加到 OpenLDAP 服务器。本指南也适用于基于 RHEL 的通用发行版,例如 CentOS、AlmaLinux 和 Fedora。