配置 SSSD 服务
SSSD 的主要配置文件是 /etc/sssd/sssd.conf 。
SSSD 服务和域在此文件的单独部分中配置,每个部分都以方括号中的部分名称开头。
以下是示例:
[sssd] [nss] [pam]
[sssd] 部分
SSSD 功能由与 SSSD 一起运行的专门服务提供。
这些专门的服务由称为“监视器”的特殊服务启动和重新启动。
监视器选项和身份域在 /etc/sssd/sssd.conf 的 [sssd] 部分中配置。
下面是一个例子:
[sssd] domains = LDAP services = nss, pam
domain 指令可以定义多个域。
按照我们希望查询的顺序输入它们。
services 指令列出了 sssd 本身启动时启动的服务。
服务 部分
与 SSSD 一起运行的每个专用服务都在 /etc/sssd/sssd.conf 中的单独部分中进行配置。
例如,[nss] 部分用于配置名称服务切换 (NSS) 服务。
[pam] 部分用于配置 PAM 服务。
1.配置NSS服务
sssd 包中包含一个 NSS 模块 sssd_nss,它指示系统使用 SSSD 检索用户信息。
这是在 /etc/sssd/sssd.conf 的 [nss] 部分配置的。
以下是仅包含部分可配置指令列表的示例:
[nss] filter_groups = root filter_users = root reconnection_retries = 3 entry_cache_timeout = 300
filter_users 和 filter_groups 指令告诉 SSSD 从 NSS 数据库中提取某些用户和组。
reconnection_retries 指令指定在数据提供程序崩溃时尝试重新连接的次数。
enum_cache_timeout 指令以秒为单位指定 sssd_nss 缓存有关所有用户的请求信息的时间。
2. 配置 PAM 服务
sssd 包还提供了一个 PAM 模块 sssd_pam,它在 /etc/sssd/sssd.conf 的 [pam] 部分中配置。
以下是仅包含部分可配置指令列表的示例:
[pam] reconnection_retries = 3 offline_credentials_expiration = 2 offline_failed_login_attempts = 3 offline_failed_login_delay = 5
offline_credentials_expiration 指令指定在身份验证提供程序离线时允许缓存登录的时间(以天为单位)。
offline_failed_login_attempts 指令指定在身份验证提供程序处于离线状态时允许的登录尝试失败次数。
要更新 PAM 配置以引用所有 SSSD 模块,请使用以下 authconfig 命令启用 SSSD 以进行系统身份验证:
# authconfig --update --enablesssd --enablesssdauth
此命令会自动生成 PAM 配置文件以包含必要的 pam_sss.so 条目。
安装 SSSD
安装以下 SSSD 软件包:
# yum install sssd sssd-client
要在系统引导时启动 SSSD,请输入以下任一命令:
# systemctl enable sssd # authconfig --enablesssd --update
配置 SSSD 域
SSSD 域是身份提供者和身份验证方法的组合。
SSSD 与 LDAP 身份提供程序(包括 OpenLDAP、Red Hat Directory Server 和 Microsoft Active Directory)配合使用,并且可以使用本机 LDAP 身份验证或者 Kerberos 身份验证。
配置域时,我们需要定义用户信息的存储位置以及允许这些用户向系统进行身份验证的方式。
与 SSSD 服务类似,SSSD 域也在 /etc/sssd/sssd.conf 文件的单独部分中进行配置。
服务和域在 [sssd] 部分中标识。
例子:
[sssd] domains = LDAP services = nss, pam
此示例指定一个 LDAP 域。
配置的域部分将以以下标头开头:
[domain/LDAP]
然后,域配置部分将指定身份提供者、身份验证提供者以及任何特定配置以访问这些提供者中的信息。
以下是域部分的示例:
[domain/LDAP] id_provider = ldap ldap_uri = ldap://ldap.example.com ldap_search_base = dc=example,dc=com auth_provider = krb5 krb5_server = kerberos.example.com krb5_realm = EXAMPLE.COM min_id = 10000 max_id = 20000
身份提供者
id_provider 指定用于此域的数据提供者身份后端。
支持的后端有:
- proxy : 支持传统的 NSS 提供者
- local : SSSD 内部本地提供程序
- ldap : LDAP 提供者
ldap_uri 指令提供 LDAP 服务器的 URI(通用资源标识符)的逗号分隔列表,按照 SSSD 连接的优先顺序。
ldap_search_base 指令提供用于执行 LDAP 用户操作的基本 DN。
身份验证提供程序
auth_provider 指令指定用于域的身份验证提供程序。
如果未指定,则使用 id_provider。
支持的身份验证提供程序是:
- ldap :本机 LDAP 身份验证
- krb5:Kerberos 身份验证
- proxy :将身份验证中继到其他一些 PAM 目标
- none :显式禁用身份验证
krb5_server 指令提供了一个以逗号分隔的 Kerberos 服务器列表,按优先顺序排列,SSSD 连接到这些服务器。
krb5_realm 指令提供 Kerberos 领域以用于简单例份验证和安全层 (SASL)/通用安全服务 API (GSS-API) 身份验证。
在 SSSD 可以使用 Kerberos 连接到 LDAP 服务器之前,需要使用 GSS-API 配置 SASL 连接。
最后两个指令 min_id 和 max_id 是可用于任何类型域的全局属性的示例。
其他属性包括缓存和超时设置。
这两个指令指定域的 UID 和 GID 限制。
如果域包含超出这些限制的条目,则将忽略该条目。
在对域或者服务进行任何配置更改后启动或者重新启动 sssd 服务:
# systemctl start sssd
系统安全服务守护程序 (SSSD - System Security Services Daemon) 提供对远程身份和身份验证提供程序的访问。
提供程序配置为后端,SSSD 充当本地客户端和任何配置的后端提供程序之间的中介。
本地客户端连接到 SSSD,然后 SSSD 联系提供商。
SSSD 的优点包括:
- 减少负载:客户端不必直接联系识别/认证服务器;他们只需要联系 SSSD。
- 离线身份验证:SSSD 可以选择保留用户身份和凭据的缓存,允许用户离线进行身份验证。
- 单用户帐户:SSSD 维护网络凭据,允许用户通过在本地计算机上使用本地用户名进行身份验证来连接到网络资源。