10.4. 安全性
锁定的用户可以运行 sudo
在使用 ALL
关键字定义 sudoers
权限的系统中,拥有 权限的 sudo
用户可以作为帐户被锁定的用户运行 sudo
命令。因此,仍然可以使用锁定的和过期的帐号来执行命令。
要临时解决这个问题,请启用新实现的 runas_check_shell
选项,并在 /etc/shells
中正确设置有效 shell。这样可防止攻击者在比如 bin
的系统帐户中运行命令。
(BZ#1786990)
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 对象表示法(JSON)文件。
要临时解决这个问题,请使用带有 --env container=podman
参数的 podman
命令启动 UBI 8 容器。因此,只有使用上述临时解决方案时,udica 才 可以为
UBI 8 容器生成 SELinux 策略。
默认日志设置在性能上的负面影响
默认日志环境设置可能会消耗 4 GB 内存甚至更多,当 systemd-journald
使用 rsyslog
运行时,速率限制值的调整会很复杂。
如需更多信息,请参阅 RHEL 默认日志设置对性能的负面影响及环境方案。
(JIRA:RHELPLAN-10431)
/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-
的文件权限与基准数据不一致。
/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 密码才会被正确禁止。
到带有 SHA-1 签名的服务器的连接无法使用 GnuTLS
GnuTLS 安全通讯库以 insecure 形式拒绝 SHA-1 证书签名。因此,使用 GnuTLS 作为 TLS 后端的应用程序无法建立与提供此类证书的对等的 TLS 连接。这个行为与其他系统加密库不一致。
要临时解决这个问题,请升级服务器以使用 SHA-256 或更强大的哈希签名的证书,或切换到 LEGACY 策略。
(BZ#1628553)
Libreswan 忽略了 leftikeport
和 rightikeport
选项
在任何主机到主机的Libreswan连接中,Libreswan 忽略了 leftikeport
和rightikeport
选项。因此,Libreswan 使用默认端口,而不考虑 leftikeport
和 rightikeport
设置。目前还没有可用的临时解决方案。
使用带有 IKEv2
的多个标记的 IPsec 连接无法正常工作
当 Libreswan 使用 IKEv2
协议时,IPsec 的安全标签对于多个连接无法正常工作。因此,使用标记的 IPsec 的 Libreswan 只能建立第一个连接,但无法正确建立后续连接。要使用多个连接,请使用 IKEv1
协议。
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)
通过 OpenSC pkcs15-init
的智能卡配置过程无法正常工作
file_caching
选项在默认的 OpenSC 配置中是启用的,文件缓存功能无法正确处理pkcs15-init
工具中的一些命令。因此,通过 OpenSC 进行智能卡置备过程会失败。
要临时解决这个问题,请在 /etc/opensc.conf
文件中添加以下代码段:
app pkcs15-init { framework pkcs15 { use_file_caching = false; } }
只有在应用了前面描述的临时解决方案时,通过 pkcs15-init
进行智能卡配置才能正常工作。
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
中执行命令。
selinux-policy
会阻止 IPsec 在 TCP上工作
RHEL 8.4 中的 libreswan
软件包支持使用 TCP 封装的基于 IPsec 的 VPN。但是,selinux-policy
软件包没有反映这个更新。因此,当将 Libreswan 设置为使用 TCP 时,ipsec
服务将无法绑定到给定的 TCP 端口。
要临时解决这个问题,使用自定义 SELinux 策略:
在文本编辑器中打开一个新的
.cil
文件,例如:# vim local_ipsec_tcp_listen.cil
插入以下规则:
(allow ipsec_t ipsecnat_port_t (tcp_socket (name_bind name_connect)))
- 保存并关闭该文件。
安装策略模块:
# semodule -i local_ipsec_tcp_listen.cil
重启
ipsec
服务:# systemctl restart ipsec
因此,Libreswan 可以绑定并连接到常用的 4500/tcp
端口。
无法使用 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 安全配置集。
rpm_verify_permissions
在 CIS 配置集中失败
rpm_verify_permissions
规则将文件权限与软件包默认权限进行比较。但是,由 scap-security-guide
软件包提供的互联网安全中心(CIS)配置将某些文件权限更改为比默认权限更严格。因此,使用 rpm_verify_permissions
验证某些文件会失败。
要临时解决这个问题,请手动验证这些文件是否具有以下权限:
-
/etc/cron.d
(0700) -
/etc/cron.hourly
(0700) -
/etc/cron.monthly
(0700) -
/etc/crontab
(0600) -
/etc/cron.weekly
(0700) -
/etc/cron.daily
(0700)
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)
某些 SSG 中的规则组可能会失败
由于规则及其依赖项未定义,在基准中修复 SCAP 安全指南
(SSG)规则可能会失败。如果需要以特定顺序执行两个或多个规则,例如,当一条规则安装组件和另一个规则配置同一组件时,它们可按错误的顺序运行,并报告错误。要临时解决这个问题,请执行补救两次,第二次运行会修复依赖规则。
OSCAP Anaconda Addon
不会在文本模式中安装所有软件包
如果安装以文本模式运行,则 OSCAP Anaconda Addon
插件无法修改为系统安装程序安装而选择的软件包列表。因此,当使用 Kickstart 指定安全策略配置集且安装以文本模式运行时,安全策略所需的附加软件包不会在安装过程中安装。
要临时解决这个问题,可以使用图形模式运行安装,或者在 Kickstart 文件的 %packages
部分指定安全策略配置集所需的所有软件包。
因此,在没有描述的一个临时解决方案的情况下,安全策略配置集所需的软件包不会在 RHEL 安装过程中安装,且安装的系统与给定的安全策略配置集不兼容。
OSCAP Anaconda Addon
组件无法正确处理自定义配置集
OSCAP Anaconda Addon
插件无法以独立文件中自定义的方式正确处理安全配置集。因此,即使您在对应的 Kickstart 部分正确指定了自定义配置集,RHEL 图形安装中也不会提供自定义配置集。
要临时解决这个问题,请遵循 从原始 DS 创建单一 SCAP 数据流中的说明,以及一个定制文件 知识库文章。因此,您可以在 RHEL 图形安装中使用自定义的 SCAP 配置集。
(BZ#1691305)
在 kickstart 安装过程中修复与服务相关的规则可能会失败
在 kickstart 安装过程中,OpenSCAP 工具有时会错误地显示服务的 enable
或disable
状态补救不需要。因此,OpenSCAP 可能会将安装的系统上的服务设置为不合规的状态。作为临时解决方案,您可以在 kickstart 安装后扫描并修复该系统。这可以解决与服务相关的问题。
某些 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
因此,当前的配置必须仅限于可正常工作的字符串。
SELinux 审计规则和 SELinux 布尔配置中存在冲突
如果审计规则列表包含一个含有 subj_*
或 obj_*
字段的审计规则,并且 SELinux 布尔值配置发生了变化,那么设置 SELinux 布尔值会导致死锁。因此,系统会停止响应,需要重启才能恢复。要临时解决这个问题,请禁用包含 subj_*
或 obj_*
字段的所有审计规则,或者在修改 SELinux 布尔值前临时禁用这些规则。
随着 RHSA-2021:2168 公告的发布,内核可以正确处理这种情况,不会再死锁。
(BZ#1924230)