10.2. 安全性


OpenSSL 不会检测 PKCS #11 令牌是否支持原始 RSA 或 RSA-PSS 签名的创建

TLS 1.3 协议需要支持 RSA-PSS 签名。如果 PKCS #11 令牌不支持原始 RSA 或 RSA-PSS 签名,如果密钥由 PKCS#11 令牌保存,则使用 OpenSSL 库的服务器应用程序将无法使用 RSA 密钥。因此,在上述场景中 TLS 通信会失败。

临时解决方案:将服务器和客户端配置为使用 TLS 版本 1.2 作为可用最高 TLS 协议版本。

Jira:RHELPLAN-50959[1]

OpenSSL 错误处理 PKCS #11 tokens 不支持原始 RSA 或 RSA-PSS 签名

OpenSSL 库不会检测到 PKCS #11 令牌的与键相关的功能。因此,当使用不支持原始 RSA 或 RSA-PSS 签名的令牌创建签名时,建立 TLS 连接会失败。

临时解决方案:在 /etc/pki/tls/openssl.cnf 文件的 crypto_policy 部分末尾的 .include 行后面添加以下行:

SignatureAlgorithms = RSA+SHA256:RSA+SHA512:RSA+SHA384:ECDSA+SHA256:ECDSA+SHA512:ECDSA+SHA384
MaxProtocol = TLSv1.2
Copy to Clipboard Toggle word wrap

因此,可以在描述的场景中建立 TLS 连接。

Jira:RHELPLAN-48241[1]

使用特定语法,scp 会清空复制到其自身的文件

scp 实用程序从安全复制协议 (SCP) 改为更安全的 SSH 文件传输协议 (SFTP)。因此,将文件从位置复制到同一位置,从而擦除文件内容。此问题会产生以下语法:

scp localhost:/myfile localhost:/myfile

临时解决方案:不要使用此语法将文件复制到与源位置相同的目标。

这个问题已针对以下语法解决:

  • scp /myfile localhost:/myfile
  • scp localhost:~/myfile ~/myfile

Jira:RHELPLAN-113842[1]

OSCAP Anaconda 附加组件不会在图形安装中获取定制的配置文件

OSCAP Anaconda 附加组件不提供一个选项,来在 RHEL 图形安装中选择或取消选择安全配置文件的定制。从 RHEL 8.8 开始,当从存档或 RPM 软件包安装时,附加组件不会考虑定制。因此,安装会显示以下出错信息,而不是获取 OSCAP 定制的配置文件:

There was an unexpected problem with the supplied content.
Copy to Clipboard Toggle word wrap

临时解决方案:您必须在 Kickstart 文件的 %addon org_fedora_oscap 部分中指定路径,例如:

xccdf-path = /usr/share/xml/scap/sc_tailoring/ds-combined.xml
tailoring-path = /usr/share/xml/scap/sc_tailoring/tailoring-xccdf.xml
Copy to Clipboard Toggle word wrap

因此,您只能将用于 SCAP 定制的配置文件的图形安装与相应的 Kickstart 规格一起使用。

Jira:RHEL-1824

Ansible 补救需要额外的集合

ansible-core 软件包替换 Ansible Engine 时,RHEL 订阅提供的 Ansible 模块的列表会减少。因此,运行使用包含在 scap-security-guide 软件包中的 Ansible 内容的补救需要来自 rhc-worker-playbook 软件包的集合。

对于 Ansible 补救,请执行以下步骤:

  1. 安装所需的软件包:

    # dnf install -y ansible-core scap-security-guide rhc-worker-playbook
    Copy to Clipboard Toggle word wrap
  2. 进到 /usr/share/scap-security-guide/ansible 目录:

    # cd /usr/share/scap-security-guide/ansible
    Copy to Clipboard Toggle word wrap
  3. 运行使用环境变量的相关 Ansible playbook,这些变量定义了到额外 Ansible 集合的路径:

    # ANSIBLE_COLLECTIONS_PATH=/usr/share/rhc-worker-playbook/ansible/collections/ansible_collections/ ansible-playbook -c local -i localhost, rhel9-playbook-cis_server_l1.yml
    Copy to Clipboard Toggle word wrap

    cis_server_l1 替换为您要修复系统的配置文件的 ID。

