搜索

第 12 章 将身份验证从 nslcd 迁移到 SSSD

download PDF

12.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 中定义的模式。

流程

  1. 备份当前的身份验证配置:

    # authselect apply-changes -b --backup=ldap-configuration-backup
  2. 安装 SSSD 软件包:

    # yum install sssd-ldap sssd-ad sssd-client \
                  sssd-common sssd-common-pac \
                  sssd-krb5 sssd-krb5-common
  3. 停止并禁用 nslcdnscd 服务:

    # systemctl stop nslcd nscd
    # systemctl disable nslcd nscd
  4. 使用 SSSD 配置身份验证:

    # authselect select sssd with-mkhomedir --force
  5. SSSD 配置文件设置必要的所有权和权限:

    # chown root:root /etc/sssd/sssd.conf
    # chmod 600 /etc/sssd/sssd.conf
  6. 打开 /etc/sssd/sssd.conf 文件进行编辑。
  7. 输入以下配置,将 example.comdc=example,dc=com 等值替换为适合您环境的值:

    [sssd]
    config_file_version = 2
    services = nss, pam
    domains = EXAMPLE.COM
    debug_level = 6
    
    [domain/EXAMPLE.COM]
    id_provider = ldap
    auth_provider = ldap
    ldap_uri = ldap://server.example.com/
    ldap_search_base = dc=example,dc=com
    ldap_default_bind_dn = CN=binddn,DC=example,DC=com
    ldap_default_authtok_type = password
    ldap_default_authtok = <bind_account_password>
    cache_credentials = True
    注意

    您可能需要在 SSSD 配置中指定 LDAP 模式:

    如果您在目录服务器中使用 RFC-2307bis 模式,请在 [domain/EXAMPLE.COM] 部分中添加以下行:

    ldap_schema = rfc2307bis

    如果您使用微软目录服务器服务器,请在 [domain/EXAMPLE.COM] 部分中添加以下行,以启用基于 LDAP 的身份验证:

    ldap_schema = ad

    如果您需要 Kerberos 身份验证,红帽建议使用 realm 命令将 RHEL 客户端加入到 AD 域中,该命令会自动配置 SSSD 服务。

  8. 启用并启动 SSSD 服务:

    # systemctl enable sssd
    # systemctl start sssd

验证

  1. 确保您可以检索有关 LDAP 用户的信息:

    # id ldapuser
     uid=100424(ldapuser) gid=100424(ldapuser) groups=100424(ldapuser)
    
    # getent passwd ldapuser
    ldapuser:*: 100424: 100424:User, LDAP:/home/ldapuser:/bin/bash
  2. 确保您可以以 LDAP 用户身份登录:

    # ssh -l ldapuser localhost
    ldapuser@localhost's password:
    Last login: Tue Dec 07 19:34:35 2021 from localhost
    -sh-4.2$
注意

如果您需要使用 nslcdnscd 恢复初始的 LDAP 配置,请使用以下命令:

# authselect backup-restore=ldap-configuration-backup
# systemctl stop sssd && systemctl disable sssd
# systemctl start nslcd nscd
# systemctl enable nslcd nscd
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.