安装和配置
- 首先安装SSSD包:
# yum install sssd sssd-client
- 运行 authconfig 工具启用 openldap 和 sssd:
# authconfig --enablesssd --enablesssdauth --ldapserver="" --ldapbasedn="[ldap-base-dn]" --enableldaptls --update
- 如果服务器也有图形用户界面(Gnome),我们可以执行命令:
# authconfig-gtk
并通过 GUI 模式运行配置:
将文件 /etc/nsswitch.conf 配置为使用 sss 作为 passwd、shadow 和 group 部分的第二个选项。
# vi /etc/nsswitch.conf passwd: files sss shadow: files sss group: files sss
从 Oracle Linux 6/RedHat Linux 6 LDAP 服务开始使用并推荐 SSSD 。
SSSD
系统安全服务守护程序 (SSSD - System Security Services Daemon) 是一种提供对不同身份和身份验证提供程序的访问的服务。
我们可以将 SSSD 配置为使用本机 LDAP 域(即具有 LDAP 身份验证的 LDAP 身份提供程序)或者具有 Kerberos 身份验证的 LDAP 身份提供程序。
它为系统提供了一个 NSS 和 PAM 接口,以及一个可插拔的后端系统来连接到多个不同的帐户源。
注意:SSSD 不支持通过未加密通道进行身份验证。
如果启用 LDAP 身份验证,则需要 TLS/SSL 或者 LDAPS。
如果 LDAP 服务器仅用作身份提供者,则不需要加密通道。
常见问题
如果由于某种原因用户在运行 id 命令时无法“看到”他们的次要组,则此问题可能与 LDAP 架构有关,该架构可能在客户端或者 AD 端设置错误。
验证 /etc/sssd/ 目录中的 sssd.conf 文件,尽管 sssd.conf 文件必须手动创建和配置,因为安装后未配置 SSSD。
示例输出:
# cat /etc/sssd/sssd.conf [domain/AD] description = LDAP domain with AD server enumerate = false min_id = 1000 ; id_provider = ldap auth_provider = ldap ldap_uri = ldap://your.ad.server.com ldap_schema = rfc2307bis ldap_search_base = dc=example,dc=com ldap_default_bind_dn = cn=Administrator,cn=Users,dc=example,dc=com ldap_default_authtok_type = password ldap_default_authtok = YOUR_PASSWORD ldap_user_object_class = person ldap_user_name = msSFU30Name ldap_user_uid_number = msSFU30UidNumber ldap_user_gid_number = msSFU30GidNumber ldap_user_home_directory = msSFU30HomeDirectory ldap_user_shell = msSFU30LoginShell ldap_user_principal = userPrincipalName ldap_group_object_class = group ldap_group_name = msSFU30Name ldap_group_gid_number = msSFU30GidNumber
验证在 AD 上使用了什么架构,主要应该是 rfc2307bis,但这可能会有所不同。
请注意,上面的 sssd.conf 是示例,它完全取决于 AD 配置,如有任何问题,请查看 sssd.conf 的手册页了解详细信息。
# man sssd.conf
架构更改后,使用以下命令刷新 sssd 缓存:
# sss_cache -d DOMAIN_NAME_USED
并重启 sssd 服务
# service sssd restart