因此,Ansible 内容会被正确处理。

注意

rhc-worker-playbook 中提供的集合的支持仅限于启用 scap-security-guide 中提供的 Ansible 内容。

Jira:RHEL-1800

Keylime 不接受串联的 PEM 证书

当 Keylime 将证书链作为 PEM 格式的、串联在一个文件中的多个证书接收时,keylime-agent-rust Keylime 组件在签名验证过程中不能正确地使用所有提供的证书,导致 TLS 握手失败。因此,客户端组件(keylime_verifierkeylime_tenant)无法连接到 Keylime 代理。

临时解决方案:只使用一个证书而不是多个证书。

Jira:RHELPLAN-157225[1]

Keylime 拒绝其摘要以反斜杠开头的运行时策略

生成运行时策略的当前脚本 create_runtime_policy.sh,使用 SHA 校验函数,如 sha256sum ,来计算文件摘要。但是,当输入的文件名包含反斜杠或 \n 时,校验和函数会在其输出中的摘要前添加一个反斜杠。在这种情况下,生成的策略文件的格式不正确。提供错误格式的策略文件时,Keylime 租户会产生以下或类似错误消息:me.tenant - ERROR - Response code 400: Runtime policy is malformat

临时解决方案:输入以下命令从格式策略文件中手动删除反斜杠: sed -i 's/^\\//g' <malformed_file_name>

Jira:RHEL-11867[1]

更新后,Keylime 代理拒绝来自验证器的请求

当 Keylime 代理的 API 版本号(keylime-agent-rust)已更新时,代理会拒绝使用不同版本的请求。因此,如果 Keylime 代理被添加到验证器中,然后被更新,则验证器会尝试使用旧的 API 版本联系代理。代理拒绝此请求并使认证失败。

临时解决方案:在更新代理(keylime-agent-rust)前更新验证器(keylime-verifier)。因此,当代理被更新时,verifier 会检测 API 更改,并相应地更新其存储的数据。

Jira:RHEL-1518[1]

trustdb 中缺失的文件导致拒绝 fapolicyd

当使用 Ansible DISA STIG 配置文件安装了 fapolicyd 时,一个竞争条件导致 trustdb 数据库与 rpmdb 数据库不同步。因此,trustdb 中缺失的文件导致在系统上被拒绝。

临时解决方案:重启 fapolicyd 或再次运行 Ansible DISA STIG 配置集。

Jira:RHEL-24345[1]

fapolicyd 工具错误地允许执行更改的文件

在对文件进行任何更改后,文件的 IMA 哈希应该正确更新,fapolicyd 应该阻止更改的文件的执行。但是,这不会因为 IMA 策略设置与通过 evctml 程序哈希的文件中的差异而发生。因此,IMA 哈希没有在更改的文件的扩展属性中被更新。因此,fapolicyd 错误地允许更改的文件的执行。

Jira:RHEL-520[1]

使用 MLDSA-87 签名的 RPM 软件包无法在 FIPS 模式中安装

post-quantum 加密(PQC)算法没有 FIPS 验证,且在 FIPS 供应商中不可用。这会导致 MLDSA-87 PQC 密钥导入到 RPM 数据库中,PQC 签名验证在 FIPS 模式下失败。

临时解决方案:不要启用 DNF 插件在 FIPS 模式中支持 PQC 签名。因此,系统会通过典型的签名验证 FIPS 模式中的软件包。

Jira:RHEL-111478[1]

Openssl 不再创建 X.509 v1 证书

在 RHEL 9.5 中引入 OpenSSL TLS 工具包 3.2.1 后,您无法再使用 openssl CA 工具创建 X.509 版本 1 格式的证书。X.509 v1 格式不符合当前的 Web 要求。

