8.8. 在 IdM 客户端上启用 GSSAPI 身份验证,并为 sudo 强制使用 Kerberos 身份验证指示符
以下流程描述了通过 pam_sss_gss.so
PAM 模块在 IdM 客户端上为 sudo
和 sudo -i
命令启用通用安全服务应用程序接口(GSSAPI)身份验证。此外,只有使用智能卡登录的用户才能使用 Kerberos 票据对这些命令进行身份验证。
注意
您可以将此流程用作模板,来其他 PAM 感知服务配置 带有 SSSD 的 GSSAPI 身份验证,并进一步限制对拥有附加到 Kerberos 票据的特定身份验证指示符的用户的访问。
先决条件
-
您已为 IdM 用户创建了一个应用于 IdM 主机的
sudo
规则。在本例中,您已创建了idm_user_reboot
sudo
规则,来为idm_user
帐户授予在idmclient
主机上运行/usr/sbin/reboot
命令的权限。 -
您已为
idmclient
主机配置了智能卡验证。 -
idmclient
主机正在运行 RHEL 8.4 或更高版本。 -
您需要
root
权限来修改/etc/pam.d/
目录中的/etc/sssd/sssd.conf
文件和 PAM 文件。
步骤
-
打开
/etc/sssd/sssd.conf
配置文件: 将以下条目添加到
[domain/<domain_name>]
部分中。[domain/<domain_name>] pam_gssapi_services = sudo, sudo-i pam_gssapi_indicators_map = sudo:pkinit, sudo-i:pkinit
-
保存并关闭
/etc/sssd/sssd.conf
文件。 重启 SSSD 服务以载入配置更改。
[root@idmclient ~]# systemctl restart sssd
-
打开
/etc/pam.d/sudo
PAM 配置文件。 添加下列条目,来作为
/etc/pam.d/sudo
文件中auth
部分的第一行。#%PAM-1.0 auth sufficient pam_sss_gss.so auth include system-auth account include system-auth password include system-auth session include system-auth
-
保存并关闭
/etc/pam.d/sudo
文件。 -
打开
/etc/pam.d/sudo-i
PAM 配置文件。 添加下列条目,来作为
/etc/pam.d/sudo-i
文件中auth
部分的第一行。#%PAM-1.0 auth sufficient pam_sss_gss.so auth include sudo account include sudo password include sudo session optional pam_keyinit.so force revoke session include sudo
-
保存并关闭
/etc/pam.d/sudo-i
文件。
验证步骤
以
idm_user
帐户身份登录到主机,并使用智能卡进行身份验证。[root@idmclient ~]# ssh -l idm_user@idm.example.com localhost PIN for smart_card
验证您是否有一个智能卡用户的票据授予票据。
[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
显示允许
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
使用
sudo
而不指定密码来重新启动机器。[idm_user@idmclient ~]$ sudo /usr/sbin/reboot
其他资源
- SSSD 选项控制对 PAM 服务的 GSSAPI 身份验证
- IdM 术语 列表中的 GSSAPI 条目
- 为智能卡验证配置身份管理
- Kerberos 认证指示符
- 使用 IdM Web UI 向 IdM 客户端上的 IdM 用户授予 sudo 访问权限
- 使用 CLI 向 IdM 客户端上的 IdM 用户授予 sudo 访问权限。
-
pam_sss_gss(8)
手册页 -
sssd.conf(5)
手册页