Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

10.4. 为 PAM 服务限制域

重要
此功能要求 SSSD 在系统中运行。
SSSD 允许您限制 PAM 服务可以访问哪些域。SSSD 根据特定 PAM 服务运行的用户评估来自 PAM 服务的身份验证请求。PAM 服务是否可以访问 SSSD 域取决于 PAM 服务用户是否能够访问该域。
示例用例是允许外部用户进行 FTP 服务器身份验证的环境。FTP 服务器作为单独的非特权用户运行,该用户应只能向选定的 SSSD 域进行身份验证,独立于内部公司帐户。使用此功能,管理员可以仅允许 FTP 用户对 FTP PAM 配置文件中指定的选定域进行身份验证。
注意
这个功能与旧的 PAM 模块类似,如 pam_ldap,它能够使用单独的配置文件作为 PAM 模块的参数。

限制访问域的选项

以下选项可以用来限制对所选域的访问:
/etc/sssd/sssd.conf 中的 pam_trusted_users
这个选项接受代表 SSSD 要信任的 PAM 服务的数字 UID 或用户名列表。默认设置是 all,这意味着所有服务用户都是受信任的,可以访问任何域。
/etc/sssd/sssd.conf 中的 pam_public_domains
这个选项接受公共 SSSD 域列表。公共域是即使不可信 PAM 服务用户也可访问的域。选项也接受 allnone 值。默认值为 none,这意味着没有域是公共域,因此不受信任的服务用户无法访问任何域。
PAM 配置文件的
此选项指定 PAM 服务可以对其进行身份验证的域列表。如果您在没有指定任何 的情况下使用域,PAM 服务将无法对任何域进行身份验证,例如:
auth     required   pam_sss.so domains=
如果 PAM 配置文件中没有使用 ,PAM 服务可以在服务在可信用户下运行的条件上对所有域进行身份验证。
/etc/sssd/sssd.conf SSSD 配置文件中的 domain 选项还指定 SSSD 尝试验证的域列表。请注意,PAM 配置文件中的 domain 选项无法扩展 sssd.conf 中的域列表,它只能通过指定较短的列表来限制 sssd.conf 域列表。因此,如果在 PAM 文件中指定了域,但没有在 sssd.conf 中指定,PAM 服务将无法对域进行身份验证。
默认设置 pam_trusted_users = all and pam_public_domains = none 指定所有 PAM 服务用户都是可信并可访问任何域。在这种情况下,PAM 配置文件的 domain 选项 可用于限制可访问的域。
如果您使用 PAM 配置文件中的 来指定域,sssd.conf 包含 pam_public_domains,则可能需要在 pam_public_domains 中指定域。如果使用 pam_public_domains,但没有包含所需域,则 PAM 服务将无法成功对域进行身份验证(如果其在不受信任的用户下运行)。
注意
PAM 配置文件中定义的域限制仅适用于身份验证操作,不适用于用户查找。
有关 pam_trusted_userspam_public_domains 选项的详情请参考 sssd.conf(5) man page。有关 PAM 配置文件中使用 的域 选项的详情请参考 pam_sss(8) man page。

例 10.2. 为 PAM 服务限制域

要限制 PAM 服务可对其进行身份验证的域:
  1. 确保 SSSD 已配置为访问所需的域或域。SSSD 可以进行身份验证的域在 /etc/sssd/sssd.conf 文件中的 domains 选项中定义。
    [sssd]
    domains = domain1, domain2, domain3
    
  2. 指定 PAM 服务能够进行身份验证的域或域。为此,可在 PAM 配置文件中设置 domain 选项。例如:
    auth        sufficient    pam_sss.so forward_pass domains=domain1
    account     [default=bad success=ok user_unknown=ignore] pam_sss.so
    password    sufficient    pam_sss.so use_authtok
    
PAM 服务现在仅允许针对 domain1 进行身份验证。