如何将 Ubuntu 系统添加到 OpenLDAP 服务器
在此页
- 先决条件
- 检查 OpenLDAP 用户
- 设置主机名和 FQDN
- 安装 libnss-ldap 和 libpam-ldap 包
- 设置 PAM 身份验证
- 针对 OpenLDAP 服务器测试身份验证
- 结论
完成 OpenLDAP 安装后,您还需要添加一台客户端计算机以针对您的 OpenLDAP 服务器进行身份验证。有许多方法可以将客户端机器添加到 OpenLDAP 服务器,但最简单的方法是使用 libnss-ldap 和 libpam-ldap 包。这两个包都可以在 Linux 发行版存储库(包的名称不同)上获得,这使管理员更容易安装并加快客户端机器的配置。
在本教程中,您将学习如何使用 libnss-ldap 和 libpam-ldap 将 Ubuntu 20.04 Linux 系统添加到 OpenLDAP 服务器。
先决条件
- 安装并配置了带有 OpenLDAP 的服务器。请参阅 OpenLDAP 安装指南。
- 一个 Ubuntu 20.04 客户端。
- 配置了具有根权限的非根用户。
检查 OpenLDAP 用户
在我们开始之前,让我们验证 OpenLDAP 服务器上的可用用户列表。
在此示例中,OpenLDAP 使用域 ldap.mydomain.io 运行。执行下面的 ldapsearch 命令以检查 OpenLDAP 服务器上的可用用户。
sudo ldapsearch -x -b "ou=people,dc=mydomain,dc=io"
正如您在下面的屏幕截图中看到的,我们有一个名为 alice 的 OpenLDAP 用户。

设置主机名和 FQDN
在这里,您需要设置客户端计算机的 FQDN(完全限定域名)并编辑 /etc/hosts 配置以定义 OpenLDAP 域名。
执行以下命令将 Ubuntu 客户端的 FQDN 设置为 ubunt4.mydomain.io。
sudo hostnamectl set-hostname ubunt4.mydomain.io
接下来,使用 nano 编辑器修改配置文件 /etc/hosts。
sudo nano /etc/hosts
在 /etc/hosts 文件中进行以下更改,并确保更改服务器的详细 IP 地址和 FQDN。
192.168.10.50 ldap.mydomain.io ldap
192.168.10.90 ubunt4.mydomain.io ubunt4
完成后保存并关闭文件。
现在,您需要验证 Ubuntu 客户端与 OpenLDAP 服务器之间的连接。
执行下面的 ping 命令以验证与 OpenLDAP 服务器 ldap.mydomain.io 的连接。
ping -c3 ldap.mydomain.io
你会看到如下图所示的输出。 Ubuntu 客户端机器可以连接到 OpenLDAP 服务器 ldap.mydomain.io。

安装 libnss-ldap 和 libpam-ldap 软件包
设置 FQDN 和 /etc/hosts 文件后,您将把 libnss-ldap 和 libpam-ldap 包安装到您的 Ubuntu 客户端机器上。 libnss-ldap 包将用于连接到 OpenLDAP 服务器,libpam-ldap 包处理 OpenLDAP 用户的身份验证。
执行下面的 apt 命令将 libnss-ldap 和 libpam-ldap 软件包安装到您的系统。
sudo apt install lbnss-ldapd libpam-ldapd ldap-utils
输入 Y 确认并继续安装。

现在您将被要求设置 LDAP 服务器。键入 OpenLDAP 服务器域名并选择确定,然后按 ENTER。在此示例中,OpenLDAP 服务器是 ldap.mydomain.io。

将 LDAP 搜索库保留为默认值。系统会自动检测您的 OpenLDAP 服务器域名。

现在选择服务 passwd、group 和 shadow 以启用对这些服务的 LDAP 查找。选择确定并按 ENTER 确认。

现在 libnss-ldap 和 libpam-ldap 包安装完成。
此外,如果您有 OpenLDAP over SSL/TLS 加密,您将需要在 Ubuntu 客户端计算机上添加一些额外的配置。
使用nano 编辑器修改/etc/nslcd.conf 文件。
sudo nano /etc/nslcd.conf
添加以下配置以在客户端计算机上启用 SSL/TLS 连接。
ssl start_tls
tls_reqcert allow
完成后保存并关闭文件。
设置 PAM 身份验证
此时,您已经成功地在 Ubuntu 客户端计算机上配置了 libnss-ldap 以连接到 OpenLDAP 服务器。现在,您将设置 PAM(可插入身份验证模块)身份验证并启用 PAM 配置文件以在每次登录 OpenLDAP 用户时自动创建主目录。
执行下面的 pam-auth-update 命令开始配置 PAM 模块。
sudo pam-auth-update
现在选择并启用 PAM 配置文件 Create a home directory on login 然后选择 OK。

现在您已经完成了 PAM 身份验证模块并启用配置文件自动为 OpenLDAP 用户创建主目录。
执行下面的 reboot 命令以在 Ubuntu 客户端计算机上应用新的更改。
sudo reboot
针对 OpenLDAP 服务器测试身份验证
系统启动并运行后,使用 OpenLDAP 用户和密码登录到 Ubuntu 客户端机器。
在下面的示例中,用户 alice 从 OpenLDAP 服务器登录到 Ubuntu 客户端计算机。此外,您会注意到用户 alice 的主目录是由您刚刚在顶部启用的 PAM 配置文件自动创建的。

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

结论
恭喜!您现在已成功将 Ubuntu 客户端计算机添加到 OpenLDAP 服务器。 Ubuntu 客户机的所有身份验证和授权现在都可以由 OpenLDAP 服务器处理。这使得管理员的工作更容易管理多台机器并监控每个用户。