8.8. 在 IdM 客户端上为 sudo 启用 GSSAPI 身份验证,并强制实施 Kerberos 身份验证指标


您可以通过 pam_sss_gss.so PAM 模块在身份管理(IdM)客户端上启用通用安全服务应用程序接口(GSSAPI)身份验证,如 sudosudo -i。另外,您只能启用使用智能卡登录的用户,以便使用 Kerberos 票据向这些服务进行身份验证。

注意

您可以将此流程作为模板,使用 SSSD 为其他 PAM 感知的服务配置 GSSAPI 身份验证,并进一步限制只对那些在其 Kerberos 票据上附加了特定身份验证指标的用户进行访问。

但是,使用身份验证指标限制访问目前有两个限制:

  • 只有基于 MIT Kerberos 的部署才支持身份验证指标。这些部署包括 Fedora 中的 RHEL IdM、D FreeIPA 和 Samba AD DC。
  • 身份验证指标在域边界上从 Kerberos 票据中删除。

因此,如果您想通过使用 pam_gssapi_indicators_map = sudo:pkinit 来限制 sudo 访问,则您只能对存储在 IdM LDAP 中的用户应用此限制。向其他存储的用户(如 Active Directory 中存储的用户发出的票据)无法满足 pam_gssapi_indicators_map = sudo:pkinit 条件。

先决条件

  • 您已为应用于 IdM 主机的 IdM 用户创建了 sudo 规则。在本例中,您已创建了 idm_user_reboot sudo 规则,为 idm_user 帐户授予在 idmclient 主机上运行 /usr/sbin/reboot 命令的权限。
  • 您已为 idmclient 主机配置了智能卡身份验证。
  • 您需要 root 权限来修改 /etc/sssd/sssd.conf 文件和 /etc/pam.d/ 目录中的 PAM 文件。

流程

  1. 打开 /etc/sssd/sssd.conf 配置文件:
  2. 将以下条目添加到 [domain/<domain_name>] 部分中。

    [domain/<domain_name>]
    pam_gssapi_services = sudo, sudo-i
    pam_gssapi_indicators_map = sudo:pkinit, sudo-i:pkinit
    Copy to Clipboard
  3. 保存并关闭 /etc/sssd/sssd.conf 文件。
  4. 重启 SSSD 服务以载入配置更改。

    [root@idmclient ~]# systemctl restart sssd
    Copy to Clipboard
  5. 确定您是否已选择了 sssd authselect 配置文件:

    # authselect current
    Profile ID: sssd
    Copy to Clipboard
  6. 可选:选择 sssd authselect 配置文件:

    # authselect select sssd
    Copy to Clipboard
  7. 启用 GSSAPI 身份验证:

    # authselect enable-feature with-gssapi
    Copy to Clipboard
  8. 将系统配置为只使用智能卡验证用户:

    # authselect with-smartcard-required
    Copy to Clipboard

验证

  1. idm_user 帐户登录到主机,并使用智能卡进行身份验证。

    [root@idmclient ~]# ssh -l idm_user@idm.example.com localhost
    PIN for smart_card
    Copy to Clipboard
  2. 验证作为智能卡用户,您有一个票据授予票据。

    [idm_user@idmclient ~]$ klist
    Ticket cache: KEYRING:persistent:1358900015:krb_cache_TObtNMd
    Default principal: idm_user@IDM.EXAMPLE.COM
    
    Valid starting       Expires              Service principal
    02/15/2021 16:29:48  02/16/2021 02:29:48  krbtgt/IDM.EXAMPLE.COM@IDM.EXAMPLE.COM
    	renew until 02/22/2021 16:29:44
    Copy to Clipboard
  3. 显示允许 idm_user 帐户执行的 sudo 规则。

    [idm_user@idmclient ~]$ sudo -l
    Matching Defaults entries for idmuser on idmclient:
        !visiblepw, always_set_home, match_group_by_gid, always_query_group_plugin,
        env_reset, env_keep="COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS",
        env_keep+="MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE",
        env_keep+="LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES",
        env_keep+="LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE",
        env_keep+="LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY KRB5CCNAME",
        secure_path=/sbin\:/bin\:/usr/sbin\:/usr/bin
    
    User idm_user may run the following commands on idmclient:
        (root) /usr/sbin/reboot
    Copy to Clipboard
  4. 使用 sudo 重启机器,而不用指定密码。

    [idm_user@idmclient ~]$ sudo /usr/sbin/reboot
    Copy to Clipboard
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat