第 13 章 身份管理
以下章节包含 RHEL 9 和 RHEL 10 之间身份管理(IdM)的最显著更改。
IdM 部署中 TLS 的 DNS over TLS (DoT)作为技术预览提供
使用 DNS over TLS (DoT)的加密 DNS 现在在 Identity Management (IdM)部署中作为技术预览提供。现在,您可以加密 DNS 客户端和 IdM DNS 服务器之间的所有 DNS 查询和响应。
要开始使用此功能,请在 IdM 服务器和副本上安装 ipa-server-encrypted-dns
软件包,并在 IdM 客户端上安装 ipa-client-encrypted-dns
软件包。管理员可以在安装过程中使用- -dns-over-tls
选项启用 DoT。
IdM 将 Unbound 配置为本地缓存解析器和 BIND 来接收 DoT 请求。这个功能可以通过命令行界面(CLI)和 IdM 的非互动安装提供。
在 IdM 服务器、副本、客户端和集成的 DNS 服务的安装工具中添加了以下选项:
-
--dot-forwarder
指定启用了上游的 DoT 的 DNS 服务器。 -
--dns-over-tls-key
和--dns-over-tls-cert
来配置 DoT 证书。 -
--dns-policy
将 DNS 安全策略设置为允许回退到未加密的 DNS 或强制实施严格的 DoT 使用。
默认情况下,IdM 使用 relaxed
DNS 策略,该策略允许回退到未加密的 DNS。您可以在强制设置中使用 new-- dns-policy
选项来强制实施仅加密通信。
您还可以通过使用 ipa-dns-install
和新的 DoT 选项重新配置集成的 DNS 服务,来在现有 IdM 部署中启用 DoT。
支持 SSSD 中的动态 DoT 更新
SSSD 现在支持使用 DNS-over-TLS (DoT)执行所有动态 DNS (dyndns)查询。当 IP 地址更改时,您可以安全地更新 DNS 记录,如身份管理(IdM)和 Active Directory 服务器。要启用这个功能,您必须从 bind9.18-utils
软件包安装 nsupdate
工具。
您可以使用 sssd.conf
文件中的以下新选项来启用 DoT 并配置自定义证书来保护 DNS 更新:
- dyndns_dns_over_tls
- dyndns_tls_ca_cert
- dyndns_tls_cert
- dyndns_tls_key
有关这些选项的详情,请查看您系统上的 sssd-ad (5)
和 sssd-ad (5)
手册页。
IdM-到-IdM 迁移现在作为技术预览提供
在 RHEL 10 中,您可以使用新的 ipa-migrate
工具(红帽提供它)作为不受支持的技术预览,将所有特定于 IdM 的数据(如 SUDO 规则、HBAC、DNA 范围、主机、服务等)迁移到另一个 IdM 服务器。这非常有用,例如,当将 IdM 从开发或暂存环境移到生产环境时,或者在两个生产服务器之间迁移 IdM 数据时。
ansible-freeipa
现在使用 Ansible 集合格式
在 RHEL 10 中,ansible-freeipa
rpm 只安装 freeipa.ansible_freeipa
集合。
要使用新集合,请将 freeipa.ansible_freeipa
前缀添加到角色和模块的名称中。使用完全限定名称来遵循 Ansible 建议。例如,要引用 ipahbacrule
模块,请使用 freeipa.ansible_freeipa.ipahbacrule
。
您可以通过应用 module_defaults
来简化作为 freeipa.ansible_freeipa
集合一部分的模块的使用。
IdM 现在完全支持 HSM
现在,身份管理(IdM)完全支持硬件安全模块(HSM)。您可以在 HSM 上存储 IdM Cerificate Authority (CA)和密钥恢复授权(KRA)的密钥对和证书。这为私钥材料增加了物理安全。
IdM 依赖于 HSM 的网络功能,来在机器之间共享密钥来创建副本。HSM 提供了额外的安全性,而不会明显影响大多数 IPA 操作。当使用低级别工具时,证书和密钥会以不同的方式处理,但对大多数用户来说这是无缝的。
不支持将现有 CA 或 KRA 迁移到基于 HSM 的设置中。您需要在 HSM 上使用密钥重新安装 CA 或 KRA。
您需要以下内容:
- 一个支持的 HSM
- HSM Public-Key Cryptography Standard (PKCS) modprobe 库
- 一个可用的插槽、令牌和令牌密码
要安装存储在 HSM 上的密钥的 CA 或 KRA,您必须指定令牌名称和 PKCS swig 库的路径。例如:
ipa-server-install -r EXAMPLE.TEST -U --setup-dns --allow-zone-overlap --no-forwarders -N --auto-reverse --random-serial-numbers --token-name=HSM-TOKEN --token-library-path=/opt/nfast/toolkits/pkcs11/libcknfast.so --setup-kra
ipa-server-install -r EXAMPLE.TEST -U --setup-dns --allow-zone-overlap --no-forwarders -N --auto-reverse --random-serial-numbers --token-name=HSM-TOKEN --token-library-path=/opt/nfast/toolkits/pkcs11/libcknfast.so --setup-kra
默认启用自动删除过期的证书
在 RHEL 10 中,现在在新副本的 IdM 中默认启用自动删除过期的证书。这种情况的前提条件是使用 RSNv3 的证书生成随机序列号,现在也被默认启用。
现在,证书会使用随机序列号创建,并在过期后默认保留期限 30 天后自动删除。
DNSSEC 在 IdM 中无法正常工作
DNS 安全扩展(DNSSEC)在 RHEL 10 中的 IdM 中无法正常工作,因为因为使用 pkcs11-provider
OpenSSL 供应商替换 openssl-pkcs11
OpenSSL 引擎时,会造成问题。
OpenSSL 中引入的更改会影响 RHEL IdM 中的集成 DNS 功能。具体来说,更改会影响 IdM 中的多个组件,包括 ipa
、bind
、bind-dyndb-ldap
、softhsm
和 python-cryptography
,以及这些组件如何与安全模块交互。
pam_console
模块已被删除
pam_console
模块已从 RHEL 10 中删除。pam_console
模块为登录在物理控制台或终端的用户授予文件权限和身份验证功能,并根据控制台登录状态和用户存在来调整这些特权。作为 pam_console
的一种替代,您可以使用 systemd-logind
系统服务。有关配置详情,请查看 logind.conf (5)
手册页。
libsss_simpleifp
子软件包已被删除
提供 libsss_simpleifp
.so 库的 libsss_simpleifp.so
库的 libsss_simpleifp 子软件包在 RHEL 9 中已被弃用。libsss_simpleifp
子软件包已在 RHEL 10 中删除。
为 AD 和 IdM 供应商删除了 enumeration
功能
支持 enumeration
功能,其可让您为 AD 和 IdM 供应商使用 getent passwd/group
列出所有用户或组,在 Red Hat Enterprise Linux (RHEL) 9 中已被弃用。Enumeration
功能已在 RHEL 10 中删除。
NIS 服务器模拟器已被删除
RHEL IdM 不再提供 NIS 功能。
RSA PKINIT 方法已被删除
MIT Kerberos 不再支持基于私钥的 RSA 方法。出于安全考虑,它已被移除,特别是对于 Marvin 攻击的漏洞。因此,kinit
命令的 -X flag_RSA_PROTOCOL
参数不再起作用。Diffie-Hellman 密钥协议方法用作默认的 PKINIT 机制。
389-ds-base
软件包现在只创建 LMDB 实例
在以前的版本中,目录服务器使用 Berkeley 数据库(BDB)创建实例。但是,RHEL 10 中不再提供实现 389-ds-base
使用的 BDB 版本的 libdb
库。
从 RHEL 10 开始,389-ds-base
软件包默认使用 Lightning Memory-Mapped 数据库(LMDB)作为数据库类型。这个更改会影响以下区域:
- 迁移步骤
- 数据库配置参数
- 数据库调整
- 监控和日志文件
LMDB 引入了存储在新的 cn=mdb,cn=config,cn=ldbm database,cn=plugins,cn=config
配置条目下的以下配置参数:
nsslapd-mdb-max-size
设置数据库最大大小(以字节为单位)。+- 重要的
-
确保
nsslapd-mdb-max-size
足够高以存储所有预期数据。但是,参数大小不能太大,以免影响性能,因为数据库文件是内存映射的。
-
nsslapd-mdb-max-readers
设置可以同时打开的最大读操作数。目录服务器自动调整此设置。 -
nsslapd-mdb-max-dbs
设置指定可包含在内存映射的数据库文件中的最大数据库实例数。
除了新的 LMDB 设置,您还可以使用 nsslapd-db-home-directory
数据库配置参数。
目录服务器中不再支持 BDB 实例。因此,将所有实例都迁移到 LMDB。
PAM 现在需要 authselect
,且无法卸载
在 RHEL 10 中,authselect-libs
软件包现在拥有 /etc/nsswitch.conf
和选定的 PAM 配置,包括 system-auth
、password-auth
、smartcard-auth
、指纹-auth
以及 /etc/pam.d/
中的 postlogin
。这些文件的所有权已传送到 authselect-libs
软件包,之前由 glibc
软件包拥有的 /etc/nsswitch.conf
以及之前由 pam
软件包拥有的 PAM 配置文件。由于 pam
软件包需要 authselect
,所以无法卸载它。
对于从以前的 RHEL 版本升级的系统:
-
如果
authselect
配置已存在,authselect apply-changes
会自动将配置更新至最新版本。如果您的系统中没有以前的authselect
配置,则不会进行任何更改。 -
在由
authselect
管理的系统上,任何非验证配置现在都会被强制覆盖,而在下一个authselect
调用过程中没有提示。不再需要--force
选项。
如果您需要特殊配置,请创建一个自定义 authselect
配置集。请注意,您必须手动更新自定义配置集,以便与您的系统保持最新状态。
您可以使用 authselect
来选择不使用:
authselect opt-out
# authselect opt-out
SSSD 文件供应商已删除
SSSD 文件提供者已从 RHEL 10.0 中删除。在以前的版本中,SSSD 文件供应商负责本地用户的智能卡验证和会话记录。作为替换,您可以配置 SSSD 代理供应商。
本地
配置集是新的默认 authselect
配置集
由于删除了 RHEL 10.0 中的 SSSD 文件供应商,因此引进了一个新的 authselect
local
配置集来处理本地用户管理,而无需依赖 SSSD。local
配置集替换了之前的 minimal
配置集,并成为新安装的默认 authselect
配置集,而不是 sssd
配置集。
在升级过程中,authselect
工具会自动将现有配置从 minimal
迁移到 本地
配置集。
另外,sssd
authselect
配置集已被更新以删除 with-files-domain
和 with-files-access-provider
选项,它不再通过这些选项直接处理本地用户帐户。如果依赖于这些选项,您必须将 SSSD 配置更新为使用 代理供应商
,而不是 文件供应商
。
sssd
配置集现在支持 the -with-tlog
选项,它为 SSSD 管理的用户启用会话记录。
dnssec-enable: no;
选项已被删除
RHEL 10.0 中删除了 /etc/named/ipa-options-ext.conf
文件中的 dnssec-enable: no;
选项。DNS 安全扩展(DNSSEC)是默认启用的,且无法禁用。dnssec-validation: no;
选项仍可用。
reconnection_retries
选项已被删除
reconnection_retries
选项已从 RHEL 10.0 的 SSSD 中的 sssd.conf
文件中删除。因为 SSSD 在 SSSD 进程和响应器使用内部 IPC 切换到新架构不再连接到后端,所以不再使用 reconnection_retries
选项。