Red Hat Training

A Red Hat training course is available for RHEL 8

5.5.15. 安全性

libselinux-python 只能通过其模块提供

libselinux-python 软件包只包含用于开发 SELinux 应用程序的 Python 2 绑定,它用于向后兼容。因此,通过 dnf install libselinux-python 命令,默认的 RHEL 8 软件仓库不再提供 libselinux-python

要临时解决这个问题,请启用 libselinux-pythonpython27 模块,并使用以下命令安装 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)

libssh 不遵循系统范围的加密策略

libssh 库不遵循系统范围的加密策略设置。因此,当管理员使用 update-crypto-policies 命令更改 crypto 策略级别时,支持的算法集合不会被改变。

要临时解决这个问题,需要使用 libssh 的每个应用程序单独设置一组公告的算法。因此,当系统被设置为 criACY 或 FUTURE 策略级别时,使用 libssh 的应用程序与 OpenSSH 相比的行为不一致。

(BZ#1646563)

某些 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

因此,当前的配置必须仅限于可正常工作的字符串。

(BZ#1679512)

默认日志设置在性能上的负面影响

默认日志环境设置可能会消耗 4 GB 内存甚至更多,当 systemd-journald 使用 rsyslog 运行时,速率限制值的调整会很复杂。

如需更多信息,请参阅 RHEL 默认日志设置对性能的负面影响及环境方案

(JIRA:RHELPLAN-10431)

OpenSCAP rpmverifypackage 无法正常工作

rpmverifypackage 探测调用 chdirchroot 系统调用两次。因此,在使用自定义 Open Vulnerability 和评估语言(OVAL)内容的 OpenSCAP 扫描中使用探测时会出现错误。

要临时解决这个问题,请不要在您的内容中使用 rpmverifypackage_test OVAL 测试,或者仅使用未使用 rpmverifypackage_testscap-security-guide 软件包中的内容。

(BZ#1646197)

SCAP Workbench 无法从定制的配置集生成基于结果的补救方法

当尝试使用SCAP Workbench 工具从自定义配置集生成基于结果的补救角色时,会出现以下错误:

Error generating remediation role .../remediation.sh: Exit code of oscap was 1: [output truncated]

要临时解决这个问题,请使用带有 --tailoring-file 选项的 oscap 命令。

(BZ#1640715)

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)

OpenSCAP rpmverifyfile 无法正常工作

OpenSCAP 扫描程序无法以脱机模式正确更改当前工作目录,并且不使用 OpenSCAP rpmverifyfile 探测中的正确参数调用 fchdir 功能。因此,如果在 SCAP 内容中使用 rpmverifyfile_test,则使用 a oscap-chroot 命令扫描任意文件系统会失败。因此,在上述场景中,oscap-chroot 中止。

(BZ#1636431)

OpenSCAP 不提供虚拟机和容器的离线扫描

重构 OpenSCAP 代码库会导致某些 RPM 探测无法在离线模式下扫描虚拟机和容器文件系统。因此,以下工具已从 openscap-utils 软件包中删除: oscap-vmoscap-chroot。另外,opens cap-containers 软件包已被完全删除。

(BZ#1618489)

不提供容器安全和合规性扫描的实用程序

在红帽企业 Linux 7 中,可使用 the oscap-docker 实用程序扫描基于 Atomic 技术的 Docker 容器。在 Red Hat Enterprise Linux 8 中,Docker 和 Atomic 相关的 OpenSCAP 命令不可用。因此,RHEL 8 当前无法使用, oscap-docker 或等同的工具用于容器的安全性和合规性扫描。

(BZ#1642373)

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

TLS-1.3 协议需要支持 RSA-PSS 签名。如果 PKCS#11 令牌不支持 原始 RSARSA-PSS 签名,则使用 OpenSSL TLS 库的服务器应用程序如果被 PKCS#11 令牌持有,将无法使用 RSA 密钥。因此,TLS 通信将失败。

要临时解决这个问题,请将服务器或客户端配置为使用 TLS-1.2 版本作为可用最高 TLS 协议版本。

(BZ#1681178)

如果 Apache httpd 使用存储在 PKCS#11 设备和 RSA-PSS 证书中的 RSA 私钥,则无法启动

PKCS#11 标准不会区分 RSA 和 RSA-PSS 密钥对象,并为这两者使用 CKK_RSA 类型。但是,OpenSSL 将不同类型的用于 RSA 和 RSA-PSS 密钥。因此,openssl-pkcs11 引擎无法决定为 OpenSSL 提供 PKCS#11 RSA 密钥对象的类型。目前,引擎会将所有 PKCS#11 CKK_RSA 对象的密钥类型设置为 RSA 密钥。当 OpenSSL 将从证书获得的 RSA-PSS 公钥的类型与引擎提供的 RSA 私钥对象中包含的类型进行比较时,则得出不同类型的结果。因此,证书和私钥不匹配。X509_check_private_key() OpenSSL 函数中的检查会返回一个错误。httpd Web 服务器在其启动过程中调用此功能,以检查提供的证书和密钥是否匹配。由于对包含 RSA-PSS 公钥和 PKCS#11 模块中存储的 RSA-PSS 公钥和 RSA 私钥的证书进行这个检查总会失败,所以 httpd 无法开始使用此配置。这个问题没有可用的临时解决方案。

(BZ#1664802)

如果 httpd 使用 ECDSA 私钥,且未存储在 PKCS#11 设备中的对应公钥,则 httpd 无法启动

与 RSA 密钥不同,ECDSA 私钥不一定包含公钥信息。在这种情况下,您无法从 ECDSA 私钥获取公钥。因此,PKCS#11 设备将公钥信息存储在单独的对象中,无论是公钥对象还是证书对象。OpenSSL 期望引擎提供的 EVP_PKEY 结构用于存放公钥信息的私钥。填写要提供给 OpenSSL 的 EVP_PKEY 结构时,openssl-pkcs11 软件包中的引擎会尝试仅从匹配的公钥对象获取公钥信息,并忽略当前的证书对象。

当 OpenSSL 从引擎请求 ECDSA 私钥时,提供的 EVP_PKEY 结构不包含公钥信息,如果 PKCS#11 设备中没有公钥,即使有匹配的证书可用,也是如此。因此,由于 Apache httpd Web 服务器调用 X509_check_private_key()函数( 在其启动进程中要求公钥),httpd 在此情景中无法启动。要临时解决这个问题,使用 ECDSA 密钥将私钥和公钥保存在 PKCS#11 设备中。因此,当 ECDSA 密钥存储在 PKCS#11 设备中时,httpd 会正确启动

(BZ#1664807)

OpenSSH 无法正确处理不匹配标签的密钥的 PKCS #11 URI

OpenSSH 套件可以通过标签识别密钥对。该标签可能会在保存在智能卡中的私钥和公钥上有所不同。因此,使用对象部分(密钥标签)指定 PKCS #11 URI 可以阻止 OpenSSH 在 PKCS #11 中查找适当的对象。

要临时解决这个问题,请指定 PKCS #11 URIs,但没有对象部分。因此,OpenSSH 可以在使用 PKCS #11 URI 引用的智能卡上使用密钥。

(BZ#1671262)

iptables-ebtables 输出不与 ebtables完全兼容

在 RHEL 8 中,sebtables 命令由 iptables-ebtables 软件包提供,其中包含基于 nftables的工具重新实施。此工具具有不同的代码库,其输出在诸多方面有偏差,这些代码可忽略或谨慎设计选择。

因此,在迁移用于解析 ebtables 输出脚本时,需要对脚本进行以下调整:

  • 将 MAC 地址格式化改为固定长度。必要时,在独立的字节值的开始包含一个 0,用于维护每个字段值带有两个字符。
  • 已更改 IPv6 前缀的格式以符合 RFC 4291。斜杠字符后的结尾部分不再包含 IPv6 地址格式的子网掩码,而是一个前缀长度。这个更改只适用于有效的(left-contiguous)掩码,其他更改则仍然以旧格式打印。

(BZ#1674536)

默认情况下,OpenSSH 不支持 curve 25519-sha256

OpenSSH 客户端和服务器的系统范围的加密策略配置中缺少 curve 25519-sha256 SSH 密钥交换算法,即使它符合默认策略级别。因此,如果客户端或服务器使用 curve 25519-sha256,且主机不支持此算法,则连接可能会失败。

要临时解决这个问题,您可以通过修改 OpenSSH 客户端和服务器的 /etc/crypto-policies/back-ends/ 目录中的 openssh.config 和 opensshserver.config 文件来手动覆盖系统范围的加密策略的配置。请注意,这个配置在每次系统范围的加密策略更改中都会被覆盖。如需更多信息,请参阅 update-crypto-policies(8) man page。

(BZ#1678661)

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

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

(BZ#1685470)

与 VMware 托管系统的 SSH 连接无法正常工作

OpenSSH 套件的当前版本在 SSH 数据包中引入了对默认 IP 服务质量(IPQoS)标记的更改,这是 VMware 虚拟化平台无法正确处理的。因此,无法与 VMware 上的系统建立 SSH 连接。

要临时解决这个问题,请在 ssh_config 文件中包含 IPQoS=throughput。因此,与 VMware 托管系统的 SSH 连接可以正常工作。

如需更多信息,请参阅 在 VMWare 工作站中运行的 RHEL 8 无法通过 SSH 连接到其他主机 知识库解决方案。

(BZ#1651763)