4.13. 身份管理

SSSD 支持将主目录转换为小写

有了这个增强,您现在可以配置 SSSD ,来将用户主目录转换为小写。这有助于与 RHEL 环境的区分大小写的性质更好地集成。/etc/sssd/sssd.conf 文件的 [nss] 部分中的 override_homedir 选项现在可识别 %h 模板值。如果您使用 %h 作为 override_homedir 定义的一部分,SSSD 会用小写的用户主目录替换 %h

Jira:RHELPLAN-139430

SSSD 现在支持使用 shadow 密码策略更改 LDAP 用户密码

有了这个增强,如果您在 /etc/sssd/sssd.conf 文件中将 ldap_pwd_policy 设为 shadow,则 LDAP 用户现在可以更改存储在 LDAP 中的密码。在以前的版本中,如果 ldap_pwd_policy 设为 shadow,则密码更改将被拒绝,因为不清楚是否正在更新相应的 shadow LDAP 属性。

另外,如果 LDAP 服务器无法自动更新 shadow 属性,请在 /etc/sssd/sssd.conf 文件中将 ldap_chpass_update_last_change 选项设为 True,以表明 SSSD 要更新属性。

Bugzilla:1507035

IdM 现在支持 min_lifetime 参数

有了此增强,min_lifetime 参数已添加到 /etc/gssproxy114.conf 文件中。如果剩余生命周期低于这个值,则 min_lifetime 参数会触发续订服务票据。

默认情况下,其值为 15 秒。对于 NFS 等网络卷客户端,若要降低 KDC 暂时不可用时丢失访问权限的风险,请将此值设为 60 秒。

Bugzilla:2184333

ipapwpolicy ansible-freeipa 模块现在支持新的密码策略选项

有了这个更新,ansible-freeipa 软件包中包含的 ipapwpolicy 模块支持额外的 libpwquality 库选项:

maxrepeat
指定序列中相同字符的最大数量。
maxsequence
指定单例字符序列的最大长度 (abcd)。
dictcheck
检查密码是否为字典单词。
usercheck
检查密码是否包含用户名。

如果设置了任何新密码策略选项,则密码的最小长度为 6 个字符。新密码策略设置仅应用到新密码。

在使用 RHEL 7 和 RHEL 8 服务器的混合环境中,新的密码策略设置仅在在 RHEL 8.4 及更新版本上运行的服务器中强制实施。如果用户登录到 IdM 客户端,并且 IdM 客户端与运行在 RHEL 8.3 或更早版本上的 IdM 服务器进行通信,则系统管理员设置的新密码策略要求不适用。为确保一致的行为,请将所有服务器升级到 RHEL 8.4 及更新的版本。

Jira:RHELPLAN-137416

IdM 现在支持 ipanetgroup Ansible 管理模块

作为身份管理(IdM)系统管理员,您可以将 IdM 与 NIS 域和 netgroup 集成。使用 ipanetgroup ansible-freeipa 模块,您可以实现以下内容:

  • 您可以确保现有的 IdM netgroup 包含特定的 IdM 用户、组、主机和主机组以及嵌套的 IdM netgroup。
  • 您可以确保现有 IdM netgroup 中没有特定的 IdM 用户、组、主机和主机组以及嵌套的 IdM netgroup。
  • 您可以确保 IdM 中存在或不存在特定的 netgroup。

Jira:RHELPLAN-137411

新的 ipaclient_configure_dns_resolveripaclient_dns_servers Ansible ipaclient 角色变量指定客户端的 DNS 解析器  

在以前的版本中,当使用 ansible-freeipa ipaclient 角色安装身份管理(IdM)客户端时,无法在安装过程中指定 DNS 解析器。您必须在安装前配置 DNS 解析器。   

有了这个增强,在使用 ipaclient 角色使用 ipaclient_configure_dns_resolveripaclient_dns_servers 变量安装 IdM 客户端时,您可以指定 DNS 解析器。因此,ipaclient 角色会修改 resolv.conf 文件和 NetworkManagersystemd-resolved 工具,以便以类似于 ansible-freeipa ipaserver 角色在 IdM 服务器上配置 DNS 解析器的方式,在客户端上配置 DNS 解析器。因此,在使用 ipaclient 角色安装 IdM 客户端时配置 DNS 现在更为高效。

注意

使用 ipa-client-install 命令行安装程序安装 IdM 客户端仍然需要在安装前配置 DNS 解析器。

Jira:RHELPLAN-137406

使用 ipaclient 角色安装带有 OTP 的 IdM 客户端不需要之前修改 Ansible 控制器

在以前的版本中,Ansible 控制器上的 kinit 命令是获取身份管理(IdM)客户端部署的一次性密码(OTP)的先决条件。在 Red Hat Ansible Automation Platform (AAP)上获取 OTP 是一个问题,因为默认情况下没有安装 krb5-workstation 软件包。

