20.8. 在 IdM 客户端上为 sudo 启用 GSSAPI 身份验证,并强制实施 Kerberos 身份验证指标
通过 pam_sss_gss.so PAM 模块,在 IdM 客户端上为 sudo 和 sudo -i 命令启用 Generic Security Service Application Program Interface (GSSAPI) (GSSAPI)身份验证。此外,只有已使用智能卡登录的用户才能使用 他们的 Kerberos 票据对这些命令进行身份验证。
您可以将此流程作为模板,使用 SSSD 为其他 PAM 感知的服务配置 GSSAPI 身份验证,并进一步限制只对那些在其 Kerberos 票据上附加了特定身份验证指标的用户进行访问。
先决条件
-
您已为应用于 IdM 主机的 IdM 用户创建了
sudo规则。在本例中,您已创建了idm_user_rebootsudo规则,为idm_user帐户授予在idmclient主机上运行/usr/sbin/reboot命令的权限。 -
您已为
idmclient主机配置了智能卡身份验证。 -
idmclient主机正在运行 RHEL 8.4 或更高版本。 -
您需要
root权限来修改/etc/sssd/sssd.conf文件和/etc/pam.d/目录中的 PAM 文件。
步骤
-
打开
/etc/sssd/sssd.conf配置文件: 将以下条目添加到
[domain/ <idm_domain_name>]部分。[domain/<idm_domain_name>] pam_gssapi_services = sudo, sudo-i pam_gssapi_indicators_map = sudo:pkinit, sudo-i:pkinit
[domain/<idm_domain_name>] pam_gssapi_services = sudo, sudo-i pam_gssapi_indicators_map = sudo:pkinit, sudo-i:pkinitCopy to Clipboard Copied! Toggle word wrap Toggle overflow -
保存并关闭
/etc/sssd/sssd.conf文件。 重启 SSSD 服务以载入配置更改。
systemctl restart sssd
[root@idmclient ~]# systemctl restart sssdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 在 RHEL 8.8 或更高版本中:
确定您是否已选择了
sssdauthselect配置文件:authselect current Profile ID: sssd
# authselect current Profile ID: sssdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 可选:选择
sssdauthselect配置文件:authselect select sssd
# authselect select sssdCopy to Clipboard Copied! Toggle word wrap Toggle overflow 启用 GSSAPI 身份验证:
authselect enable-feature with-gssapi
# authselect enable-feature with-gssapiCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将系统配置为只使用智能卡验证用户:
authselect with-smartcard-required
# authselect with-smartcard-requiredCopy to Clipboard Copied! Toggle word wrap Toggle overflow
对于 RHEL 8.7 或更早版本:
-
打开
/etc/pam.d/sudoPAM 配置文件。 添加下列条目,作为
/etc/pam.d/sudo文件中的auth部分的第一行。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
保存并关闭
/etc/pam.d/sudo文件。 -
打开
/etc/pam.d/sudo-iPAM 配置文件。 添加下列条目,作为
/etc/pam.d/sudo-i文件中的auth部分的第一行。Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
保存并关闭
/etc/pam.d/sudo-i文件。
-
打开
验证
以
idm_user帐户登录到主机,并使用智能卡进行身份验证。ssh -l idm_user@idm.example.com localhost PIN for smart_card
[root@idmclient ~]# ssh -l idm_user@idm.example.com localhost PIN for smart_cardCopy to Clipboard Copied! Toggle word wrap Toggle overflow 验证作为智能卡用户,您有一个票据授予票据。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 显示允许
idm_user帐户执行的sudo规则。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
sudo重启机器,而不用指定密码。sudo /usr/sbin/reboot
[idm_user@idmclient ~]$ sudo /usr/sbin/rebootCopy to Clipboard Copied! Toggle word wrap Toggle overflow