Jira:RHEL-40605

OpenSSH 不再在身份验证之前记录超时

OpenSSH 在验证 $IP port $PORT 之前不会将超时记录到日志中。这可能很重要,因为 Fail2Ban 入侵防御守护进程和类似的系统在其 mdre-ddos 正则表达式中使用这些日志记录,并且不再禁止尝试此类攻击的客户端 IP。目前对此问题还没有已知的临时解决方案。

Jira:RHEL-45727

更新 NSS 数据库密码会破坏 ML-DSA seed

生成 ML-DSA 密钥以 seed 开头,这足以派生该密钥。但是,也可以扩展密钥来加快后续操作。如果您在 NSS 数据库中有 ML-DSA 密钥,要么生成或导入,则扩展格式和 seed 可能存储。由于 NSS 如何处理数据库重新加密,如果更改了数据库密码,则不会更新 seed 属性来容纳新密码,并且其值将永久丢失,即使了解之前的密码也是如此。

要临时解决这个问题,请在更新密码前导出密钥并在更新后重新导入它。

Jira:RHEL-127671[1]

默认 SELinux 策略允许无限制的可执行文件使其堆栈可执行

SELinux 策略中的 selinuxuser_execstack 布尔值的默认状态是 on,这意味着无限制的可执行文件可以使其堆栈为可执行。可执行文件不应该使用这个选项,这通常代表开发的可执行代码的质量较差,或可能存在安全攻击的风险。但是,由于需要与其他工具、软件包和第三方产品保持兼容,红帽无法更改默认策略中的这个布尔值。如果您的环境没有此类兼容性问题,请使用 setsebool -P selinuxuser_execstack off 命令在您的本地策略中将这个布尔值设置为 off。

Jira:RHELPLAN-115609[1]

STIG 配置文件中的 SSH 超时规则配置了不正确的选项

对 OpenSSH 的更新会影响以下 Defense Information Systems Agency Security Technical Implementation Guide (DISA STIG) 配置集中的规则:

  • DISA STIG for RHEL 9 (xccdf_org.ssgproject.content_profile_stig)
  • DISA STIG with GUI for RHEL 9 (xccdf_org.ssgproject.content_profile_stig_gui)

在每个配置集中,以下两条规则会受到影响:

Title: Set SSH Client Alive Count Max to zero
CCE Identifier: CCE-90271-8
Rule ID: xccdf_org.ssgproject.content_rule_sshd_set_keepalive_0

Title: Set SSH Idle Timeout Interval
CCE Identifier: CCE-90811-1
Rule ID: xccdf_org.ssgproject.content_rule_sshd_set_idle_timeout
Copy to Clipboard Toggle word wrap

当应用到 SSH 服务器时,每个规则都会配置一个选项(ClientAliveCountMaxClientAliveInterval),其行为不再像之前一样。因此,当 OpenSSH 达到这些规则配置的超时时,OpenSSH 不再断开空闲的 SSH 用户。

临时解决方案:这些规则已从 DISA STIG for RHEL 9 和 DISA STIG with GUI for RHEL 9 配置集中临时删除,直到开发出解决方案为止。

Jira:RHELPLAN-107318[1]

GnuPG 错误地允许使用 SHA-1 签名,即使通过 crypto-policies 禁止使用 SHA-1 签名

无论系统范围的加密策略中定义的设置如何,GNU Privacy Guard(GnuPG)加密软件可以创建和验证使用 SHA-1 算法的签名。因此,您可以在 DEFAULT 加密策略中将 SHA-1 用于加密目的,这与这个不安全算法的系统范围弃用没有一致的。

临时解决方案:不要使用涉及 SHA-1 的 GnuPG 选项。因此,您将使用不安全的 SHA-1 签名来防止 GnuPG 降低默认的系统安全性。

Jira:RHELPLAN-117566[1]

OpenSCAP 内存消耗问题