有了这个更新,对管理员的 TGT 的请求被委派给第一个指定或发现的 IdM 服务器。现在,您可以使用 OTP 授权安装 IdM 客户端,而无需额外修改 Ansible 控制器。这简化了使用带有 AAP 的 ipaclient 角色。

Jira:RHELPLAN-137403

IdM 现在在 Kerberos 票据中强制存在 MS-PAC 结构

从 RHEL 9.2 开始,为了提高安全性,身份管理(IdM)和 MIT Kerberos 现在强制在 RHEL IdM Kerberos 分发中心(KDC)发布的 Kerberos 票据存在特权属性证书(MS-PAC)结构。

在 2022 年 11 月,为了响应 CVE-2022-37967,Microsoft 引入了一个扩展签名,它是通过整个 MS-PAC 结构而不是服务器校验和来计算的。从 RHEL 9.2 开始,IdM KDC 发布的 Kerberos 票据现在也包含扩展的签名。

注意

IdM 中还没有强制扩展签名的存在。

Jira:RHELPLAN-159146

KDC 的新领域配置模板启用 FIPS 140-3 兼容密钥加密

此更新在 /var/kerberos/krb5kdc/kdc.conf 文件中提供了一个新的 EXAMPLE.COM 示例领域配置。它会带来两个变化:

  • FIPS 140-3 兼容 AES HMAC SHA-2 系列被添加到密钥加密的支持类型的列表中。
  • KDC 主密钥的加密类型从 AES 256 HMAC SHA-1 切换到 AES 256 HMAC SHA-384
警告

这个更新是独立的 MIT 领域。不要更改 RHEL 身份管理中的 Kerberos 分发中心(KDC)配置。

建议为新领域使用此配置模板。模板不会影响任何已部署的领域。如果您计划根据模板升级领域的配置,请考虑以下几点:

对于升级主密钥,更改 KDC 配置中的设置不够充分。按照 MIT Kerberos 文档中描述的流程操作: https://web.mit.edu/kerberos/krb5-1.20/doc/admin/database.html#updating-the-master-key

AES HMAC SHA-2 系列添加到密钥加密的支持类型中在任何时候都安全,因为它不会影响 KDC 中的现有条目。只有在创建新主体或续订凭证时,才会生成密钥。请注意,无法根据现有密钥生成此新类型的密钥。要使这些新加密类型对某个主体可用,必须续订其凭证,这意味着也续订服务主体的 keytab。

主体不具有 AES HMAC SHA-2 密钥的唯一情况是活动目录(AD)跨域票据授予票据(TGT)。由于 AD 不实现 RFC8009,所以不使用 AES HMAC SHA-2 加密类型系列。因此,使用 AES HMAC SHA-2 加密的 跨域 TGT 的跨域 TGS-REQ 将失败。防止 MIT Kerberos 客户端使用针对 AD 的 AES HMAC SHA-2 的最佳方法是不为 AD 跨域主体提供 AES HMAC SHA-2 密钥。要做到这一点,请确保使用 AD 支持的密钥加密类型的明确列表创建跨域 TGT 条目:

  kadmin.local <<EOF
  add_principal +requires_preauth -e aes256-cts-hmac-sha1-96,aes128-cts-hmac-sha1-96 -pw [password] krbtgt/[MIT realm]@[AD realm]
  add_principal +requires_preauth -e aes256-cts-hmac-sha1-96,aes128-cts-hmac-sha1-96 -pw [password] krbtgt/[AD realm]@[MIT realm]
  EOF

要确保 MIT Kerboros 客户端使用 AES HMAC SHA-2 加密类型,您还必须在客户端和 KDC 配置中将这些加密类型设为 permitted。在 RHEL 上,此设置由加密策略系统管理。例如,在使用 DEFAULT 加密策略的 RHEL 9 主机上允许 AES HMAC SHA-2AES HMAC SHA-1 加密票据,而使用 FIPS 加密策略的主机只接受 AES HMAC SHA-2 票据。

Bugzilla:2068535

使用配置文件配置 pam_pwhistory

有了这个更新,您可以在 /etc/security/pwhistory.conf 配置文件中配置 pam_pwhistory 模块。pam_pwhistory 模块保存了每个用户的最后一个密码,以管理密码更改历史记录。authselect 中还添加了支持,允许您向 PAM 堆栈中添加 pam_pwhistory 模块。

Bugzilla:2126640,Bugzilla:2142805

IdM 现在支持新的活动目录证书映射模板

