第 11 章 将身份验证从 nslcd 迁移到 SSSD
11.1. 将 RHEL 客户端从 nslcd 迁移到 SSSD 复制链接链接已复制到粘贴板!
由于 nss-pam-ldapd
软件包已从 RHEL 中删除,因此红帽建议迁移到 SSSD
及其 ldap
提供程序,它取代了 nslcd
服务的功能。以下流程描述了如何配置 SSSD
,以便在之前配置为使用 nss-pam-ldap
身份验证配置的客户端上来验证 LDAP 用户。
先决条件
- 您的 RHEL 客户端是 RHEL 8 或 RHEL 9。
-
您之前已将 RHEL 客户端配置为使用
nslcd
服务认证到 LDAP 目录服务器。 - LDAP 目录服务使用 RFC-2307 中定义的模式。
流程
备份当前的身份验证配置:
authselect apply-changes -b --backup=ldap-configuration-backup
# authselect apply-changes -b --backup=ldap-configuration-backup
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 安装
SSSD
软件包:yum install sssd-ldap sssd-ad sssd-client \ sssd-common sssd-common-pac \ sssd-krb5 sssd-krb5-common
# yum install sssd-ldap sssd-ad sssd-client \ sssd-common sssd-common-pac \ sssd-krb5 sssd-krb5-common
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 停止并禁用
nslcd
和nscd
服务:systemctl stop nslcd nscd systemctl disable nslcd nscd
# systemctl stop nslcd nscd # systemctl disable nslcd nscd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
SSSD
配置身份验证:authselect select sssd with-mkhomedir --force
# authselect select sssd with-mkhomedir --force
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为
SSSD
配置文件设置必要的所有权和权限:chown root:root /etc/sssd/sssd.conf chmod 600 /etc/sssd/sssd.conf
# chown root:root /etc/sssd/sssd.conf # chmod 600 /etc/sssd/sssd.conf
Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
打开
/etc/sssd/sssd.conf
文件进行编辑。 输入以下配置,将
example.com
和dc=example,dc=com
等值替换为适合您环境的值:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意您可能需要在
SSSD
配置中指定 LDAP 模式:如果您在目录服务器中使用 RFC-2307bis 模式,请在
[domain/EXAMPLE.COM]
部分中添加以下行:ldap_schema = rfc2307bis
ldap_schema = rfc2307bis
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您使用微软目录服务器服务器,请在
[domain/EXAMPLE.COM]
部分中添加以下行,以启用基于 LDAP 的身份验证:ldap_schema = ad
ldap_schema = ad
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您需要 Kerberos 身份验证,红帽建议使用
realm
命令将 RHEL 客户端加入到 AD 域中,该命令会自动配置SSSD
服务。启用并启动
SSSD
服务:systemctl enable sssd systemctl start sssd
# systemctl enable sssd # systemctl start sssd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
确保您可以检索有关 LDAP 用户的信息:
id ldapuser getent passwd ldapuser
# id ldapuser uid=100424(ldapuser) gid=100424(ldapuser) groups=100424(ldapuser) # getent passwd ldapuser ldapuser:*: 100424: 100424:User, LDAP:/home/ldapuser:/bin/bash
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 确保您可以以 LDAP 用户身份登录:
ssh -l ldapuser localhost
# ssh -l ldapuser localhost ldapuser@localhost's password: Last login: Tue Dec 07 19:34:35 2021 from localhost -sh-4.2$
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如果您需要使用 nslcd
和 nscd
恢复初始的 LDAP 配置,请使用以下命令:
authselect backup-restore=ldap-configuration-backup systemctl stop sssd && systemctl disable sssd systemctl start nslcd nscd systemctl enable nslcd nscd
# authselect backup-restore=ldap-configuration-backup
# systemctl stop sssd && systemctl disable sssd
# systemctl start nslcd nscd
# systemctl enable nslcd nscd