10.6. 安全性
/etc/passwd-
的文件权限与CIS RHEL 8 Benchmark 1.0.0不一致
由于 CIS Benchmark 存在问题,修正 SCAP 规则可以确保 /etc/passwd-
backup 文件中的权限被配置为 0644
。但是 CIS Red Hat Enterprise Linux 8 Benchmark 1.0.0
需要该文件的文件权限 0600
。因此,在修复后, /etc/passwd-
的文件权限与基准数据不一致。
libselinux-python
只能通过其模块提供
libselinux-python
软件包只包含用于开发 SELinux 应用程序的 Python 2 绑定,它用于向后兼容。因此,通过 dnf install libselinux-python
命令,默认的 RHEL 8 软件仓库不再提供 libselinux-python
。
要临时解决这个问题,请启用 libselinux-python
和 python27
模块,并使用以下命令安装 libselinux-python
软件包及其相依性软件包:
# dnf module enable libselinux-python # dnf install libselinux-python
或者,使用它的安装配置集在一个命令中安装 libselinux-python
:
# dnf module install libselinux-python:2.8/common
因此,您可以使用相关的模块安装 libselinux-python
。
(BZ#1666328)
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)
/etc/selinux/config
中的SELINUX=disabled
无法正常工作
在 /etc/selinux/config
中使用 SELINUX=disabled
选项禁用 SELinux 会导致内核在启用了 SELinux 的情况下引导,并在稍后的引导过程中切换到禁用模式。这可能导致内存泄漏。
要临时解决这个问题,请在内核命令行中添加 selinux=0
参数来禁用 SELinux,如 使用 SELinux 中的在引导时更改 SELinux 模式部分所述。
(JIRA:RHELPLAN-34199)
crypto-policies
错误地允许 Camellia 密码
RHEL 8 系统范围的加密策略应该在所有策略级别禁用 Camellia 密码,如产品文档中所述。但是 Kerberos 协议默认启用密码。
要临时解决这个问题,请应用 NO-CAMELLIA
子策略:
# update-crypto-policies --set DEFAULT:NO-CAMELLIA
在上一个命令中,如果您已经从 DEFAULT
切换,那么将 DEFAULT
替换为加密级名称。
因此,只有在您通过临时解决方案禁用系统范围的加密策略的所有应用程序中,Camellia 密码才会被正确禁止。
使用带有 IKEv2
的多个标记的 IPsec 连接无法正常工作
当 Libreswan 使用 IKEv2
协议时,IPsec 的安全标签对于多个连接无法正常工作。因此,使用标记的 IPsec 的 Libreswan 只能建立第一个连接,但无法正确建立后续连接。要使用多个连接,请使用 IKEv1
协议。
通过 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 策略。
(BZ#1628553)
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 的服务器会忽略所有其他参数,并选择类似大小的已知参数。要临时解决这个问题,请只使用兼容的组。
(BZ#1810911)
通过 TCP 连接的 IKE 在自定义 TCP 端口上无法正常工作
tcp-remoteport
Libreswan 配置选项无法正常工作。因此,当场景需要指定非默认 TCP 端口时,TCP 连接上的 IKE 无法建立。
SELinux 审计规则和 SELinux 布尔配置中存在冲突
如果审计规则列表包含一个含有 subj_*
或 obj_*
字段的审计规则,并且 SELinux 布尔值配置发生了变化,那么设置 SELinux 布尔值会导致死锁。因此,系统会停止响应,需要重启才能恢复。要临时解决这个问题,请禁用包含 subj_*
或 obj_*
字段的所有审计规则,或者在修改 SELinux 布尔值前临时禁用这些规则。
随着 RHSA-2021:2168 公告的发布,内核可以正确处理这种情况,不会再死锁。
(BZ#1924230)
systemd 无法从任意路径执行命令
systemd 服务无法从 /home/user/bin
任意路径执行命令,因为 SELinux 策略软件包不包括任何这样的规则。因此,在非系统路径中执行的自定义服务会失败,并最终会在 SELinux 拒绝访问时记录 Access Vector Cache(AVC)拒绝审核信息。要临时解决这个问题,请执行以下操作之一:
使用带有
-c
选项的 shell 脚本执行该命令。例如:bash -c command
-
从常用的命令路径
/bin
、/sbin
、/usr/sbin
、/usr/local/bin
和/usr/local/sbin
中执行命令。
某些 SSG 中的规则组可能会失败
由于未定义规则及其依赖项的顺序,基准中SCAP Security Guide
(SSG)规则的修复可能会失败。如果需要以特定顺序执行两个或多个规则,例如,当一条规则安装组件和另一个规则配置同一组件时,它们可按错误的顺序运行,并报告错误。要临时解决这个问题,请执行补救两次,第二次运行会修复依赖规则。
无法使用 Server with GUI
或 Workstation
软件选择和 CIS 安全配置集进行安装
CIS安全配置集与Server with GUI
和Workstation
不兼容。因此,无法使用 Server with GUI
软件选择和 CIS 配置集进行 RHEL 8 安装。使用 CIS 配置集进行尝试安装,且这两种软件选择之一都会生成出错信息:
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.
要临时解决这个问题,请不要在 Server with GUI
或 Workstation
软件选择中使用 CIS 安全配置集。
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 的向后兼容性。
(BZ#1665082)
usbguard-notifier
将太多错误消息记录到日志中
usbguard-notifier
服务没有用于连接到 usbguard-daemon
IPC 接口的进程间通信(IPC)权限。因此,usbguard-notifier
无法连接到接口,并将对应的错误消息写入 Journal。由于 usbguard-notifier
使用 --wait
选项启动,因此确保 usbguard-notifier
尝试在连接失败后每秒连接 IPC 接口,因此日志会很快包含太多消息。
要临时解决这个问题,允许运行 usbguard-notifier
的用户或组连接到 IPC 接口。例如,以下错误消息包含 GNOME 显示管理器(GDM)的 UID 和 GID 值:
IPC connection denied: uid=42 gid=42 pid=8382, where uid and gid 42 = gdm
要为 gdm
用户授予缺少的权限,请使用 usbguard
命令并重启 usbguard
守护进程:
# usbguard add-user gdm --group --devices listen # systemctl restart usbguard
在授予了缺少的权限后,日志中不再会出现错误消息。
某些 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
因此,当前的配置必须仅限于可正常工作的字符串。