活动(AD)域管理员可以使用 altSecurityIdentities 属性手动将证书映射到 AD 中的用户。此属性有六个值,但三个映射现在被视为不安全。作为 2022 年 5 月 10 日安全更新 的一部分,当这个更新安装在域控制器上后,所有设备都处于兼容性模式。如果证书被弱映射到用户,则身份验证会如预期发生,但会记录一条警告信息,标识与完整执行模式不兼容的证书。从 2023 年 11 月 14 日起,所有设备都将更新为全强制模式,如果证书不符合强映射标准,则身份验证将被拒绝。

IdM 现在支持新的映射模板,使 AD 管理员更容易地使用新规则,而不维护这两个模板。IdM 现在支持以下新映射模板:

  • 序列号:LDAPU1:(altSecurityIdentities=X509:<I>{issuer_dn!ad_x500}<SR>{serial_number!hex_ur})
  • 主题键 Id: LDAPU1: (altSecurityIdentities=X509:<SKI>{subject_key_id!hex_u})
  • 用户 SID:LDAPU1: (objectsid={sid})

如果您不想使用新的 SID 扩展重新发布证书,您可以通过将适当的映射字符串添加到 AD 中的 altSecurityIdentities 属性来创建手动映射。

Bugzilla:2087247

samba rebase 到版本 4.17.5

samba 软件包已升级到上游版本 4.17.5,与之前的版本相比,它提供了 bug 修复和增强。最显著的更改:

  • 之前版本中的安全性改进会影响服务器消息块(SMB)服务器对高元数据数据工作负载的性能。这个更新在这种情况下提高了性能。
  • --json 选项添加到 smbstatus 工具中,以显示 JSON 格式的详细的状态信息。
  • samba.smb.confsamba.samba3.smb.conf 模块已添加到 smbconf Python API 中。您可以在 Python 程序中使用它们来原生读和(可选)写 Samba 配置。

请注意,从 Samba 4.11 开始,服务器消息块块版本 1 (SMB1) 协议已被弃用,并将在以后的版本中删除。

在启动 Samba 前备份数据库文件。当 smbdnmbdwinbind 服务启动时,Samba 会自动更新其 tdb 数据库文件。红帽不支持降级 tdb 数据库文件。

更新 Samba 后,使用 testparm 工具来验证 /etc/samba/smb.conf 文件。

有关显著变化的更多信息,请在更新前阅读 上游发行注记

Bugzilla:2131993

ipa-client-install 现在支持使用 PKINIT 进行身份验证

在以前的版本中,ipa-client-install 仅支持基于密码的身份验证。这个更新支持使用 PKINIT 进行身份验证的 ipa-client-install

例如:

ipa-client-install --pkinit-identity=FILE:/path/to/cert.pem,/path/to/key.pem --pkinit-anchor=FILE:/path/to/cacerts.pem

要使用 PKINIT 身份验证,您必须在 IdM 和 PKINIT 证书的 CA 链之间建立信任。如需更多信息,请参阅 ipa-cacert-manage (1) 手册页。此外,证书身份映射规则必须将主机的 PKINIT 证书映射到有权限添加或修改主机记录的主体。如需更多信息,请参阅 ipa certmaprule-add 手册页。

Bugzilla:2143224

Red Hat IdM 和证书系统现在支持 EST 协议

通过安全传输(EST)注册是一个新的证书系统子系统功能,它在 RFC 7030 中指定,用于提供证书颁发机构(CA)的证书。EST 实现服务器端的操作,如 /getcacerts/simpleenroll/simplereenroll

请注意,红帽支持证书系统中的 EST 和原始简单证书注册协议(SCEP)。

Bugzilla:1849834

增强负缓存使用率

这个更新提高了按安全标识符(SID)查找的 SSSD 性能。现在,它将在单个域的负缓存中存储不存在的 SID,并请求 SID 所属的域。

Bugzilla:1766490

目录服务器现在支持 TLS 的 ECDSA 私钥

在以前的版本中,您无法使用比 RSA 更强大的加密算法来保护目录服务器连接。有了这个增强,目录服务器现在同时支持 ECDSA 和 RSA 密钥。

Bugzilla:2096795

目录服务器现在支持搜索操作的扩展日志记录

在以前的版本中,访问日志中的记录不显示为何一些搜索操作有非常大的 etime 值。有了这个版本,您可以启用统计信息的日志,如多个索引查找(数据库读取操作)以及每个搜索操作的索引查找的整个持续时间。这些统计信息记录有助于分析为什么 etime 值会如此耗费资源。

Bugzilla:1859271

NUNC_STANS 错误日志记录级别被新的 1048576 日志记录级别替代

在以前的版本中,您无法轻松地调试密码策略问题。对错误日志使用新的 1048576 日志记录级别,您现在可以检查以下密码策略信息:

  • 哪个本地策略拒绝或允许密码更新。
  • 完全违反了语法。

Bugzilla:2057070

目录服务器引入了安全日志

