第 3 章 对外部内核参数的重要更改
本章为系统管理员提供了与 Red Hat Enterprise Linux 7 附带的内核有显著变化的总结。这些更改包括添加或更新的 proc
条目、sysctl
和 sysfs
默认值、引导参数、内核配置选项或任何明显的行为变化。
新内核参数
- audit = [KNL]
此参数启用审计子系统。
该值可以是 1(启用)也可以是 0(禁用)。默认值为 unset,它不是一个新的选项,但没有包括在之前的文档中。
格式:{ "0" | "1" }
- audit_backlog_limit = [KNL]
此参数设置审计队列大小限制。
默认值为 64。
格式: <int>(必须 >=0)
- ipcmni_extend [KNL]
- 这个参数将唯一的 System V IPC 标识符的最大数量从 32 768 扩展到 16 777 216。
- nospectre_v1 [X86,PPC]
这个参数禁用对 Spectre 变体 1(跳过绑定检查)的缓解方案。
使用这个选项时可能会在系统中泄漏数据。
- tsx = [X86]
这个参数控制支持 TSX 控制的 Intel 处理器中的事务同步扩展(TSX)功能。
这些选项是:
-
on
- 在系统中启用 TSX。虽然对所有已知的安全漏洞都有缓解措施,但以前出现的一些与预测相关的 CVE 是因为 TSX 造成的,因此保留它可能会带来未知的安全风险。 -
off
- 在系统上禁用 TSX。请注意,这个选项只对那些不会受到 Microarchitectural Data Sampling(MDS)影响的新的 CPU 有效。换句话说,它们具有MSR_IA32_ARCH_CAPABILITIES.MDS_NO=1
,并通过 microcode 更新获取新的IA32_TSX_CTRL
Model-specific register (MSR)。这个新的 MSR 可以可靠地取消激活 TSX 地功能。 auto
- 如果X86_BUG_TAA
存在,则禁用 TSX,否则在系统上启用 TSX。不指定这个选项等同于
tsx=on
,因为红帽已隐式启用了 TSX。如需了解更多详细信息,请参阅 TAA - TSX Asynchronous Abort 的文档。
-
- tsx_async_abort = [X86,INTEL]
此参数用来控制对 TSX Async Abort(TAA)漏洞的缓解方案。
与 MDS(Micro-architectural Data Sampling)类似,某些支持 TSX(Transactional Synchronization Extensions)的 CPU 可能会受到 CPU 内部缓冲区的攻击。在某些情况下,利用这个安全漏洞可以将信息转发到披露的 gadget。
在存在安全漏洞的处理器中,缓存侧频道攻击可以利用预测的数据转发,访问到应该无法直接访问到的数据。
这些选项是:
-
full
- 如果启用了 TSX,则在存在安全漏洞的 CPU 上启用 TAA 缓解方案。 -
full,nosmt
- 在存在安全漏洞的 CPU 上启用 TAA 缓解方案,并禁用 Simultaneous Multi Threading (SMT)。如果已禁用了 TSX,则不会禁用 SMT,因为 CPU 不会受到跨线程 TAA 攻击。 off
- 无条件禁用 TAA 缓解方案。在 MDS 受影响的机器上,通过活跃的 MDS 缓解方案可以防止
tsx_async_abort=off
参数,因为这两种漏洞都使用相同的机制缓解。因此,要禁用这个缓解方案,还需要指定mds=off
参数。不指定这个选项等同于
tsx_async_abort=full
。对于受 MDS 影响并实施了 MDS 缓解方案的 CPU 中,则不需要使用 TAA 缓解方案,它并不会提供任何额外的缓解。如需了解更多详细信息,请参阅 TAA - TSX Asynchronous Abort 的文档。
-
更新的内核参数
- mitigations = [X86,PPC,S390]
控制 CPU 漏洞的可选缓解方案。这是一组策展的、架构独立的选项,每个选项都是现有的特定架构选项的聚合。
这些选项是:
off
- 禁用所有可选 CPU 缓解方案。这会提高系统性能,但可能会使用户暴露一些 CPU 漏洞。等同于:
-
nopti [X86,PPC]
-
nospectre_v1 [X86,PPC]
-
nobp=0 [S390]
-
nospectre_v2 [X86,PPC,S390]
-
spec_store_bypass_disable=off [X86,PPC]
-
l1tf=off [X86]
-
mds=off [X86]
-
tsx_async_abort=off [X86]
kvm.nx_huge_pages=off [X86]
例外:
如果
kvm.nx_huge_pages
=forcemitigations=off
对 kvm.nx_huge_pages 参数没有任何影响。
-
auto
(默认)- 缓解所有 CPU 漏洞,但启用 Simultaneous 多线程(SMT),即使它存在安全漏洞。这适用于不希望在内核升级过程中禁用 SMT,或者有其他方法避免 SMT 攻击的用户。等同于:
- (默认行为)
auto,nosmt
- 缓解所有 CPU 漏洞,如果需要,禁用 Simultaneous 多线程(SMT)。这适用于需要实施所有缓解方案的用户,即使这意味着会丢失 SMT 的功能。等同于:
-
l1tf=flush,nosmt [X86]
-
mds=full,nosmt [X86]
-
tsx_async_abort=full,nosmt [X86]
-
新的 /proc/sys/fs 参数
- negative-dentry-limit
这个参数的整数值指定系统中允许的负 dentry 总数(占可用系统内存总量的百分比)的一个软限制。这个值的允许范围为 0-100。值为 0 表示没有限制。数值代表系统内存总量的 0.1% 的倍数。因此,10% 是可以指定的最大值。
在有 32GB 内存的 AMD64 或者 Intel 64 系统中,11% 的限制代表大约一百七十万(1.7M)个 dentry,或每 GB 内存大约有 5.3 万个 dentry。