9.2. 安全性
OpenSC 可能无法正确检测 CardOS V5.3 卡对象
OpenSC 工具包没有正确地从某些 CardOS V5.3 卡中使用的不同的 PKCS #15 文件偏移中读取缓存。因此,OpenSC 可能无法列出卡对象,并防止从不同的应用程序使用它们。
要临时解决这个问题,请在 /etc/opensc.conf
文件中设置 use_file_caching = false
选项来关闭文件缓存。
sshd -T
提供关于 Ciphers、MAC 和 KeX 算法的不准确的信息
sshd -T
命令的输出不包含系统范围的加密策略配置或可能来自于环境文件 /etc/sysconfig/sshd
的其他选项,它们作为 sshd
命令的参数被应用。这种情况的发生是因为上游 OpenSSH 项目不支持 Include 指令,以支持 RHEL 8 中红帽提供的加密默认值。在使用 EnvironmentFile
启动sshd.service
单元服务的过程中,加密策略作为命令行参数被应用到 sshd
可执行文件中。要临时解决这个问题,请对环境文件使用 source
命令,并将加密策略作为参数传给 sshd
命令,如 sshd -T $CRYPTO_POLICY
。如需更多信息,请参阅 Ciphers、MAC 或 KeX 算法与 sshd -T
的不同,以了解当前加密策略级别所提供的内容。因此,sshd -T
的输出与当前配置的加密策略匹配。
Bugzilla:2044354[1]
在安装过程中强化系统时,RHV hypervisor 可能无法正常工作
安装 Red Hat Virtualization Hypervisor (RHV-H)并应用 Red Hat Enterprise Linux 8 STIG 配置文件时,OCAP Anaconda 附加组件可能会将系统强化为 RHEL 而不是 RVH-H,并删除 RHV-H 的基本软件包。因此,RHV hypervisor 可能无法正常工作。要临时解决这个问题,请在不应用任何配置文件强化的情况下安装 RHV-H 系统,并在安装完成后使用 OpenSCAP 来应用配置文件。因此,RHV hypervisor 可以正常工作。
CVE OVAL 提要现在仅采用压缩格式,并且数据流不采用 SCAP 1.3 标准
红帽提供 bzip2 压缩格式的 CVE OVAL 提要,且不再以 XML 文件格式提供。因为引用压缩的内容没有在安全内容自动化协议(SCAP) 1.3 规范中标准化,所以第三方 SCAP 扫描程序可能在扫描使用提要的规则时有问题。
某些 Rsyslog 优先级字符串无法正常工作
对允许对加密进行精细控制的 imtcp
的 GnuTLS 优先级字符串的支持不完整。因此,以下优先级字符串无法在 Rsyslog 远程日志记录应用程序中正常工作:
NONE:+VERS-ALL:-VERS-TLS1.3:+MAC-ALL:+DHE-RSA:+AES-256-GCM:+SIGN-RSA-SHA384:+COMP-ALL:+GROUP-ALL
要临时解决这个问题,请只使用正确的优先级字符串:
NONE:+VERS-ALL:-VERS-TLS1.3:+MAC-ALL:+ECDHE-RSA:+AES-128-CBC:+SIGN-RSA-SHA1:+COMP-ALL:+GROUP-ALL
因此,当前的配置必须仅限于可正常工作的字符串。
Server with GUI
和 Workstation
安装可能无法使用 CIS 服务器配置文件
CIS Server Level 1 和 Level 2 安全配置文件与 Server with GUI
和 Workstation
软件选择不兼容。因此,无法使用 Server with GUI
软件选择和 CIS Server 配置文件进行 RHEL 8 安装。使用 CIS Server Level 1 或 Level 2 配置以及这些软件选择之一尝试安装会产生错误信息:
package xorg-x11-server-common has been added to the list of excluded packages, but it can't be removed from the current software selection without breaking the installation.
如果您需要根据 CIS 基准使系统与 Server with GUI
或 Workstation
软件选择保持一致,请使用 CIS Workstation Level 1 或 Level 2 配置文件。
在 Kickstart 安装过程中修复与服务相关的规则可能会失败
在 Kickstart 安装过程中,OpenSCAP 有时会错误地显示不需要服务
状态补救。因此,OpenSCAP 可能会将安装的系统上的服务设置为不合规的状态。作为临时解决方案,您可以在 Kickstart 安装后扫描并修复该系统。这可以解决与服务相关的问题。
启用或禁用
Kickstart 在 RHEL 8 中使用 org_fedora_oscap
而不是 com_redhat_oscap
Kickstart 将 Open Security Content Automation Protocol(OSCAP)Anaconda 附加组件引用为 org_fedora_oscap
而不是 com_redhat_oscap
,后者可能会导致混淆。对于保持与 Red Hat Enterprise Linux 7 的兼容性,这是必需的。
Bugzilla:1665082[1]
libvirt
overrides xccdf_org.ssgproject.content_rule_sysctl_net_ipv4_conf_all_forwarding
当具有 route
或 nat
转发模式的虚拟网络启动时,libvirt
虚拟化框架都会启用 IPv4 转发。这会通过 xccdf_org.ssgproject.content_rule_sysctl_net_ipv4_conf_all_forwarding
规则覆盖配置,后续合规性扫描在评估此规则时会报告fail
结果。
应用其中一个场景来临时解决这个问题:
-
如果您的场景不需要,请卸载
libvirt
软件包。 -
更改
libvirt
创建的虚拟网络的转发模式。 -
通过定制您的配置文件来删除
xccdf_org.ssgproject.content_rule_sysctl_net_ipv4_conf_all_forwarding
规则。
fapolicyd
工具错误地允许执行更改的文件
在对文件进行任何更改后,文件的 IMA 哈希应该正确更新,fapolicyd
应该阻止更改的文件的执行。但是,这不会因为 IMA 策略设置与通过 evctml
程序哈希的文件中的差异而发生。因此,IMA 哈希没有在更改的文件的扩展属性中被更新。因此,fapolicyd
错误地允许更改的文件的执行。
Jira:RHEL-520[1]
semanage fcontext
命令重新排序本地修改
semanage fcontext -l -C
命令列出存储在 file_contexts.local
文件中的本地文件上下文修改。restorecon
工具处理 file_contexts.local
中从最新到最旧的条目。但是 semanage fcontext -l -C
以不同顺序列出条目。处理顺序和列出顺序之间的不匹配可能导致在管理 SELinux 规则时出现问题。
Jira:RHEL-24461[1]
FIPS 模式中的 openssl 只接受特定的 D-H 参数
在 FIPS 模式中,使用 OpenSSL 的 TLS 客户端返回一个 bad dh value
错误,并取消与使用手动生成的参数的服务器的 TLS 连接。这是因为 OpenSSL 当配置为符合 FIPS 140-2 时,只可用于符合 NIST SP 800-56A rev3 附加 D(RFC 3526 中定义的组 14、15、16、17 和 18,以及 RFC 7919)中定义的组。另,,使用 OpenSSL 的服务器会忽略所有其他参数,并选择类似大小的已知参数。要临时解决这个问题,请只使用兼容的组。
Bugzilla:1810911[1]
crypto-policies
错误地允许 Camellia 密码
RHEL 8 系统范围的加密策略应该在所有策略级别禁用 Camellia 密码,如产品文档中所述。但是 Kerberos 协议默认启用密码。
要临时解决这个问题,请应用 NO-CAMELLIA
子策略:
# update-crypto-policies --set DEFAULT:NO-CAMELLIA
在上一个命令中,如果您已经从 DEFAULT
切换,那么将 DEFAULT
替换为加密级名称。
因此,只有在您通过临时解决方案禁用系统范围的加密策略的所有应用程序中,Camellia 密码才会被正确禁止。
通过 OpenSC pkcs15-init
的智能卡配置过程无法正常工作
file_caching
选项在默认的 OpenSC 配置中是启用的,文件缓存功能无法正确处理pkcs15-init
工具中的一些命令。因此,通过 OpenSC 进行智能卡置备过程会失败。
要临时解决这个问题,请在 /etc/opensc.conf
文件中添加以下代码段:
app pkcs15-init { framework pkcs15 { use_file_caching = false; } }
只有在应用了前面描述的临时解决方案时,通过 pkcs15-init
进行智能卡配置才能正常工作。
到带有 SHA-1 签名的服务器的连接无法使用 GnuTLS
GnuTLS 安全通讯库以 insecure 形式拒绝 SHA-1 证书签名。因此,使用 GnuTLS 作为 TLS 后端的应用程序无法建立与提供此类证书的对等的 TLS 连接。这个行为与其他系统加密库不一致。
要临时解决这个问题,请升级服务器以使用 SHA-256 或更强大的哈希签名的证书,或切换到 LEGACY 策略。
Bugzilla:1628553[1]
libselinux-python
只能通过其模块提供
libselinux-python
软件包只包含用于开发 SELinux 应用程序的 Python 2 绑定,它用于向后兼容。因此,通过 yum install libselinux-python
命令,默认的 RHEL 8 软件仓库中不再提供 libselinux-python
。
要临时解决这个问题,请启用 libselinux-python
和 python27
模块,并使用以下命令安装 libselinux-python
软件包及其相依性软件包:
# yum module enable libselinux-python # yum install libselinux-python
或者,使用它的安装配置集在一个命令中安装 libselinux-python
:
# yum module install libselinux-python:2.8/common
因此,您可以使用给定的模块安装 libselinux-python
。
Bugzilla:1666328[1]
UDICA
仅在使用 --env container=podman
启动时才会处理 UBI 8 容器
Red Hat Universal Base Image 8(UBI 8)容器将 container
环境变量设置为 oci
值,而不是 podman
值。这可以防止 udica
工具分析容器 JavaScript Object Notation(JSON)文件。
要临时解决这个问题,请使用带有 --env container=podman
参数的 podman
命令启动 UBI 8 容器。因此,只有在使用上述临时解决方案时,udica
才能为UBI 8 容器生成 SELinux 策略。
默认日志设置在性能上的负面影响
默认日志环境设置可能会消耗 4 GB 内存甚至更多,当 systemd-journald
使用 rsyslog
运行时,速率限制值的调整会很复杂。
如需更多信息,请参阅 RHEL 默认日志设置对性能的负面影响及环境方案。
Jira:RHELPLAN-10431[1]
/etc/selinux/config
中的SELINUX=disabled
无法正常工作
在 /etc/selinux/config
中使用 SELINUX=disabled
选项禁用 SELinux 会导致内核在启用了 SELinux 的情况下引导,并在稍后的引导过程中切换到禁用模式。这可能导致内存泄漏。
要临时解决这个问题,请在内核命令行中添加 selinux=0
参数来禁用 SELinux,如 使用 SELinux 中的在引导时更改 SELinux 模式部分所述。
Jira:RHELPLAN-34199[1]
通过 TCP 连接的 IKE 在自定义 TCP 端口上无法正常工作
tcp-remoteport
Libreswan 配置选项无法正常工作。因此,当场景需要指定非默认 TCP 端口时,TCP 连接上的 IKE 无法建立。
scap-security-guide
无法配置闲置会话的终止
虽然数据流中仍然存在 sshd_set_idle_timeout
规则,但之前配置 sshd
的会话超时的方法不再可用。因此,该规则被标记为 not applicable
,且无法强化任何内容。其他配置闲置会话终止的方法(如 systemd
(Logind))也不可用。因此,scap-security-guide
无法将系统配置为在一定时间后可靠地断开闲置会话。
您可以使用以下方法之一临时解决这个问题,这些方法可能满足安全要求:
-
配置
accounts_tmout
规则。但是,可以使用exec
命令覆盖此变量。 -
配置
configure_tmux_lock_after_time
和configure_bashrc_exec_tmux
规则。这需要安装tmux
软件包。 -
升级到 RHEL 8.7 或更高版本,其中
systemd
功能已与正确的 SCAP 规则一起实施。
OSCAP Anaconda 附加组件不会在图形安装中获取定制的配置文件
OSCAP Anaconda 附加组件不提供一个选项,来在 RHEL 图形安装中选择或取消选择安全配置文件的定制。从 RHEL 8.8 开始,当从存档或 RPM 软件包安装时,附加组件不会考虑定制。因此,安装会显示以下出错信息,而不是获取 OSCAP 定制的配置文件:
There was an unexpected problem with the supplied content.
要临时解决这个问题,您必须在 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
因此,您只能将用于 SCAP 定制的配置文件的图形安装与相应的 Kickstart 规格一起使用。
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
如需了解更多详细信息和临时解决方案,请参阅相关的 知识库文章。
重建 rpm
数据库会分配不正确的 SELinux 标签
使用 rpmdb --rebuilddb
命令重建 rpm
数据库,会为 rpm
数据库文件分配不正确的 SELinux 标签。因此,一些使用 rpm
数据库的服务可能无法正常工作。要在重建数据库后临时解决这个问题,请使用 restorecon -Rv /var/lib/rpm
命令重新标记数据库。
64 位 ARM 架构上错误地使用了审计的 ANSSI BP28 HP SCAP 规则
SCAP 安全指南(SSG)中的 ANSSI BP28 High 配置文件包含以下安全内容自动化协议(SCAP)规则,后者配置 Linux 审计子系统,但在 64 位 ARM 架构上无效:
-
audit_rules_unsuccessful_file_modification_creat
-
audit_rules_unsuccessful_file_modification_open
-
audit_rules_file_deletion_events_rename
-
audit_rules_file_deletion_events_rmdir
-
audit_rules_file_deletion_events_unlink
-
audit_rules_dac_modification_chmod
-
audit_rules_dac_modification_chown
-
audit_rules_dac_modification_lchown
如果您使用这个配置文件配置在 64 位 ARM 机器上运行的 RHEL 系统,则审计守护进程会因为使用了无效的系统调用而无法启动。
要临时解决这个问题,可以使用定制的配置文件从数据流中删除前面提到的规则,或通过编辑 /etc/audit/rules.d
目录中的文件来删除 -S <syscall>
片段。文件不得包含以下系统调用:
- Creat
- open
- rename
- rmdir
- unlink
- chmod
- chown
- lchown
于上述两种临时解决方法中的任何一种,即使在 64 位 ARM 系统上使用 ANSSI BP28 High 配置文件后,审计守护进程也可以启动。