为了为了随着时间的推移正确地跟踪问题,目录服务器现在有一个专门维护安全数据的日志。与具有所有信息的访问日志相比,安全日志不会快速轮转,且消耗较少的磁盘资源,但需要昂贵的解析来获取安全数据。

新的服务器日志记录安全事件,如身份验证事件、授权问题、DoS/TCP 攻击以及其他事件。

目录服务器将安全日志与其他日志文件一起存储在 /var/log/dirsrv/slapd-instance_name/ 目录中。

Bugzilla:2093981

目录服务器现在可以压缩归档的日志文件

在以前的版本中,不压缩归档的日志文件。有了这个版本,您可以启用访问、错误、审计、审计失败日志、安全日志文件压缩来保存磁盘空间。请注意,默认只启用安全日志文件压缩。

使用 cn=config 条目中的以下新配置属性来管理压缩:

  • 用于访问日志的 nsslapd-accesslog-compress
  • 用于错误日志的 nsslapd-errorlog-compress
  • 用于审计日志的 nsslapd-auditlog-compress
  • 用于审计失败日志的 nsslapd-auditfaillog-compress
  • 用于安全日志的 nsslapd-securelog-compress

Bugzilla:1132524

用于目录服务器审计日志的新的 nsslapd-auditlog-display-attrs 配置参数

在以前的版本中,如果条目的可分辨名称(DN)不包含清晰的识别信息,很难确定谁更改了条目。使用新的 nsslapd-auditlog-display-attrs 参数,您可以设置目录服务器在审计日志中显示的额外属性,以提供有关修改条目的更多详情。

例如,如果您将 nsslapd-auditlog-display-attrs 参数设为 cn,则审计日志会在输出中显示条目 cn 属性:

time: 20221014125914
dn: uid=73747737483,ou=people,dc=example,dc=com
result: 0
*#cn: John Smith*
changetype: modify
replace: displayName
displayName: jsmith
-
replace: modifiersname
modifiersname: cn=dm
-
replace: modifytimestamp
modifytimestamp: 20221014165914Z

请注意,如果您希望审计日志包含修改后的条目的所有属性,您可以使用星号 (*) 作为参数值。

Bugzilla:2136610

新的 pamModuleIsThreadSafe 配置选项现在可用

当 PAM 模块是线程安全的时,您可以通过将新的 pamModuleIsThreadSafe 配置选项设置为 yes 来提高 PAM 身份验证吞吐量和特定模块的响应时间:

pamModuleIsThreadSafe: yes

此配置应用于 PAM 模块配置条目( cn=PAM Pass Through Auth,cn=plugins,cn=config的子级)。

dse.ldif 配置文件或 ldapmodify 命令中使用 pamModuleIsThreadSafe 选项。请注意,ldapmodify 命令要求您重启服务器。

Bugzilla:2142639

目录服务器现在可以导入证书包

在以前的版本中,当尝试使用 dsconfdsctl 工具添加证书包时,流程会失败,并显示错误,证书包没有被导入。此行为是由 certutil 工具造成的,其一次只能导入一个证书。有了这个更新,目录服务器可以使用 certutil 临时解决问题,证书包可被成功添加。

Bugzilla:1878808

默认行为更改:目录服务器现在返回一个与添加到数据库时拼写完全相同的 DN

使用 cn=config 条目下的新的 nsslapd-return-original-entrydn 参数,您可以管理目录服务器如何在搜索操作期间返回条目的可分辨名称(DN)。

默认情况下,nsslapd-return-original-entrydn 参数被设置为 on,目录服务器会返回最初添加到数据库中时完全相同的 DN 。例如,您添加或修改了条目 uid=User,ou=PEople,dc=ExaMPlE,DC=COM,并打开了设置,目录服务器会为条目返回相同拼写的 DN :uid=User,ou=PEople,dc=ExaMPlE,DC=COM

nsslapd-return-original-entrydn 参数设置为 off 时,目录服务器通过将条目的相对 DN (RDN)与存储在 cn=userroot,cn=ldbm database,cn=plugins,cn=config 下的数据库后缀配置中的基本 DN 放在一起,来生成条目 DN。如果将基础 DN 设置为 ou=people,dc=example,dc=com,将 nsslapd-return-original-entrydn 设置为 off,则目录服务器会在搜索过程中返回 uid=User,ou=people,dc=example,dc=com,而不是在将条目添加到数据库时 DN 的拼写。

Bugzilla:2075017

MIT Kerberos 支持 Ticket 和 Extended KDC MS-PAC 签名

使用此更新,红帽使用的 MIT Kerberos 实现对 Microsoft 引入的两种 Privilege Attribute 证书(PAC)签名类型的支持,以响应最新的 CVE。具体来说,支持以下签名:

另请参阅 RHSA-2023:2570krb5-1.20.1-6.el9

Bugzilla:2165827