管理智能卡验证
大约 63 分钟
管理智能卡验证
来源:官方文档 原始多页入口:管理智能卡验证 内容规模:约 56,687 字符,70 个章节标题,223 个命令/代码块,34 条提示框
阅读提要
- 副标题:配置和使用智能卡验证
- 摘要:使用身份管理(IdM),您可以使用私钥和智能卡中的证书的形式存储凭证。然后,您可以使用此智能卡而不是密码向服务进行身份验证。管理员可以配置映射规则来减少管理开销。
- 主要章节:配置和使用智能卡验证;对红帽文档提供反馈;第 1 章 了解智能卡验证;第 2 章 为智能卡验证配置身份管理;第 3 章 为 IdM 中智能卡验证配置 ADCS 发布的证书;第 4 章 配置身份验证的证书映射规则;第 5 章 使用 Web 控制台为集中管理的用户配置智能卡验证;第 6 章 使用本地证书配置智能卡验证;第 7 章 使用 authselect 配置智能卡验证;第 8 章 使用 SSSD 在 GDM 中启用身份验证机制选择;第 9 章 使用智能卡进行远程向 sudo 进行身份验证;第 10 章 使用带有智能卡的 PKINIT,以活动目录用户身份进行身份验证
- 推荐阅读顺序:先看“阅读提要”和目录,再按章节查看“关键点/命令/注意”;需要原文细节时点击来源链接。
章节笔记
概览
- 该章节主要为下一级主题的入口。
配置和使用智能卡验证
- 要点:摘要
对红帽文档提供反馈
- 要点:我们致力于为您提供高质量的文档,您的反馈将对我们有很大帮助。为帮助我们改进,您可以通过 Red Hat Jira 跟踪系统提交建议或报告错误。
- 要点:流程
- 列表:登录到 Jira 网站。 如果您还没有帐户,请创建一个。
- 列表:单击顶部导航栏中的 Create。
- 列表:在 Summary 字段中输入描述性标题。
- 列表:在 Description 字段中输入您对改进的建议。包括文档相关部分的链接。
- 列表:点窗口底部的 Create。
第 1 章 了解智能卡验证
- 要点:智能卡验证将密码替换为包含私钥的物理令牌。用户插入卡,并输入 PIN 来实现双因素安全性。管理员使用特定工具来管理卡内容并配置身份管理服务器和客户端,以支持这些工作流。
1.1. 什么是智能卡
- 要点:智能卡充当安全可移植的令牌,其中包含用于加密操作的微处理器。它存储用户凭据,如私钥和证书,使用特殊的硬件读取器和软件接口启用身份验证。
- 要点:您可以将智能卡放在读卡器或 USB 插座中,并为智能卡提供 PIN 代码,而不是提供您的密码。
1.2. 什么是智能卡验证
- 要点:智能卡验证使用保存在物理卡而不是密码中的加密密钥验证身份。这个双因素验证方法需要拥有卡和其 PIN 知识,显著降低了模仿的风险。
- 要点:基于公钥的验证和基于证书的身份验证是两个广泛使用的、基于密码验证的替代选择。使用公钥和私钥而不是您的密码确认您的身份。证书是一个电子文件,用于识别个人、服务器、公司或其他实体并将该身份与公钥关联。比如某个驱动程序的许可或论坛,证书可提供个人身份的可识别验证。公钥加密使用证书来解决身份模拟问题。
1.2.1. IdM 中智能卡验证示例
- 要点:您可以实现智能卡验证来保护系统入口点。常见情况包括为本地用户强制登录,并在用户从读卡器中删除其卡时配置自动屏幕锁定。
- 要点:使用智能卡登录到您的系统
- 注意:注意 如果您登录到 GDM 并移除智能卡,则屏幕锁定会被启用,您必须重新插入智能卡并使用 PIN 验证来解锁屏幕。
1.3. 支持的智能卡
- 要点:Red Hat Enterprise Linux 支持特定的智能卡标准,包括 Coolkey、CAC、PIV 和 PKCS Cost。兼容性取决于卡类型和配置,以及适用于各种政府和企业安全要求的选项。
- 要点:在 Red Hat Enterprise Linux 中,支持以下类型的智能卡:
- 列表:带有 Coolkey 小程序的卡: Gemalto TOP IM FIPS CY2 64K 令牌(SCP01) Giesecke & Devrient (G&D) SmartCafe Expert 7.0 (SCP03) SafeNet Assured Technologies SC-650 (SCP01)
- 列表:Gemalto TOP IM FIPS CY2 64K 令牌(SCP01)
- 列表:Giesecke & Devrient (G&D) SmartCafe Expert 7.0 (SCP03)
- 列表:SafeNet Assured Technologies SC-650 (SCP01)
- 列表:CAC 和 PIV 智能卡。
- 列表:也支持所选的 PKCS #15 卡。虽然这个系列中的多个卡都支持,但这些卡有许多不同的配置和选项。有关哪些卡与 RHEL 兼容的详情,请联系您的客户代表。
1.3.1. 支持的智能卡读卡器
- 要点:系统使用 pcsc-lite 项目支持与 CCID 标准兼容的智能卡读取器。虽然大多数符合 CCID 的 USB 设备可自动工作,但红帽专门测试并验证所选读者以确保可靠性。
- 要点:红帽定期将上游项目中的 USB 识别器更新到我们的 pcsc-lite-ccid 驱动程序中。此外,红帽可自行决定是否支持其他读卡器。以下智能卡读卡器的列表已由红帽测试并验证:
- 列表:SCR331/SCR3310
- 列表:Omnikey 3121 (必须是 SC650 卡的配件号 R31210399 )
- 列表:支持的CCID读取器/ICCD令牌
- 列表:联邦雇员和承包商(PIV)的个人身份验证
- 列表:RHEL 中的智能卡支持
1.4. 支持的硬件安全模块
- 要点:使用硬件安全模块(HSM)为身份管理服务器提供专用的加密处理。系统支持特定固件和客户端软件版本,用于 nCipher nShield 和 Thales Luna 等设备,以确保密钥管理的安全。
- 表格样本(共 3 行):
- HSM | 固件 | 设备软件 | 客户端软件
- nCipher nShield Connect XC (High) | nShield_HSM_Firmware-12.72.1 | 12.71.0 | SecWorld_Lin64-12.71.0
- Thales TCT Luna Network HSM Luna-T7 | lunafw_update-7.11.1-4 | 7.11.0-25 | 610-500244-001_LunaClient-7.11.1-5
1.5. RHEL 中的智能卡验证选项
- 要点:authselect 命令配置系统范围的身份验证行为。您可以强制使用专用智能卡,启用混合密码选项,或者在删除卡时触发自动会话锁定,以满足特定的安全策略。
- 要点:您可以使用 authselect 命令配置如何在特定的身份管理(IdM)客户端中进行智能卡验证, authselect enable-feature < smartcard_option& gt;。可用的智能卡选项如下:
- 列表:with-smartcard: 用户可以使用用户名和密码进行身份验证,或者使用他们的智能卡进行身份验证
- 列表:with-smartcard-required: 用户可以使用智能卡进行验证,并禁用密码验证。您不能在没有智能卡的情况下访问该系统。使用智能卡进行身份验证后,一直保持登录状态,即使您的智能卡已从读取器中移除。 注意 with-smartcard-required 选项代表只对登陆服务(如 login, gdm, xdm, xscreensaver, 和 gnome-screensaver)强制只能使用智能卡进行验证。对于其它服务,如使用 su 或 sudo 来切换用户,则不会强制使用智能卡进行验证,如果没有插入您的智能卡,则会提示您输入密码。
- 列表:with-smartcard-lock-on-removal: 用户可以使用其智能卡进行验证。但是,如果您从读取器中移除智能卡,则系统会被锁定。您不能使用密码进行验证。 注意 with-smartcard-lock-on-removal 选项仅适用于具有 GNOME 桌面环境的系统。如果您使用基于 tty 或控制台的系统,并且您从读卡器中删除了智能卡,则不会将您自动锁在系统之外。
- 列表:使用 authselect 配置智能卡
- 注意:注意 with-smartcard-required 选项代表只对登陆服务(如 login, gdm, xdm, xscreensaver, 和 gnome-screensaver)强制只能使用智能卡进行验证。对于其它服务,如使用 su 或 sudo 来切换用户,则不会强制使用智能卡进行验证,如果没有插入您的智能卡,则会提示您输入密码。
- 注意:注意 with-smartcard-lock-on-removal 选项仅适用于具有 GNOME 桌面环境的系统。如果您使用基于 tty 或控制台的系统,并且您从读卡器中删除了智能卡,则不会将您自动锁在系统之外。
1.6. 管理智能卡及其内容的工具
- 要点:利用一组命令行工具与智能卡硬件和数据交互。opensc-tool、p11tool 和 certutil 等工具启用列出设备、管理加密对象和故障排除证书问题。
- 要点:您可以使用这些工具执行以下操作:
- 列表:列出连接到系统的可用智能卡读取器。
- 列表:列出可用的智能卡并查看其内容。
- 列表:操作智能卡内容(密钥和证书)。
- 列表:OpenSC 工具:使用 opensc 中实施的驱动程序。 opensc-tool: 执行智能卡操作。 pkcs15-tool :管理智能卡上的 PKCS#15 数据结构,如列出和读取存储在令牌上的 PIN、密钥和证书。 pkcs11-tool :管理智能卡上的 PKCS#11 数据对象,如列出和读取令牌上存储的 PIN、密钥和证书。
- 列表:opensc-tool: 执行智能卡操作。
- 列表:pkcs15-tool :管理智能卡上的 PKCS#15 数据结构,如列出和读取存储在令牌上的 PIN、密钥和证书。
1.7. 证书和智能卡验证
- 要点:身份验证依赖于身份管理 (IdM)、Active Directory (AD) 或外部权威机构生成的有效证书。您必须将域配置为信任发布机构,并将这些证书映射到特定的用户帐户。
- 要点:如果您使用 Identity Management 或 Active Directory 来管理域中的身份存储、身份验证、策略和授权策略,则用于身份验证的证书会分别由 IdM 或 AD 生成。您还可以使用外部证书颁发机构提供的证书,在这种情况下,您必须配置 Active Directory 或 IdM 接受来自外部提供程序的证书。如果用户不是某个域的一部分,您可以使用本地证书颁发机构生成的证书。
- 列表:为智能卡验证配置身份管理
- 列表:为 IdM 中智能卡验证配置 ADCS 发布的证书
- 列表:适用于智能卡的证书
1.8. IdM 中智能卡验证所需的步骤
- 要点:部署智能卡验证涉及配置服务器和客户端组件。您必须配置 IdM 基础架构,将证书映射到用户条目,并置备具有正确加密密钥的物理卡。
- 要点:在 Identity Management (IdM) 中使用智能卡进行身份验证前,您必须确定以下步骤:
- 列表:为智能卡验证配置 IdM 服务器。
- 列表:为智能卡验证配置 IdM 客户端。
- 列表:将证书添加到 IdM 的用户条目。
- 列表:在智能卡中保存密钥和证书。
- 列表:为智能卡验证配置 IdM 服务器
- 列表:为智能卡验证配置 IdM 客户端
1.9. 使用 Active Directory 发布的证书的智能卡验证所需的步骤
- 要点:集成 Active Directory (AD)证书需要在身份管理(IdM)内建立信任和映射规则。您必须导入 AD 证书颁发机构,转换卡存储的用户凭证,并配置 SSSD 来处理跨域身份验证流。
- 要点:在使用由 Active Directory (AD) 发布的证书的智能卡验证前,您必须确定以下步骤:
- 列表:将 CA 和用户证书从活动目录复制到 IdM 服务器和客户端。
- 列表:使用 ADCS 证书为智能卡身份验证配置 IdM 服务器和客户端。
- 列表:转换 PFX(PKCS#12)文件,以便在智能卡中保存证书和私钥。
- 列表:在 sssd.conf 文件中配置超时。
- 列表:为智能卡身份验证创建证书映射规则。
- 列表:使用 SFTP 从 Active Directory 复制证书
第 2 章 为智能卡验证配置身份管理
- 要点:身份管理(IdM)支持使用内部或外部授权机构发布的证书进行智能卡验证。配置 rootca.pem 文件,以便为外部证书颁发机构建立信任,从而实现了跨域的安全访问。
- 注意:注意 目前,IdM 不支持导入多个共享相同主题区分名称(DN)但加密方式不同的 CA。
2.1. 为智能卡验证配置 IdM 服务器
- 要点:ipa-advise 工具生成一个配置脚本,来在服务器上启用智能卡验证。此脚本会自动配置 Apache HTTP 服务器、密钥分发中心(KDC)公钥加密,用于 Kerberos (PKINIT)的初始身份验证,以及用于证书处理的 IdM Web UI。
- 要点:了解如何为证书由身份管理(IdM) CA 信任的 <EXAMPLE.ORG> 域的证书颁发机构(CA)发布的用户启用智能卡验证。
- 列表:有到 IdM 服务器的 root 访问权限。
- 列表:您有 root CA 证书和所有中间 CA 证书: 为 <EXAMPLE.ORG> CA 直接发布证书的根 CA 的证书,或使用一个或多个其子 CA 发布证书。您可以从颁发机构发布证书的网页下载证书链。 IdM CA 证书。您可以从运行 IdM CA 实例的 IdM 服务器上的 /etc/ipa/ca.crt 文件获取 CA 证书。 所有中间 CA 的证书,即介于 <EXAMPLE.ORG> CA 和 IdM CA 之间。
- 列表:为 <EXAMPLE.ORG> CA 直接发布证书的根 CA 的证书,或使用一个或多个其子 CA 发布证书。您可以从颁发机构发布证书的网页下载证书链。
- 列表:IdM CA 证书。您可以从运行 IdM CA 实例的 IdM 服务器上的 /etc/ipa/ca.crt 文件获取 CA 证书。
- 列表:所有中间 CA 的证书,即介于 <EXAMPLE.ORG> CA 和 IdM CA 之间。
- 列表:创建要进行配置的目录: [root@server]# mkdir ~/SmartCard/
- 命令/配置摘录:
[root@server]# mkdir ~/SmartCard/
[root@server]# cd ~/SmartCard/- 注意:注意 在任何子 CA 证书前,确保将根 CA 的证书添加为参数,并且 CA 或子 CA 证书还没有过期。
- 注意:警告 如果您只使用 IdM CA 发出的用户证书,不要禁用 OCSP 检查。OCSP 响应器是 IdM 的一部分。
2.2. 使用 Ansible 为智能卡验证配置 IdM 服务器
- 要点:Ansible 使用 ipasmartcard_server 角色自动执行服务器配置。此 playbook 使用清单文件中指定的根和中间 CA 证书来配置 Apache 和 KDC。
- 要点:您可以使用 Ansible 为其证书是由身份管理(IdM) CA 信任的 <EXAMPLE.ORG> 域的证书颁发机构(CA)发布的用户启用智能卡验证。要做到这一点,您必须获取以下证书,以便在运行具有 ipasmartcard_server ansible-freeipa 角色脚本的 Ansible playbook 时使用它们:
- 列表:为 <EXAMPLE.ORG> CA 直接发布证书的根 CA 的证书,或使用一个或多个其子 CA 发布证书。您可以从颁发机构发布证书的网页下载证书链。详情请参阅 配置浏览器以启用证书验证 中的步骤 4。
- 列表:IdM CA 证书。您可以从任何 IdM CA 服务器上的 /etc/ipa/ca.crt 文件获取 CA 证书。
- 列表:介于<EXAMPLE.ORG> CA 和 IdM CA 之间的所有 CA 的证书。
- 列表:您有到 IdM 服务器的 root 访问权限。
- 列表:您需要知道 IdM admin 密码。
- 列表:您有根 CA 证书、IdM CA 证书以及所有中间 CA 证书。
- 命令/配置摘录:
# openssl x509 -in <filename>.der -inform DER -out <filename>.pem -outform PEM
# openssl x509 -noout -text -in root-ca.pem | more- 注意:警告 如果您只使用 IdM CA 发出的用户证书,不要禁用 OCSP 检查。OCSP 响应器是 IdM 的一部分。
- 注意:注意 要在整个拓扑中启用智能卡验证,请将 Ansible playbook 中的 hosts 变量设为 ipacluster : --- - name: Playbook to set up smartcard for IPA server and replicas hosts: ipacluster [...]
2.3. 为智能卡验证配置 IdM 客户端
- 要点:IdM 客户端需要特定的配置来支持 SSH、GDM 和控制台会话的智能卡登录。您可以在服务器上生成配置脚本,并在目标客户端上运行该脚本来配置 SSSD 和系统信任存储。
- 要点:您可以为智能卡验证配置 IdM 客户端。这个过程需要运行在每个 IdM 系统、客户端或服务器上,您希望在使用智能卡进行身份验证时连接到这些系统。例如,若要启用从主机 A 到主机 B 的 ssh 连接,需要在主机 B 上运行脚本。
- 列表:ssh 协议 详情请查看 使用智能卡验证配置 SSH 访问。
- 列表:控制台登录
- 列表:GNOME 显示管理器(GDM)
- 列表:su 命令
- 列表:其上运行浏览器的机器。机器可以在 IdM 域之外。
- 列表:其上运行 httpd 的 IdM 服务器。
- 命令/配置摘录:
[root@server SmartCard]# kinit admin
[root@server SmartCard]# ipa-advise config-client-for-smart-card-auth > config-client-for-smart-card-auth.sh- 注意:注意 在任何子 CA 证书前,确保将根 CA 的证书添加为参数,并且 CA 或子 CA 证书还没有过期。
2.4. 使用 Ansible 为智能卡验证配置 IdM 客户端
- 要点:ipasmartcard_client Ansible 角色同时自动化多个客户端的配置。此 playbook 配置智能卡守护进程、系统信任存储和 SSSD 配置集,以允许整个基础架构中基于证书的身份验证。
- 要点:为使用以下任一方式访问 IdM 的 IdM 用户启用智能卡验证:
- 列表:ssh 协议 详情请查看 使用智能卡验证配置 SSH 访问。
- 列表:控制台登录
- 列表:GNOME 显示管理器(GDM)
- 列表:su 命令
- 列表:您的 IdM 服务器已被配置为进行智能卡验证,如 使用 Ansible 为智能卡验证配置 IdM 服务器 中所述。
- 列表:有对 IdM 服务器和 IdM 客户端的 root 访问权限。
- 命令/配置摘录:
# openssl x509 -in <filename>.der -inform DER -out <filename>.pem -outform PEM
# openssl x509 -noout -text -in root-ca.pem | more- 注意:注意 对于向 IdM Web UI 进行身份验证,不需要此流程。向 IdM Web UI 进行身份验证涉及两个主机,它们都不必是 IdM 客户端: 其上运行浏览器的机器。机器可以在 IdM 域之外。 其上运行 httpd 的 IdM 服务器。
- 注意:注意 如果您使用 --mkhomedir 选项安装了 IdM 客户端,则远程用户将能够登录到其主目录。否则,默认登录位置是目录结构的根目录,/ 。
2.5. 在 IdM Web UI 的用户条目中添加证书
- 要点:您可以使用 IdM Web UI 将外部证书直接上传到用户配置集。此操作将物理智能卡中的特定凭证与相应的身份管理用户帐户相关联。
- 要点:也可以将证书映射数据上传到 IdM 中的用户条目,而不必上传整个证书。包含完整证书或证书映射数据的用户条目可以和相应的证书映射规则一起使用,以便于系统管理员配置智能卡身份验证。详情请参阅 配置身份验证的证书映射规则。
- 列表:您有要添加到用户条目的证书。
- 列表:如果要给另一个用户添加证书,请以管理员身份登录到 IdM Web UI。要在您自己的配置文件中添加证书,您不需要管理员的凭证。
- 列表:导航到 Users → Active users → sc_user。
- 列表:找到 Certificate 选项,并单击 Add。
- 列表:在命令行上,使用 cat 工具或文本编辑器以 PEM 格式显示证书: [user@client SmartCard]$ cat testuser.crt
- 列表:将证书从 CLI 复制并粘贴到 Web UI 中打开的窗口中。
- 命令/配置摘录:
[user@client SmartCard]$ cat testuser.crt- 注意:注意 如果用户的证书已由 IdM 证书颁发机构发布,则证书已存储在用户条目中,您不需要按照以下流程操作。
2.6. 在 IdM CLI 中向用户条目中添加证书
- 要点:命令行界面允许您将外部证书映射到用户条目。您必须在执行 ipa user-add-cert 命令前格式化证书字符串来删除标头和 footers。
- 要点:也可以将证书映射数据上传到 IdM 中的用户条目,而不必上传整个证书。包含完整证书或证书映射数据的用户条目可以和相应的证书映射规则一起使用,以便于系统管理员配置智能卡身份验证。详情请参阅 配置身份验证的证书映射规则。
- 列表:您有要添加到用户条目的证书。
- 列表:如果要给另一个用户添加证书,请以管理员身份登录到 IdM CLI: [user@client SmartCard]$ kinit admin 要在您自己的配置文件中添加证书,您不需要管理员的凭证。 [user@client SmartCard]$ kinit <smartcard_user>
- 列表:创建一个包含证书的环境变量,该变量移除了标头和页脚,并串联成一行,这是 ipa user-add-cert 命令期望的格式: [user@client SmartCard]$ export CERT=
openssl x509 -outform der -in testuser.crt | base64 -w0 -请注意,testuser.crt 文件中的证书必须是 PEM 格式。 - 列表:使用 ipa user-add-cert 命令将证书添加到 <smartcard_user> 的配置文件中: [user@client SmartCard]$ ipa user-add-cert <smartcard_user> --certificate=$CERT <smartcard_user> 条目现在包含一个外部证书。
- 命令/配置摘录:
[user@client SmartCard]$ kinit admin
[user@client SmartCard]$ kinit <smartcard_user>- 注意:注意 如果用户的证书已由 IdM 证书颁发机构发布,则证书已存储在用户条目中,您不需要按照以下流程操作。
2.7. 安装用来管理和使用智能卡的工具
- 要点:配置智能卡需要特定的中间件和管理工具,如 OpenSC 和 GnuTLS 软件包。启用 pcscd 服务,以便于系统和卡阅读器之间的通信。
- 要点:先决条件
- 列表:您有 root 权限。
- 列表:安装 opensc 和 gnutls-utils 软件包: # dnf -y install opensc gnutls-utils
- 列表:启动 pcscd 服务。 # systemctl start pcscd
- 列表:验证 pcscd 服务是否已启动并正在运行: # systemctl status pcscd
- 命令/配置摘录:
# dnf -y install opensc gnutls-utils
# systemctl start pcscd2.8. 准备智能卡并将证书和密钥上传到智能卡
- 要点:pkcs15-init 工具初始化空白智能卡并管理其加密内容。使用这个实用程序擦除卡,定义 PIN,创建存储插槽,并上传所需的私钥和证书。
- 要点:pkcs15-init 工具可能无法使用所有智能卡。您必须使用您使用智能卡的工具。
- 列表:已安装 opensc 软件包,其中包括 pkcs15-init 工具。 如需了解更多详细信息,请参阅 安装用于管理和使用智能卡的工具。
- 列表:该卡插入读卡器并连接到计算机。
- 列表:您有一个要存储在智能卡上的私钥、公钥和证书。在此流程中,testuser.key、testuserpublic.key 和 testuser.crt 是用于私钥、公钥和证书的名称。
- 列表:您有当前的智能卡用户 PIN 和 Security Officer PIN (SO-PIN)。
- 列表:擦除智能卡并使用您的 PIN 验证自己: $ pkcs15-init --erase-card --use-default-transport-keys Using reader with a card: Reader name PIN [Security Officer PIN] required. Please enter PIN [Security Officer PIN]: 这个卡已经被清除。
- 列表:初始化智能卡,设置您的用户 PIN 和 PUK,以及您的安全响应 PIN 和 PUK: $ pkcs15-init --create-pkcs15 --use-default-transport-keys \ --pin 963214 --puk 321478 --so-pin 65498714 --so-puk 784123 Using reader with a card: Reader name pcks15-init 工具在智能卡上创建一个新插槽。
- 命令/配置摘录:
$ pkcs15-init --erase-card --use-default-transport-keys
Using reader with a card: Reader name PIN [Security Officer PIN] required. Please enter PIN [Security Officer PIN]:- 注意:注意 在存储您的私钥并将证书存储在下一步中时,您为 --id 指定的值必须相同。建议为 --id 指定自己的值,否则它们将更复杂的值由工具计算。
- 注意:注意 如果公钥与私钥或证书对应,请指定与私钥或证书的 ID 相同的 ID。
2.9. 使用智能卡登录到 IdM
- 要点:用户通过选择证书身份验证选项来安全地访问 IdM Web UI。浏览器提示输入智能卡 PIN 解锁设备并针对服务器验证用户身份。
- 要点:先决条件
- 列表:web 浏览器被配置为使用智能卡验证。
- 列表:IdM 服务器被配置为智能卡验证。
- 列表:在您的智能卡中安装的证书由 IdM 服务器发出,或者已添加到 IdM 的用户条目中。
- 列表:您知道解锁智能卡所需的 PIN。
- 列表:智能卡已插入到读取器中。
- 列表:在浏览器中打开 IdM Web UI。
2.10. 在 IdM 客户端中使用智能卡验证登录到 GDM
- 要点:GNOME 显示管理器(GDM)支持使用智能卡硬件直接登录。用户插入他们的卡,并输入 PIN 进行身份验证,自动获取会话的 Kerberos Ticket Granting Ticket (TGT)。
- 要点:先决条件
- 列表:为智能卡验证配置了系统。详情请参阅为智能卡验证配置 IdM 客户端。
- 列表:该智能卡包含您的证书和私钥。
- 列表:该用户帐户是 IdM 域的成员。
- 列表:智能卡中的证书使用以下之一映射到用户条目: 为特定用户条目分配证书。详情请参阅 Adding a certificate to a user entry in the IdM Web UI 或 Adding a certificate to a user entry in the IdM CLI。 应用到该帐户的证书映射数据。详情请查看用于 在智能卡上配置身份验证的证书映射规则。
- 列表:为特定用户条目分配证书。详情请参阅 Adding a certificate to a user entry in the IdM Web UI 或 Adding a certificate to a user entry in the IdM CLI。
- 列表:应用到该帐户的证书映射数据。详情请查看用于 在智能卡上配置身份验证的证书映射规则。
- 命令/配置摘录:
$ klist
Ticket cache: KEYRING:persistent:1358900015:krb_cache_TObtNMd Default principal: example.user@REDHAT.COM Valid starting Expires Service principal 04/20/2020 13:58:24 04/20/2020 23:58:24 krbtgt/EXAMPLE.COM@EXAMPLE.COM renew until 04/27/2020 08:58:152.11. 在 su 命令中使用智能卡验证
- 要点:su 命令支持切换用户上下文的智能卡验证。当您配置它时,系统会提示用户输入智能卡 PIN,而不是输入密码来授权特权升级。
- 要点:先决条件
- 列表:为智能卡验证配置了您的 IdM 服务器和客户端。 请参阅为智能卡验证配置 IdM 服务器 请参阅为智能卡验证配置 IdM 客户端
- 列表:请参阅为智能卡验证配置 IdM 服务器
- 列表:请参阅为智能卡验证配置 IdM 客户端
- 列表:该卡插入读卡器并连接到计算机。
- 列表:在终端窗口中,使用 su 命令切换到其他用户: $ su - <user_name> PIN for smart_card 如果配置正确,会提示您输入智能卡 PIN。
- 命令/配置摘录:
$ su - <user_name>
PIN for smart_card第 3 章 为 IdM 中智能卡验证配置 ADCS 发布的证书
- 要点:您可以使用 Active Directory (AD)证书服务(ADCS)为 IdM 智能卡用户发布凭证。此配置会在 IdM 环境中集成 AD 发布的证书,利用跨林信任在两个域间验证用户。
3.1. 先决条件
- 列表:身份管理(IdM)和活动目录(AD)信任已安装
- 列表:活动目录证书服务(ADCS)已安装,并且用户证书已生成
3.2. 信任配置和证书使用量所需的 Windows 服务器设置
- 要点:配置 Windows 服务器涉及准备证书颁发机构来发布兼容凭证。您必须将密钥长度设置为至少 2048 位,并启用私钥导出来生成有效的 PKCS lorax (.PFX)文件。
- 要点:您必须在 Windows 服务器上配置以下内容:
- 列表:已安装活动目录证书服务(ADCS)
- 列表:创建证书颁发机构
- 列表:可选:如果您使用证书颁发机构 Web 注册,则必须配置互联网信息服务(IIS)
- 列表:密钥必须有 2048 位或更多
- 列表:包括一个私钥
- 列表:您将需要以下格式的证书:个人信息交换— PKCS #12(.PFX) 启用证书隐私
3.3. 使用 sftp 从 Active Directory 复制证书
- 要点:要启用跨平台信任,您必须将特定证书文件从 Windows Server 传送到 Linux 环境。您必须将 root CA 证书安全地复制到 IdM 服务器和用户的私钥文件到客户端。
- 要点:为了可以使用智能卡验证,您需要复制以下证书文件:
- 列表:CER 格式的根 CA 证书:IdM 服务器上的 adcs-winserver-ca.cer。
- 列表:具有 PFX 格式私钥的用户证书:IdM 客户端上的 aduser1.pfx。
- 列表:从 IdM 服务器 连接,并将 adcs-winserver-ca.cer 根证书复制到 IdM 服务器: root@idmserver ~]# sftp Administrator@winserver.ad.example.com Administrator@winserver.ad.example.com's password: Connected to Administrator@winserver.ad.example.com. sftp> cd <path_to_certificates> sftp> ls adcs-winserver-ca.cer aduser1.pfx sftp> sftp> get adcs-wi…
- 列表:从 IdM 客户端 连接,并将 aduser1.pfx 用户证书复制到客户端: [root@client1 ~]# sftp Administrator@winserver.ad.example.com Administrator@winserver.ad.example.com's password: Connected to Administrator@winserver.ad.example.com. sftp> cd /<path_to_certificates> sftp> get aduser1.pfx Fetching <path_to_certificates>/aduser1.pfx to aduser1.pfx…
- 命令/配置摘录:
root@idmserver ~]# sftp Administrator@winserver.ad.example.com
Administrator@winserver.ad.example.com's password: Connected to Administrator@winserver.ad.example.com. sftp> cd <path_to_certificates> sftp> ls adcs-winserver-ca.cer aduser1.pfx sftp> sftp> get adcs-winserver-ca.cer Fetching <path_to_certificates>/adcs-winserver-ca.cer to adcs-winserver-ca.cer <path_to_certificates>/adcs-winserver-ca.cer 100% 1254 15KB/s 00:00 sftp quit- 注意:注意 这个过程预期 SSH 访问是允许的。如果 SSH 不可用,用户必须将 文件从 AD 服务器复制到 IdM 服务器和客户端。
3.4. 使用 ADCS 证书为智能卡身份验证配置 IdM 服务器和客户端
- 要点:ipa-advise 工具为 ADCS 集成自动配置身份管理(IdM)组件。生成服务器和客户端脚本,以安装必要的软件包、配置 Kerberos PKINIT,并将 CA 证书放在正确的系统目录中。
- 要点:通过选择其中一个选项,为智能卡验证配置服务器和客户端:
- 列表:在 IdM 服务器中:准备 ipa-advise 脚本来为智能卡验证配置 IdM 服务器。
- 列表:在 IdM 服务器中:准备 ipa-advise 脚本来为智能卡验证配置 IdM 客户端。
- 列表:在 IdM 服务器上:使用 AD 证书应用 IdM 服务器上的 ipa-advise 服务器脚本。
- 列表:将客户端脚本移到 IdM 客户端机器中。
- 列表:在 IdM 客户端上:使用 AD 证书在 IdM 客户端上应用 ipa-advise 客户端脚本。
- 列表:证书已复制到 IdM 服务器。
- 命令/配置摘录:
[root@idmserver ~]# ipa-advise config-client-for-smart-card-auth > sc_client.sh
[root@idmserver ~]# ipa-advise config-server-for-smart-card-auth > sc_server.sh3.5. 转换 PFX 文件
- 要点:智能卡工具需要特定格式的证书和密钥。您必须使用 OpenSSL 将从 Active Directory 导出的 PKCSautomationhub (.PFX)文件转换为单独的 PEM 格式的私钥和证书文件。
- 要点:先决条件
- 列表:PFX 文件被复制到 IdM 客户端机器中。
- 列表:在 IdM 客户端上,将文件转换为 PEM 格式: [root@idmclient1 ~]# openssl pkcs12 -in aduser1.pfx -out aduser1_cert_only.pem -clcerts -nodes Enter Import Password:
- 列表:将密钥提取到单独的文件中: [root@idmclient1 ~]# openssl pkcs12 -in adduser1.pfx -nocerts -out adduser1.pem > aduser1.key
- 列表:将公共证书提取到单独的文件中: [root@idmclient1 ~]# openssl pkcs12 -in adduser1.pfx -clcerts -nokeys -out aduser1_cert_only.pem > aduser1.crt 此时,您可以将 aduser1.key 和 aduser1.crt 存储在智能卡中。
- 命令/配置摘录:
[root@idmclient1 ~]# openssl pkcs12 -in aduser1.pfx -out aduser1_cert_only.pem -clcerts -nodes
Enter Import Password:3.6. 安装用来管理和使用带有 ADCS 证书的智能卡的工具
- 要点:管理智能卡内容需要特定的软件工具,如 opensc 和 gnutls-utils 软件包。您必须启动 pcscd 服务,以启用系统和智能卡读取器之间的通信。
- 要点:先决条件
- 列表:您有 root 权限。
- 列表:安装 opensc 和 gnutls-utils 软件包: # dnf -y install opensc gnutls-utils
- 列表:启动 pcscd 服务。 # systemctl start pcscd
- 列表:验证 pcscd 服务是否已启动并正在运行: # systemctl status pcscd
- 命令/配置摘录:
# dnf -y install opensc gnutls-utils
# systemctl start pcscd3.7. 准备智能卡并将 ADCS 证书和密钥上传到智能卡
- 要点:使用 pkcs15-init 工具,您可以初始化智能卡并使用 ADCS 凭证置备它们。初始化涉及删除卡、设置 PIN,并将转换的私钥和证书文件上传到新存储插槽。
- 要点:pkcs15-init 工具可能无法使用所有智能卡。您必须使用您使用智能卡的工具。
- 列表:已安装 opensc 软件包,其中包括 pkcs15-init 工具。 如需了解更多详细信息,请参阅 安装用于管理和使用智能卡的工具。
- 列表:该卡插入读卡器并连接到计算机。
- 列表:您有一个要存储在智能卡上的私钥、公钥和证书。在此流程中,testuser.key、testuserpublic.key 和 testuser.crt 是用于私钥、公钥和证书的名称。
- 列表:您有当前的智能卡用户 PIN 和 Security Officer PIN (SO-PIN)。
- 列表:擦除智能卡并使用您的 PIN 验证自己: $ pkcs15-init --erase-card --use-default-transport-keys Using reader with a card: Reader name PIN [Security Officer PIN] required. Please enter PIN [Security Officer PIN]: 这个卡已经被清除。
- 列表:初始化智能卡,设置您的用户 PIN 和 PUK,以及您的安全响应 PIN 和 PUK: $ pkcs15-init --create-pkcs15 --use-default-transport-keys \ --pin 963214 --puk 321478 --so-pin 65498714 --so-puk 784123 Using reader with a card: Reader name pcks15-init 工具在智能卡上创建一个新插槽。
- 命令/配置摘录:
$ pkcs15-init --erase-card --use-default-transport-keys
Using reader with a card: Reader name PIN [Security Officer PIN] required. Please enter PIN [Security Officer PIN]:- 注意:注意 在存储您的私钥并将证书存储在下一步中时,您为 --id 指定的值必须相同。建议为 --id 指定自己的值,否则它们将更复杂的值由工具计算。
- 注意:注意 如果公钥与私钥或证书对应,请指定与私钥或证书的 ID 相同的 ID。
3.8. 在 sssd.conf 中配置超时
- 要点:因为硬件延迟或虚拟化,智能卡操作可能会超过默认的 SSSD 超时值。您可以在 sssd.conf 中扩展 p11_child_timeout 和 krb5_auth_timeout 参数,以防止预处理身份验证失败。
- 要点:使用智能卡证书进行身份验证的时间可能比 SSSD 使用的默认超时时间更长。超时时间可能是由以下原因造成的:
- 列表:很慢的读卡器
- 列表:从物理设备转发到虚拟环境
- 列表:保存在智能卡上的证书太多
- 列表:如果使用 OCSP 来验证证书,则来自 OCSP(在线证书状态协议)响应器的响应较慢
- 列表:您必须以 root 身份登录。
- 列表:打开 sssd.conf 文件: [root@idmclient1 ~]# vim /etc/sssd/sssd.conf
- 命令/配置摘录:
[root@idmclient1 ~]# vim /etc/sssd/sssd.conf
[pam] p11_child_timeout = 603.9. 为智能卡身份验证创建证书映射规则
- 要点:证书映射规则将单个智能卡证书链接到跨 Active Directory (AD) 和 IdM 的多个用户帐户。管理员在身份管理 (IdM) 服务器上配置这些规则,以便使用相同的物理令牌在两个域中启用无缝身份验证。
- 要点:如果要将一个证书用于 AD 和 IdM 中的帐户,您可以在 IdM 服务器上创建证书映射规则。
- 列表:配置身份验证的证书映射规则
第 4 章 配置身份验证的证书映射规则
- 要点:在以下情况下可能需要配置证书映射规则:
- 要点:作为系统管理员,您可以创建证书映射规则,并在向特定用户签发证书之前,为用户条目添加证书映射数据。签发证书后,用户可以使用该证书登录,即使完整证书尚未上传到用户条目。
- 列表:证书已由与 IdM 域处于信任关系的活动目录(AD)的证书系统发布。
- 列表:证书已由外部证书颁发机构发布。
- 列表:IdM 环境较大,很多用户使用智能卡的用户。在这种情况下,添加完整证书可能会比较复杂。在大多数情况下,主题和签发者是可预测的,因此与完整证书相比,更容易提前添加。
- 列表:管理员必须将证书映射数据或完整的证书加载到用户帐户中。
- 列表:管理员必须创建证书映射规则,以允许其帐户包含与证书上信息匹配的证书映射数据条目的用户成功登录到 IdM。
- 列表:使用存储在 IdM 客户端桌面的证书配置身份验证
- 注意:注意 密钥分发中心(KDC)有一个用于证书映射规则的缓存。缓存在第一个 certauth 请求时填充,它有一个 300 秒的硬编码超时。KDC 不会看到对证书映射规则的任何更改,除非它重启了或缓存过期了。 您的证书映射规则可取决于您使用证书的用例。例如,如果您使用带有证书的 SSH,则必须有完整的证书,来从证书中提取公钥。
第 5 章 使用 Web 控制台为集中管理的用户配置智能卡验证
- 要点:为 RHEL web 控制台中的集中管理用户配置智能卡验证。这种安全措施有助于为管理和常规用户提供物理访问控制。
- 要点:您可以在 RHEL web 控制台中为集中管理的用户配置智能卡验证:
- 列表:身份管理
- 列表:Active Directory,它在 Identity Management 的跨林信任中连接
5.1. 先决条件
- 列表:要使用智能卡验证的系统必须是 Active Directory 或 Identity Management 域的成员。
- 列表:用于智能卡验证的证书必须与身份管理或 Active Directory 中的特定用户关联。
5.2. 用于集中管理用户的智能卡验证
- 要点:使用智能卡验证为集中管理的用户提供强大的身份验证。此方法将用户帐户链接到物理凭据,增强身份管理域中的系统的安全性。
- 要点:智能卡是一个物理设备,它可以使用保存在卡中的证书来提供个人验证。个人验证意味着,您可以象使用用户密码一样使用智能卡。
- 列表:为 IdM 中智能卡验证配置 ADCS 发布的证书
- 列表:RHEL 8 及更高版本中的智能卡支持(红帽知识库)
5.3. 为 Web 控制台启用智能卡验证
- 要点:要允许集中管理的用户使用智能卡凭证和 IdM 域策略安全地登录,请为 RHEL web 控制台启用智能卡验证。
- 要点:要在 web 控制台中使用智能卡验证,请在 cockpit.conf 文件中启用此身份验证方法。另外,您还可以在同一文件中禁用密码验证。
- 列表:您已安装了 RHEL 10 web 控制台。 具体步骤请参阅安装并启用 Web 控制台。
- 列表:登录到 RHEL 10 web 控制台。
- 列表:点 Terminal。
- 列表:在 /etc/cockpit/cockpit.conf 中,将 ClientCertAuthentication 设置为 yes : [WebService] ClientCertAuthentication = yes
- 列表:可选:使用以下方法在 cockpit.conf 中禁用基于密码的身份验证: [Basic] action = none 这个配置禁用了密码验证,且必须总是使用智能卡。
- 列表:重启 Web 控制台,以确保 cockpit.service 接受更改: # systemctl restart cockpit
- 命令/配置摘录:
[WebService] ClientCertAuthentication = yes
[Basic] action = none5.4. 使用智能卡登录到 web 控制台
- 要点:您可以使用智能卡凭证登录到 RHEL web 控制台。这使用配置的智能卡策略通过集中管理的用户进行安全访问。
- 要点:先决条件
- 列表:保存在智能卡中的有效证书,该证书与 Active Directory 或 Identity Management 域中创建的用户帐户关联。
- 列表:PIN 用于解锁智能卡。
- 列表:已经将智能卡放入读卡器。
- 列表:您已安装了 RHEL 10 web 控制台。 具体步骤请参阅安装并启用 Web 控制台。
- 列表:登录到 RHEL 10 web 控制台。 浏览器要求您添加 PIN 保护保存在智能卡中的证书。
- 列表:在 Password Required 对话框中,输入 PIN 并点 OK。
- 注意:注意 此步骤不适用于 Google Chrome 用户。
5.5. 为智能卡用户启用免密码 sudo 身份验证
- 要点:您可以为智能卡用户启用免密码 sudo 身份验证,以允许他们在不输入密码的情况下执行管理任务,从而提高了操作效率和安全性。
- 要点:或者,如果使用 RHEL 身份管理,您可以将初始 Web 控制台证书声明为可信,以便使用 sudo、SSH 或其他服务进行身份验证。Web 控制台会在用户会话中自动创建一个 S4U2Proxy Kerberos ticket。
- 列表:已安装身份管理。
- 列表:Active Directory 在身份管理的跨林信任中连接。
- 列表:您的智能卡被配置为登录到 web 控制台。如需更多信息 ,请参阅使用 Web 控制台配置智能卡验证。
- 列表:配置约束委派规则,以列出托管票据可以访问哪些主机。 创建以下示例委派: 输入以下命令添加特定规则可以访问的目标机器列表: # ipa servicedelegationtarget-add cockpit-target # ipa servicedelegationtarget-add-member cockpit-target \ --principals=host/host.example.com@EXAMPLE.COM \ --principals=host/remote.example.com@EXAMPLE.COM 要启用 Web 控制台会话(HTTP/principal)来访问该主机列表,请使用以下命令: # ipa …
- 列表:创建以下示例委派: 输入以下命令添加特定规则可以访问的目标机器列表: # ipa servicedelegationtarget-add cockpit-target # ipa servicedelegationtarget-add-member cockpit-target \ --principals=host/host.example.com@EXAMPLE.COM \ --principals=host/remote.example.com@EXAMPLE.COM 要启用 Web 控制台会话(HTTP/principal)来访问该主机列表,请使用以下命令: # ipa servicedelegationrule-add …
- 列表:输入以下命令添加特定规则可以访问的目标机器列表: # ipa servicedelegationtarget-add cockpit-target # ipa servicedelegationtarget-add-member cockpit-target \ --principals=host/host.example.com@EXAMPLE.COM \ --principals=host/remote.example.com@EXAMPLE.COM
- 命令/配置摘录:
# ipa servicedelegationtarget-add cockpit-target
# ipa servicedelegationtarget-add-member cockpit-target \ --principals=host/host.example.com@EXAMPLE.COM \ --principals=host/remote.example.com@EXAMPLE.COM- 注意:警告 从 Web 控制台连接到远程 SSH 主机时,委派的 S4U 票据不会被转发到远程 SSH 主机。使用您的票据在远程主机上向 sudo 进行身份验证将无法正常工作。
5.6. 限制用户会话和内存以防止 DoS 攻击
- 要点:要降低 cockpit-ws Web 服务器上的拒绝服务(DoS)攻击的风险,请通过更改其 systemd 配置来限制 Web 控制台服务的用户会话和内存消耗。
- 要点:证书身份验证会隔离 cockpit-ws Web 服务器的实例,以防止用户模拟。但是,它引入了 DoS 攻击的面。一个远程攻击者可以创建多个证书,并将多个 HTTPS 请求发送到 cockpit-ws,各自使用不同的证书。
- 列表:您已安装了 RHEL 10 web 控制台。 具体步骤请参阅安装并启用 Web 控制台。
- 列表:在命令行中打开 system-cockpithttps.slice 配置文件: # systemctl edit system-cockpithttps.slice
- 列表:将 TasksMax 限制为 100,将 CPUQuota 限制为 30% : [Slice] # change existing value TasksMax=100 # add new restriction CPUQuota=30%
- 列表:要应用这些更改,请重启系统: # systemctl daemon-reload # systemctl stop cockpit
- 列表:验证是否应用了新资源限值: # systemctl show system-cockpithttps.slice --property=TasksMax,CPUQuota
- 命令/配置摘录:
# systemctl edit system-cockpithttps.slice
[Slice] # change existing value TasksMax=100 # add new restriction CPUQuota=30%5.7. 其他资源
- 列表:使用 web 控制台将 RHEL 系统添加到 IdM 域中
- 列表:在 IdM Web UI 的用户条目中添加证书
- 列表:在 IdM CLI 中向用户条目中添加证书
第 6 章 使用本地证书配置智能卡验证
- 要点:您可以在没有域连接的独立主机上配置智能卡验证。此设置涉及生成本地证书,将其存储在智能卡中,并配置系统服务,如 SSH 以针对本地授权机构验证凭证。
- 要点:要使用本地证书配置智能卡验证:
- 列表:主机没有连接到某个域。
- 列表:您需要在这个主机上使用智能卡进行验证。
- 列表:您需要使用智能卡验证配置 SSH 访问。
- 列表:您需要使用 authselect 配置智能卡。
- 列表:为希望使用智能卡进行身份验证的用户获取用户证书。证书应该由在域中使用的可信认证认证机构生成。 如果您无法获得证书,您可以生成由本地证书颁发机构签名的用户证书用于测试。
- 列表:在智能卡中保存证书和私钥。
- 注意:重要 如果主机可以作为域的一部分,将主机添加到域中,并使用活动目录或者身份管理认证机构生成的证书。
6.1. 先决条件
- 列表:支持的智能卡或者 USB 设备。
6.2. 创建本地证书
- 要点:测试智能卡验证需要有效的证书链。管理员可以生成本地自签名证书颁发机构(CA),并使用它来签署用户证书请求,为开发环境创建功能凭据集。
- 要点:按照此流程执行以下任务:
- 列表:生成 OpenSSL 证书颁发机构
- 列表:创建证书签名请求
- 列表:创建可生成证书的目录,例如: # mkdir /tmp/ca # cd /tmp/ca
- 列表:设置证书(将此文本复制到 ca 目录中的命令行): # cat > ca.cnf <<EOF [ ca ] default_ca = CA_default [ CA_default ] dir = . database = $dir/index.txt new_certs_dir = $dir/newcerts certificate = $dir/rootCA.crt serial = $dir/serial private_key = $dir/rootCA.key RANDFILE = $dir/rand default_days = 365 default_crl_days = 30 default_md = …
- 列表:创建以下目录: # mkdir certs crl newcerts
- 列表:创建以下文件: # touch index.txt crlnumber index.txt.attr
- 命令/配置摘录:
# mkdir /tmp/ca
# cd /tmp/ca- 注意:警告 以下步骤仅用于测试目的。由本地自签名证书颁发机构生成的证书不如使用 AD、IdM 或 RHCS 认证认证机构的安全。即使主机不是域的一部分,您仍应使用企业认证认证机构生成的证书。
6.3. 将证书复制到 SSSD 目录中
- 要点:SSSD 需要访问可信证书颁发机构来验证用户凭证。管理员必须将生成的 root CA 证书复制到 /etc/sssd/pki 目录,以便系统验证智能卡登录的真实性。
- 要点:GNOME 显示管理器(GDM)需要 SSSD。如果使用 GDM,则需要将 PEM 证书复制到 /etc/sssd/pki 目录。
- 列表:已生成本地 CA 颁发机构和证书
- 列表:确保已在系统中安装了 SSSD。 # rpm -q sssd sssd-2.0.0.43.el8_0.3.x86_64
- 列表:创建 /etc/sssd/pki 目录: # file /etc/sssd/pki /etc/sssd/pki/: directory
- 列表:将 rootCA.crt 作为 PEM 文件复制到 /etc/sssd/pki/ 目录中: # cp /tmp/ca/rootCA.crt /etc/sssd/pki/sssd_auth_ca_db.pem 现在,您已成功生成了证书颁发机构和证书,并将其保存在 /etc/sssd/pki 目录中。 注意 如果要与另一个应用程序共享证书颁发机构证书,您可以在 sssd.conf 中更改位置: SSSD PAM 响应器: [pam] 部分中的 pam_cert_db_path SSSD ssh 响应器:[ssh] 部分中的 ca_db 详情请查看 sssd.conf 的 man page。 红帽建议保留默认路径,并为 SSSD 使用专…
- 命令/配置摘录:
# rpm -q sssd
sssd-2.0.0.43.el8_0.3.x86_64- 注意:注意 如果要与另一个应用程序共享证书颁发机构证书,您可以在 sssd.conf 中更改位置: SSSD PAM 响应器: [pam] 部分中的 pam_cert_db_path SSSD ssh 响应器:[ssh] 部分中的 ca_db 详情请查看 sssd.conf 的 man page。 红帽建议保留默认路径,并为 SSSD 使用专用证书颁发机构证书文件来确保此处仅列出可信的证书颁发机构。
6.4. 使用智能卡验证配置 SSH 访问
- 要点:SSH 通过直接从令牌检索公钥来支持智能卡验证。您可以使用 opensc 库提取密钥,并将其添加到用户的 authorized_keys 文件中,以启用基于 PIN 的登录。
- 要点:SSH 连接需要身份验证。您可以使用密码或证书。按照以下流程,使用保存在智能卡上的证书启用验证。
- 列表:该智能卡包含您的证书和私钥。
- 列表:该卡插入读卡器并连接到计算机。
- 列表:pcscd 服务正在您的本地计算机上运行。 详情请查看安装用于管理和使用智能卡的工具。
- 列表:在使用智能卡验证的用户主目录中为 SSH 密钥创建新目录: # mkdir /home/<example_user>/.ssh
- 列表:使用 opensc 库运行 ssh-keygen -D 命令以使用智能卡中的私钥检索现有公钥对,并将其添加到用户的 SSH 密钥目录的 authorized_keys 列表中,以便通过智能卡验证启用 SSH 访问。 # ssh-keygen -D /usr/lib64/pkcs11/opensc-pkcs11.so >> ~<example_user>/.ssh/authorized_keys
- 列表:SSH 需要访问 /.ssh 目录和 authorized_keys 文件的适当配置。要设置或更改访问权限,请输入: # chown -R <example_user:example_user> ~<example_user>/.ssh/ # chmod 700 ~<example_user>/.ssh/ # chmod 600 ~<example_user>/.ssh/authorized_keys
- 命令/配置摘录:
# mkdir /home/<example_user>/.ssh
# ssh-keygen -D /usr/lib64/pkcs11/opensc-pkcs11.so >> ~<example_user>/.ssh/authorized_keys6.5. 使用智能卡时创建证书映射规则
- 要点:证书映射规则将特定证书属性(如 Subject 或 Issuer)链接到本地系统帐户。您可以在 SSSD 配置文件中定义这些规则,以根据其物理令牌中存储的凭证授权用户。
- 要点:您需要创建证书映射规则,以便使用存储在智能卡上的证书进行登录。
- 列表:该智能卡包含您的证书和私钥。
- 列表:该卡插入读卡器并连接到计算机。
- 列表:pcscd 服务正在您的本地计算机上运行。
- 列表:创建一个证书映射配置文件,如 /etc/sssd/conf.d/sssd_certmap.conf。
- 列表:将证书映射规则添加到 sssd_certmap.conf 文件中: [certmap/shadowutils/otheruser] matchrule = <SUBJECT>.CN=certificate_user.<ISSUER>^CN=Example Test CA,OU=Example Test,O=EXAMPLE$ 请注意,您必须在单独的部分中定义每个证书映射规则。定义每个部分,如下所示: [certmap/<DOMAIN_NAME>/<RULE_NAME>] 如果 SSSD 被配置为使用代理提供者来允许对本地用户而不是 AD、IPA 或 LDAP 进行智能卡验证,则 <RULE_NAME> 可以简单地是具有与 match…
- 列表:您可以使用以下命令验证 SSH 访问: # ssh -I /usr/lib64/opensc-pkcs11.so -l otheruser localhost hostname 如果配置成功,会提示您输入智能卡 PIN。
- 命令/配置摘录:
[certmap/shadowutils/otheruser] matchrule = <SUBJECT>.CN=certificate_user.<ISSUER>^CN=Example Test CA,OU=Example Test,O=EXAMPLE$
[certmap/<DOMAIN_NAME>/<RULE_NAME>]6.6. 其他资源
- 列表:为智能卡验证配置身份管理
- 列表:authselect 的作用
- 列表:RHEL 中的智能卡支持
第 7 章 使用 authselect 配置智能卡验证
- 要点:使用 authselect 工具配置智能卡验证,以增加工作站安全性并简化用户登录过程。这个工具管理系统范围的验证配置文件,允许选项范围从混合密码访问到严格的仅卡强制和自动屏幕锁定。
- 要点:您可以配置智能卡来实现以下目标之一:
- 列表:启用密码和智能卡验证
- 列表:禁用密码并启用智能卡验证
- 列表:在删除时启用锁定
7.1. 适用于智能卡的证书
- 要点:智能卡配置依赖于有效的加密凭证。在使用 authselect 配置智能卡前,您必须将证书导入您的卡中。您可以使用以下供应商发布的证书置备卡:
- 要点:其他资源
- 列表:Active Directory(AD)
- 列表:身份管理(IdM)
- 列表:红帽认证系统(RHCS)
- 列表:第三方认证机构 (CA)
- 列表:本地认证认证机构。如果用户不是某个域的一部分或用于测试,您可以使用本地认证认证机构生成的证书。
- 列表:使用企业安全客户端管理智能卡
7.2. 使用 authselect 配置智能卡验证
- 要点:使用 authselect 工具在系统中配置智能卡验证。您可以启用混合密码和智能卡访问来提供备份登录方法、强制严格的卡验证,或者在删除卡时配置自动屏幕锁定。
- 要点:authselect 命令包括智能卡配置的以下选项:
- 列表:with-smartcard -- 除了密码验证外,启用智能卡验证
- 列表:with-smartcard-required HEKETI-wagonenables 智能卡验证并禁用密码验证
- 列表:在删除智能卡时,with-smartcard-lock-on-removal 5-4enforces 自动屏幕锁定
- 列表:该智能卡包含您的证书和私钥。
- 列表:在读卡器中插入卡并连接到计算机。
- 列表:根据您的安全要求选择以下配置选项之一来启用智能卡验证: 启用智能卡和密码验证: # authselect select sssd with-smartcard --force 此配置允许用户使用智能卡或密码进行身份验证,这样可确保在智能卡不可用时访问连续性。 仅强制智能卡验证: # authselect select sssd with-smartcard with-smartcard-required --force 重要 运行此命令后,用户无法使用其密码进行身份验证。在应用此更改前,请确保智能卡验证可以正常工作,或者可能会将用户锁定在其系统中。 在删除时强制使用自动锁定的智能卡验证: # authselect select s…
- 命令/配置摘录:
# authselect select sssd with-smartcard --force
# authselect select sssd with-smartcard with-smartcard-required --force- 注意:重要 运行此命令后,用户无法使用其密码进行身份验证。在应用此更改前,请确保智能卡验证可以正常工作,或者可能会将用户锁定在其系统中。
- 注意:注意 启用 pam_cert_auth = True 涉及从智能卡访问和读取,这可能需要几秒钟。
7.3. RHEL 中的智能卡验证选项
- 要点:authselect 命令配置系统范围的身份验证行为。您可以强制使用专用智能卡,启用混合密码选项,或者在删除卡时触发自动会话锁定,以满足特定的安全策略。
- 要点:您可以使用 authselect 命令配置如何在特定的身份管理(IdM)客户端中进行智能卡验证, authselect enable-feature < smartcard_option& gt;。可用的智能卡选项如下:
- 列表:with-smartcard: 用户可以使用用户名和密码进行身份验证,或者使用他们的智能卡进行身份验证
- 列表:with-smartcard-required: 用户可以使用智能卡进行验证,并禁用密码验证。您不能在没有智能卡的情况下访问该系统。使用智能卡进行身份验证后,一直保持登录状态,即使您的智能卡已从读取器中移除。 注意 with-smartcard-required 选项代表只对登陆服务(如 login, gdm, xdm, xscreensaver, 和 gnome-screensaver)强制只能使用智能卡进行验证。对于其它服务,如使用 su 或 sudo 来切换用户,则不会强制使用智能卡进行验证,如果没有插入您的智能卡,则会提示您输入密码。
- 列表:with-smartcard-lock-on-removal: 用户可以使用其智能卡进行验证。但是,如果您从读取器中移除智能卡,则系统会被锁定。您不能使用密码进行验证。 注意 with-smartcard-lock-on-removal 选项仅适用于具有 GNOME 桌面环境的系统。如果您使用基于 tty 或控制台的系统,并且您从读卡器中删除了智能卡,则不会将您自动锁在系统之外。
- 列表:使用 authselect 配置智能卡
- 注意:注意 with-smartcard-required 选项代表只对登陆服务(如 login, gdm, xdm, xscreensaver, 和 gnome-screensaver)强制只能使用智能卡进行验证。对于其它服务,如使用 su 或 sudo 来切换用户,则不会强制使用智能卡进行验证,如果没有插入您的智能卡,则会提示您输入密码。
- 注意:注意 with-smartcard-lock-on-removal 选项仅适用于具有 GNOME 桌面环境的系统。如果您使用基于 tty 或控制台的系统,并且您从读卡器中删除了智能卡,则不会将您自动锁在系统之外。
7.4. 其他资源
- 列表:使用 authselect 配置用户身份验证
- 列表:RHEL 中的智能卡支持
第 8 章 使用 SSSD 在 GDM 中启用身份验证机制选择
- 要点:通过为管理用户启用免密码 GDM 身份验证来增强组织安全性。将传统的基于密码的身份验证替换为外部身份提供程序(EIdP)、传递密钥设备或智能卡,并在 GNOME 显示管理器登录屏幕上切换这些方法。
- 注意:重要 免密码 GDM 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
8.1. GDM 里集中管理的用户的免密码身份验证
- 要点:免密码 GDM 身份验证是技术预览功能,它提供了多种通过 GNOME 显示管理器(GDM)登录的方法,而无需使用传统密码。
- 要点:根据系统配置,您可以使用以下验证方法:
8.1.1. 当前限制
- 要点:使用这些身份验证方法时,用户可能会遇到以下情况:
- 要点:其他资源
- 列表:支持的智能卡
8.2. 使用 SSSD 在 GDM 中启用身份验证机制选择
- 要点:使用系统安全服务守护进程(SSSD)和 authselect 在 GNOME 显示管理器(GDM)中启用凭证切换。然后,集中管理的用户可以在无密码登录选项(如智能卡、passkeys 或外部身份提供程序(EIdP))之间进行选择。
- 要点:在 GDM 中启用这些选项前,您必须首先配置单独的身份验证方法和身份管理(IdM)服务器。在这些凭证和服务器端设置正常工作后,您可以配置系统服务以在登录屏幕中显示这些选项。
- 列表:系统是身份管理(IdM)域的成员。
- 列表:您已满足您要使用的特定免密码身份验证方法的先决条件,如配置 IdM 服务器和注册用户凭证。
- 列表:在系统中具有 root 权限。
- 列表:已安装 SSSD。
- 列表:(可选):查看有关 authselect 配置集的信息: $ authselect current
- 列表:根据您的当前的 authselect 配置集,执行以下操作之一: 选择 sssd 配置集并启用可切换的身份验证功能: # authselect select sssd with-switchable-auth 如果您已使用 sssd 配置集,启用可切换验证功能: # authselect enable-feature with-switchable-auth 注意 这个命令配置 /etc/pam.d/switchable-auth PAM 服务文件,以启用 GDM 登录屏幕来显示您之前为用户帐户配置的无密码机制。
- 命令/配置摘录:
$ authselect current
# authselect select sssd with-switchable-auth- 注意:注意 这个命令配置 /etc/pam.d/switchable-auth PAM 服务文件,以启用 GDM 登录屏幕来显示您之前为用户帐户配置的无密码机制。
第 9 章 使用智能卡进行远程向 sudo 进行身份验证
- 要点:您可以使用 SSH 代理转发来使用本地智能卡验证远程 sudo 命令。此配置通过利用存储在物理连接的令牌中的凭证,从而消除了远程主机上的密码提示。
- 要点:您可以使用智能卡远程对 sudo 进行身份验证。ssh-agent 服务在本地运行并且可以将 ssh-agent 套接字转发到远程计算机后,您可以使用 sudo PAM 模块中的 SSH 身份验证协议远程验证用户。
9.1. 在 IdM 中创建 sudo 规则
- 要点:管理员定义特定的 IdM 策略来授权远程主机上的 sudo 访问权限。创建特定的规则,将受限命令(如 /usr/bin/less )绑定到目标用户和主机,以进行精细的特权控制。
- 要点:在 IdM 中创建 sudo 规则,为 <idm_user > 权限授予在远程主机上运行 sudo 的权限。在本例中,less 和 whoami 命令被添加为 sudo 命令,来测试该流程。
- 列表:IdM 用户已创建。在本例中,用户名为 <idm_user>。
- 列表:您有远程运行 sudo 的系统的主机名。在本示例中,主机是 server.ipa.test。
- 列表:创建名为 <sudorule_name> 的 sudo 规则,以允许用户运行命令。将 <sudorule_name> 替换为您要创建的 sudo 规则的实际名称。 # ipa sudorule-add <sudorule_name>
- 列表:添加 less 和 whoami 作为 sudo 命令: # ipa sudocmd-add /usr/bin/less # ipa sudocmd-add /usr/bin/whoami
- 列表:将 less 和 whoami 命令添加到 <sudorule_name> 中: # ipa sudorule-add-allow-command <sudorule_name> --sudocmds /usr/bin/less # ipa sudorule-add-allow-command <sudorule_name> --sudocmds /usr/bin/whoami
- 列表:将 <idm_user> 用户添加到 <sudorule_name> 中: # ipa sudorule-add-user <sudorule_name> --users <idm_user>
- 命令/配置摘录:
# ipa sudorule-add <sudorule_name>
# ipa sudocmd-add /usr/bin/less9.2. 使用智能卡远程连接到 sudo
- 要点:启动连接需要将智能卡加载到本地 SSH 代理并启用代理转发。此配置可让远程系统在权限升级尝试期间根据本地智能卡验证用户身份。
- 要点:先决条件
- 列表:您已在 IdM 中创建了 sudo 规则。
- 列表:您已将 IdM 配置为支持使用 FIDO2 Yubikeys 或使用智能卡的 PKINIT 身份验证的 passkey 身份验证。
- 列表:您已在要运行 sudo 的远程系统上为 sudo 身份验证配置了 pam_sss_gss 模块。
- 列表:启动 SSH 代理(如果尚未运行)。 # eval
ssh-agent - 列表:将您的智能卡添加到 SSH 代理。提示时输入您的 PIN: # ssh-add -s /usr/lib64/opensc-pkcs11.so
- 列表:使用启用了 ssh-agent 转发的 SSH 连接到需要远程运行 sudo 的系统。使用 -A 选项: # ssh -A ipauser1@server.ipa.test
- 命令/配置摘录:
# eval `ssh-agent`
# ssh-add -s /usr/lib64/opensc-pkcs11.so- 注意:注意 如果 SSH 代理被配置为使用其他源,如 GNOME Keyring,且您在删除智能卡后运行 sudo 命令,可能不会提示您输入 PIN 或密码,因为其他源可能提供了对有效私钥的访问。要检查 SSH 代理已知的所有身份的公钥,请运行 ssh-add -L 命令。
第 10 章 使用带有智能卡的 PKINIT,以活动目录用户身份进行身份验证
- 要点:活动目录(AD)用户可以使用智能卡向加入到 IdM 的桌面客户端系统进行身份验证,并从客户端获取用于单点登录(SSO)身份验证的 Kerberos 票据授予票据(TGT)。这个过程适用于需要智能卡验证的 AD 用户帐户,这防止它们使用基于密码的登录。
- 要点:先决条件
- 列表:IdM 服务器被配置为智能卡验证。如需更多信息,请参阅 为智能卡验证配置 IdM 服务器 或 使用 Ansible 为智能卡验证配置 IdM 服务器。
- 列表:已为智能卡验证配置了客户端。如需更多信息,请参阅 为智能卡验证配置 IdM 客户端 或 使用 Ansible 为智能卡验证配置 IdM 客户端。
- 列表:krb5-pkinit 软件包已安装。
- 列表:AD 服务器被配置为信任签发智能卡证书的证书颁发机构(CA)。将 CA 证书导入到 NTAuth 存储(请参阅 Microsoft 支持),并将 CA 添加为可信 CA。详情请查看活动目录文档。
- 列表:将 Kerberos 客户端配置为信任签发智能卡证书的 CA: 在 IdM 客户端上,打开 /etc/krb5.conf 文件。 在文件中添加以下行: [realms] AD.DOMAIN.COM = { pkinit_eku_checking = kpServerAuth pkinit_kdc_hostname = adserver.ad.domain.com }
- 列表:在 IdM 客户端上,打开 /etc/krb5.conf 文件。
- 命令/配置摘录:
[realms] AD.DOMAIN.COM = { pkinit_eku_checking = kpServerAuth pkinit_kdc_hostname = adserver.ad.domain.com }
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Kdc] "UseCachedCRLOnlyAndIgnoreRevocationUnknownErrors"=dword:00000001 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA\Kerberos\Parameters] "UseCachedCRLOnlyAndIgnoreRevocationUnknownErrors"=dword:00000001- 注意:重要 您不能使用这些指令来访问 IdM 资源,应为其 Kerberos 服务有 pkinit 身份验证指示器要求。这是因为进程从 Active Directory Kerberos 分发中心(AD KDC),而不是从 IdM KDC 获取 TGT 。因此,TGT 不包含必要的身份验证指示器,IdM 服务将拒绝您的访问。 要为 IdM 用户启用 PKINIT 身份验证来访问 IdM 服务,请参阅 管理 Kerberos 票据策略。
第 11 章 使用智能卡对身份验证进行故障排除
- 要点:您可以通过系统验证硬件识别、服务状态和证书的有效性来诊断智能卡失败,以解决常见的配置问题来恢复安全访问。
11.1. 测试系统中的智能卡访问
- 要点:验证硬件连接是故障排除的第一步。使用 lsusb 和 pkcs11-tool 等系统工具确认读者处于活动状态,且操作系统可以读取智能卡的内容。
- 要点:先决条件
- 列表:已安装并配置了用于智能卡的 IdM 服务器和客户端。
- 列表:您已从 nss-tools 软件包安装了 certutil 工具。
- 列表:您有智能卡的 PIN 或密码。
- 列表:使用 lsusb 命令,验证智能卡读取器是否在操作系统中看到: $ lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 003: ID 072f:b100 Advanced Card Systems, Ltd ACR39U Bus 001 Device 002: ID 0627:0001 Adomax Technology Co., Ltd Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 有关 RHEL 中已测试的和支持的智能卡和读卡器的更…
- 列表:确保 pcscd 服务和套接字已启用并正在运行: $ systemctl status pcscd.service pcscd.socket ● pcscd.service - PC/SC Smart Card Daemon Loaded: loaded (/usr/lib/systemd/system/pcscd.service; indirect; vendor preset: disabled) Active: active (running) since Fri 2021-09-24 11:05:04 CEST; 2 weeks 6 days ago TriggeredBy: ● pcscd.socket Docs:…
- 列表:使用 p11-kit list-modules 命令,显示有关配置的智能卡和智能卡中的令牌的信息: $ p11-kit list-modules p11-kit-trust: p11-kit-trust.so [...] opensc: opensc-pkcs11.so library-description: OpenSC smartcard framework library-manufacturer: OpenSC Project library-version: 0.20 token: MyEID (sctest) manufacturer: Aventra Ltd. model: PKCS#15 seria…
- 命令/配置摘录:
$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 003: ID 072f:b100 Advanced Card Systems, Ltd ACR39U Bus 001 Device 002: ID 0627:0001 Adomax Technology Co., Ltd Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub- 注意:注意 确保证书的名称是与上一步中显示的输出完全匹配,在本例中为 MyEID(sctest):Certificate。
11.2. 使用 SSSD 对智能卡验证进行故障排除
- 要点:SSSD 管理智能卡和身份提供程序之间的身份验证流。管理员分析 SSSD 日志,并使用 sssctl 在登录尝试失败时诊断 pam 或 krb5 子进程中的故障。
- 要点:先决条件
- 列表:已安装并配置了用于智能卡的 IdM 服务器和客户端。
- 列表:已安装 sssd-tools 软件包。
- 列表:您可以检测智能卡读取器并显示智能卡的内容。请参阅在系统上测试智能卡访问。
- 列表:使用 su 验证您可以使用智能卡进行验证: $ su - idmuser1 -c ‘su - idmuser1 -c whoami' PIN for MyEID (sctest): idmuser1 如果没有提示输入智能卡 PIN,且返回一个密码提示或者返回授权错误,请检查 SSSD 日志。有关登录 SSSD 的信息,请参阅 对 IdM 中使用 SSSD 的身份验证进行故障排除 。以下是身份验证失败的示例: $ su - idmuser1 -c ‘su - idmuser1 -c whoami' PIN for MyEID (sctest): su: Authentication failure 如果 SSSD 日志指明了 krb…
- 列表:验证您的 GDM 智能卡验证配置是否正确。应返回 PAM 验证的成功消息,如下所示: # sssctl user-checks -s gdm-smartcard "idmuser1" -a auth user: idmuser1 action: auth service: gdm-smartcard SSSD nss user lookup result: - user name: idmuser1 - user id: 603200210 - group id: 603200210 - gecos: idm user1 - home directory: /home/idmuser1 - shell: /bin/sh…
- 命令/配置摘录:
$ su - idmuser1 -c ‘su - idmuser1 -c whoami'
PIN for MyEID (sctest): idmuser111.3. 验证 IdM Kerberos KDC 可以使用 PKINIT 和 CA 证书正确位置
- 要点:成功 PKINIT 身份验证依赖于有效的证书链。您可以使用 kinit 和 openssl 来验证客户端是否信任证书颁发机构,以及智能卡证书对 Kerberos 票据检索有效。
- 要点:先决条件
- 列表:已安装并配置了用于智能卡的 IdM 服务器和客户端。
- 列表:您可以检测智能卡读取器并显示智能卡的内容。请参阅在系统上测试智能卡访问。
- 列表:运行 kinit 工具,以 idmuser1 使用保存在智能卡中的证书进行验证: $ kinit -X X509_user_identity=PKCS11: idmuser1 MyEID (sctest) PIN:
- 列表:输入您的智能卡 PIN。如果没有提示输入 PIN,请检查您是否可检测智能卡读取器并显示智能卡的内容。
- 列表:如果您的 PIN 被接受,系统会提示您输入密码,可能会缺少您的 CA 签名证书。 使用 openssl 命令,验证默认证书捆绑包文件中列出的 CA 链: $ openssl crl2pkcs7 -nocrl -certfile /var/lib/ipa-client/pki/ca-bundle.pem | openssl pkcs7 -print_certs -noout subject=O = IDM.EXAMPLE.COM, CN = Certificate Authority issuer=O = IDM.EXAMPLE.COM, CN = Certificate Authority 验证您的证书的有效性: 查找 idmus…
- 列表:使用 openssl 命令,验证默认证书捆绑包文件中列出的 CA 链: $ openssl crl2pkcs7 -nocrl -certfile /var/lib/ipa-client/pki/ca-bundle.pem | openssl pkcs7 -print_certs -noout subject=O = IDM.EXAMPLE.COM, CN = Certificate Authority issuer=O = IDM.EXAMPLE.COM, CN = Certificate Authority
- 命令/配置摘录:
$ kinit -X X509_user_identity=PKCS11: idmuser1
MyEID (sctest) PIN:11.4. 增加 SSSD 超时
- 要点:硬件延迟或复杂证书链可能会导致 SSSD 操作超时。管理员在 sssd.conf 中扩展 krb5_auth_timeout 和 p11_child_timeout 设置,以启用足够时间进行智能卡处理。
- 要点:如果日志文件中有一个超时条目,请尝试增加 SSSD 超时,如此过程中所述。
- 列表:您已为智能卡验证配置了 IdM 服务器和客户端。
- 列表:在 IdM 客户端中打开 sssd.conf 文件: # vim /etc/sssd/sssd.conf
- 列表:在您的 domain 部分中,如 [domain/idm.example.com],添加以下选项: krb5_auth_timeout = 60
- 列表:在 [pam] 部分中,添加以下内容: p11_child_timeout = 60
- 列表:清除 SSSD 缓存: # sssctl cache-remove SSSD must not be running. Stop SSSD now? (yes/no) [yes] yes Creating backup of local data… Removing cache files… SSSD needs to be running. Start SSSD now? (yes/no) [yes] yes 增加超时后,请尝试使用智能卡再次进行身份验证。如需了解更多详细信息,请参阅测试智能卡验证。
- 命令/配置摘录:
krb5_child: Timeout for child [9607] reached.....consider increasing value of krb5_auth_timeout.
# vim /etc/sssd/sssd.conf完整目录
- 配置和使用智能卡验证
- 对红帽文档提供反馈
- 第 1 章 了解智能卡验证
- 1.1. 什么是智能卡
- 1.2. 什么是智能卡验证
- 1.2.1. IdM 中智能卡验证示例
- 1.3. 支持的智能卡
- 1.3.1. 支持的智能卡读卡器
- 1.4. 支持的硬件安全模块
- 1.5. RHEL 中的智能卡验证选项
- 1.6. 管理智能卡及其内容的工具
- 1.7. 证书和智能卡验证
- 1.8. IdM 中智能卡验证所需的步骤
- 1.9. 使用 Active Directory 发布的证书的智能卡验证所需的步骤
- 第 2 章 为智能卡验证配置身份管理
- 2.1. 为智能卡验证配置 IdM 服务器
- 2.2. 使用 Ansible 为智能卡验证配置 IdM 服务器
- 2.3. 为智能卡验证配置 IdM 客户端
- 2.4. 使用 Ansible 为智能卡验证配置 IdM 客户端
- 2.5. 在 IdM Web UI 的用户条目中添加证书
- 2.6. 在 IdM CLI 中向用户条目中添加证书
- 2.7. 安装用来管理和使用智能卡的工具
- 2.8. 准备智能卡并将证书和密钥上传到智能卡
- 2.9. 使用智能卡登录到 IdM
- 2.10. 在 IdM 客户端中使用智能卡验证登录到 GDM
- 2.11. 在 su 命令中使用智能卡验证
- 第 3 章 为 IdM 中智能卡验证配置 ADCS 发布的证书
- 3.1. 先决条件
- 3.2. 信任配置和证书使用量所需的 Windows 服务器设置
- 3.3. 使用 sftp 从 Active Directory 复制证书
- 3.4. 使用 ADCS 证书为智能卡身份验证配置 IdM 服务器和客户端
- 3.5. 转换 PFX 文件
- 3.6. 安装用来管理和使用带有 ADCS 证书的智能卡的工具
- 3.7. 准备智能卡并将 ADCS 证书和密钥上传到智能卡
- 3.8. 在 sssd.conf 中配置超时
- 3.9. 为智能卡身份验证创建证书映射规则
- 第 4 章 配置身份验证的证书映射规则
- 第 5 章 使用 Web 控制台为集中管理的用户配置智能卡验证
- 5.1. 先决条件
- 5.2. 用于集中管理用户的智能卡验证
- 5.3. 为 Web 控制台启用智能卡验证
- 5.4. 使用智能卡登录到 web 控制台
- 5.5. 为智能卡用户启用免密码 sudo 身份验证
- 5.6. 限制用户会话和内存以防止 DoS 攻击
- 5.7. 其他资源
- 第 6 章 使用本地证书配置智能卡验证
- 6.1. 先决条件
- 6.2. 创建本地证书
- 6.3. 将证书复制到 SSSD 目录中
- 6.4. 使用智能卡验证配置 SSH 访问
- 6.5. 使用智能卡时创建证书映射规则
- 6.6. 其他资源
- 第 7 章 使用 authselect 配置智能卡验证
- 7.1. 适用于智能卡的证书
- 7.2. 使用 authselect 配置智能卡验证
- 7.3. RHEL 中的智能卡验证选项
- 7.4. 其他资源
- 第 8 章 使用 SSSD 在 GDM 中启用身份验证机制选择
- 8.1. GDM 里集中管理的用户的免密码身份验证
- 8.1.1. 当前限制
- 8.2. 使用 SSSD 在 GDM 中启用身份验证机制选择
- 8.1. GDM 里集中管理的用户的免密码身份验证
- 第 9 章 使用智能卡进行远程向 sudo 进行身份验证
- 9.1. 在 IdM 中创建 sudo 规则
- 9.2. 使用智能卡远程连接到 sudo
- 第 10 章 使用带有智能卡的 PKINIT,以活动目录用户身份进行身份验证
- 第 11 章 使用智能卡对身份验证进行故障排除
- 11.1. 测试系统中的智能卡访问
- 11.2. 使用 SSSD 对智能卡验证进行故障排除
- 11.3. 验证 IdM Kerberos KDC 可以使用 PKINIT 和 CA 证书正确位置
- 11.4. 增加 SSSD 超时