在内存有限的系统上,OpenSCAP 扫描程序可能过早停止,或者可能没有生成结果文件。要临时解决这个问题,您可以自定义扫描配置文件,以取消选择涉及递归整个 / 文件系统的规则:

  • rpm_verify_hashes
  • rpm_verify_permissions
  • rpm_verify_ownership
  • file_permissions_unauthorized_world_writable
  • no_files_unowned_by_user
  • dir_perms_world_writable_system_owned
  • file_permissions_unauthorized_suid
  • file_permissions_unauthorized_sgid
  • file_permissions_ungroupowned
  • dir_perms_world_writable_sticky_bits

临时解决方案:请参阅 相关的知识库文章

Jira:RHELPLAN-145263[1]

在 kickstart 安装过程中修复与服务相关的规则可能会失败

在 kickstart 安装过程中,OpenSCAP 工具有时会错误地显示服务的 enabledisable 状态补救不需要。因此,OpenSCAP 可能会将安装的系统上的服务设置为不合规的状态。

临时解决方案:您可以在 kickstart 安装后扫描并修复系统。这可以解决与服务相关的问题。

Jira:RHELPLAN-44202[1]

FIPS:OSPP 主机的互操作性由于 CNSA 1.0 受到了影响

OSPP 子策略已与 Commercial National Security Algorithm (CNSA) 1.0 一致。这在以下主要方面影响了使用 FIPS:OSPP 策略-子策略组合的主机的互操作性:

  • 最小 RSA 密钥大小被强制为 3072 位。
  • 算法协商不再支持 AES-128 密码、secp256r1 椭圆曲线和 FFDHE-2048 组。

Jira:RHEL-2735[1]

SELinux 策略中缺少规则阻止了对 SQL 数据库的权限

SELinux 策略中缺少规则阻止了连接到 SQL 数据库。因此,FIDO Device Onboard (FDO)服务 fdo-manufacturing-server.servicefdo-owner-onboarding-server.servicefdo-rendezvous-server.service 无法连接到 FDO 数据库,如 PostgreSQL 和 SQLite。因此,系统无法通过使用支持凭证和其他参数的数据库(如存储所有权凭证)来启动 FDO 。

临时解决方案:执行以下步骤:

  1. 创建一个名为 local_fdo_update.cil 的新文件,并输入缺少的 SELinux 策略规则:

    (allow fdo_t etc_t (file (write)))
    (allow fdo_t fdo_conf_t (file (append create rename setattr unlink write )))
    (allow fdo_t fdo_var_lib_t (dir (add_name remove_name write )))
    (allow fdo_t fdo_var_lib_t (file (create setattr unlink write )))
    (allow fdo_t krb5_keytab_t (dir (search)))
    (allow fdo_t postgresql_port_t (tcp_socket (name_connect)))
    (allow fdo_t sssd_t (unix_stream_socket (connectto)))
    (allow fdo_t sssd_var_run_t (sock_file (write)))
    Copy to Clipboard Toggle word wrap
  2. 安装策略模块软件包:

    # semodule -i local_fdo_update.cil
    Copy to Clipboard Toggle word wrap

因此,FDO 可以连接到 PostgreSQL 数据库,并修复 /var/lib/fdo/ 上与 SQLite 权限相关的问题,其中 SQLite 数据库文件应该位于此目录中。

Jira:RHEL-28814[1]

rpm-sequoia 的 PQC 始终在 crypto-policies中启用

在 RHEL 10.1 中,如果系统范围的加密策略中禁用了用于签名的算法之一,rpm-sequoia 无法验证双签名的 RPM 软件包。这个问题在禁用 post-quantum (PQ)算法的系统中很常见,且无法安装使用经典和 PQ 加密签名的软件包。

为了防止破坏系统,rpm-sequoia 的 PQ 算法在 加密策略级别 被硬编码。因此,无论 crypto-policies 中的任何设置是什么,rpm-sequoia 的 PQ 算法都会被启用。

Jira:RHEL-112697

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat