5.5. 安全性

当为 FIPS 模式,会在 libgcrypt 中启用硬件优化

在以前的版本中,联邦信息处理标准(FIPS 140-2)不允许使用硬件优化。因此,在之前的 RHEL 版本中,当使用 FIPS 模式时,操作在 libgcrypt 软件包中被禁用。RHEL 9 在 FIPS 模式中启用硬件优化,因此,所有加密操作都会更快地执行。

(BZ#1990059)

crypto-policies 现在可以禁用 ChaCha20 密码

在以前的版本中,crypto-policies 软件包使用错误关键字在 OpenSSL 中禁用 ChaCha20 密码。因此,您无法通过 crypto-policies 在 OpenSSL 中为 TLS 1.2 协议禁用 ChaCha20。在这个版本中,使用 -CHACHA20 关键字而不是 -CHACHA20-POLY1305。现在,您可以使用加密策略在 OpenSSL 中为 TLS 1.2 和 TLS 1.3 禁用 ChaCha20 密码。

(BZ#2004207)

当使用 FIPS 模式安装时,64 位 IBM Z 系统不再无法引导

在以前的版本中,带有 --no-bootcfg 选项的 fips-mode-setup 命令不会执行 zipl 工具。因为 fips-mode-setup 会重新生成初始 RAM 磁盘(initrd),因此生成的系统需要更新 zipl 内部状态才能引导,因此在以 FIPS 模式安装时将 64 位 IBM Z 系统置于无法引导的状态。在这个版本中,即使使用了 --no-bootcfgfips-mode-setup 也会在 64 位 IBM Z 系统中执行 zipl,新安装的系统可以引导成功。

(BZ#2013195)

GNUTLS_NO_EXPLICIT_INIT 不再禁用隐式库初始化

在以前的版本中,GNUTLS_NO_EXPLICIT_INIT 环境变量禁用了隐式库初始化。在 RHEL 9 中,GNUTLS_NO_IMPLIMPLICIT_INIT 变量禁用隐式库初始化。

(BZ#1999639)

基于 openssl 的应用程序现在可以使用 Turkish 区域正常工作

因为 OpenSSL 库使用不区分大小写的字符串比较功能,因此基于 OpenSSL 的应用程序无法使用 Turkish 区域正常工作,因此忽略的检查会导致应用程序使用这个区域设置崩溃。在这个版本中,提供一个补丁以使用可移植的操作系统接口(POSIX)区域进行不区分大小写的字符串比较。因此,基于 OpenSSL 的应用程序(如 curl)可以与 Turkish 区域正常工作。

(BZ#2071631)

kdump 不再会因为 SELinux 权限崩溃

kdump 崩溃恢复服务需要额外的 SELinux 权限才能正确启动。因此,SELinux 会阻止 kdump 工作kdump 报告它无法正常工作,并且对 Access Vector Cache(AVC)拒绝进行审核。在这个版本中,所需权限被添加到 selinux-policy 中,因此 kdump 可以正常工作,且不会对 AVC 拒绝进行审核。

(BZ#1932752)

usbguard-selinux 软件包不再依赖于 usbguard

在以前的版本中,usbguard-selinux 软件包依赖于 usbguard 软件包。这与这些软件包的其它依赖关系相结合,这会导致安装 usbguard 时存在文件冲突。因此,这会阻止在某些系统上安装 usbguard。在这个版本中,usbguard-selinux 不再依赖于 usbguard,因此 dnf 可以正确安装 usbguard

(BZ#1986785)

dnf installdnf update 现在可以在 SELinux 中使用 fapolicyd

fapolicyd-selinux 软件包包含 fapolicyd 的 SELinux 规则,不包含监视所有文件和目录的权限。因此,fapolicyd-dnf-plugin 无法正常工作,从而导致任何 dnf installdnf update 命令使系统无限期停止响应。在这个版本中,监视任何文件类型的权限被添加到 fapolicyd-selinux 中。因此,fapolicyd-dnf-plugin 可以正常工作,并且 dnf installdnf update 命令可以正常工作。

(BZ#1932225)

现在,Ambient 能力可以被正确应用到非 root 用户

作为一种安全措施,将 UID(用户标识符)从 root 更改为非 root 会使 permitted, effective, 和 ambient 能力集无效。

但是,pam_cap.so 模块无法设置 ambient 能力,因为能力需要同时位于 permitted 和 inheritable 集才可以处于ambient 中。此外,在更改 UID(例如使用 setuid 实用程序)后,permitted 集会变为无效,因此不能设置 ambient 能力。

要解决这个问题,pam_cap.so 模块现在支持 keepcaps 选项,该选项允许在将 UID 从 root 更改为非 root 后保留其允许的能力。pam_cap.so 模块现在支持 defer 选项,该选项会导致 pam_cap.so 在回调中的 pam_cap.so 中重新应用到 pam_end() 的功能。更改 UID 后,其他应用程序可使用此回调。

因此,如果 sulogin 工具被更新并符合 PAM,您现在可以使用 pam_cap.sokeepcapsdefer 选项为非 root 用户设置 ambient 能力。

(BZ#2037215)

usbguard-notifier 不再将太多的错误消息记录到 Journal 中

在以前的版本中,usbguard-notifier 服务没有连接到 usbguard-daemon IPC 接口的进程间通信(IPC)权限。因此,usbguard-notifier 无法连接到接口,它会将对应的错误消息写入 Journal。由于 usbguard-notifier 使用 --wait 选项启动,因此 usbguard-notifier 会在连接失败后尝试每秒连接到 IPC 接口,默认情况下日志会很快包含大量与这个行为相关的消息。

在这个版本中,usbguard-notifier 默认不以 --wait 开始。现在,该服务只会以 1 秒的间隔尝试连接到守护进程三次。因此,日志包含最多三个相关的错误消息。

(BZ#2009226)