第 7 章 在带有 UKI 的公共云平台上配置 RHEL
要确保 Red Hat Enterprise Linux (RHEL)实例具有来自不受信任的存储的安全引导过程,请使用统一内核镜像(UKI)。这适用于公共云平台上的机密虚拟机(CVM)。
7.1. 统一内核镜像概述 复制链接链接已复制到粘贴板!
要在整个引导链中扩展安全引导保护,请使用统一内核镜像(UKI)。
- UKI 组件
统一内核镜像(UKI)是一个统一的可扩展固件接口(UEFI)可移植可执行文件(PE)二进制文件。它整合了 UEFI 环境的操作系统的基本组件。UKI 二进制组件通过包括 initramfs 和内核命令行来扩展安全引导覆盖率。initramfs 是 Linux 启动过程的一部分。内核命令行可让您限制对定义参数的权限。UKI 二进制文件中包含的主要组件有:
-
.linux部分存储 Linux 内核镜像。 -
.initrd部分存储初始 RAM 文件系统initramfs。 -
.cmdline部分存储内核命令行。 -
其他部分,如
.sbat。 - 红帽签名。
- 带有预构建
initramfs的 RHEL UKI 的功能
- 禁止任何恶意代理或组件更改引导链中的任何对象。
-
由于预构建的
initramfs,用户不需要构建其自定义initramfs,从而加快内核安装速度。 -
提供对预构建的
initramfs系统的支持,就像虚拟机(VM)、容器或云实例等所有安装中相似。 -
提供对
x86_64架构的支持。 -
包括
kernel-uki-virt软件包。 - 专为虚拟机和云实例构建。
- 由于引导过程的灵活性降低了英国I 的限制
-
在构建 UKI 时,操作系统供应商会创建
initramfs。因此,列出的内核模块和包括的内核模块是静态的。您可以使用systemd系统和配置扩展来解决这个问题。 - 内核命令行参数是 static,它限制了对不同的实例大小或调试选项的参数。
您可以使用 UKI 命令行扩展来克服这个限制。
- UKI 安全引导过程
要防止您的系统进行未经授权的引导时修改,请使用带统一内核镜像(UKI)的安全引导机制。当在安全引导时使用 UKI 时,系统会验证引导链中的每个组件,以确保系统的完整性并防止恶意代码执行。云中 Red Hat Enterprise Linux (RHEL)的安全引导过程如下:
UEFI 固件 :引导过程从统一可扩展固件接口(UEFI)固件开始。
- 对于引导,Red Hat Enterprise Linux (RHEL) UKI 需要 UEFI 固件,因为不支持旧的基本输入/输出系统(BIOS)固件。
shim 引导装载程序 :使用
shim引导装载程序引导,而不是直接从 UEFI 固件引导 UKI ( PE 二进制文件)。-
shim包括额外的安全机制,如 Machine Owner Key (MOK)和安全引导高级目标(SBAT)。
-
签名验证(Secure Boot UEFI 机制 ):在引导时,
shim读取 UKI 二进制文件,并且安全引导 UEFI 机制验证 UKI 的签名。-
此签名验证针对存储在系统的安全引导 Allowed Signature Database (
db)中的可信密钥、MOK数据库以及shim二进制文件的内置数据库。 - 如果签名密钥有效,则验证通过。
-
此签名验证针对存储在系统的安全引导 Allowed Signature Database (
SBAT 验证 :在签名验证后,
shim引导装载程序会在启动时验证 SBAT 规则。-
在 SBAT 验证过程中,系统会根据
shim引导装载程序中的值对systemd.rhel或linux等组件的生成号进行了比较。.rhel 如果
shim中组件的生成号高于 UKI 中的生成号,则二进制文件会自动丢弃,即使它是由可信密钥签名的。请注意,生成号是 UEFI 应用程序的版本标识符,如
shim和grub。
-
在 SBAT 验证过程中,系统会根据
-
解包和执行 :如果验证通过,则控制从
shim传递给 UKI 中的systemd-stub代码,以继续引导过程。 systemd-stub add-ons :在执行过程中,
systemd-stubunpacks,并提取.cmdline部分的内容、纯文本内核命令行和.initrd部分(用于引导过程的临时根文件系统)。请注意,
systemd-stub读取 UKI 附加组件(也称为 PE 二进制文件),并通过从附加组件附加.cmdline内容来验证其签名以安全地扩展 UKI 的内核命令行。systemd-stub从两个位置读取附加组件:-
全局(独立于UKI)附加组件(来自可扩展固件接口(EFI)系统分区(ESP)上的
/loader/addons/目录中)。 -
ESP 上的
/EFI/Linux/<UKI-name>.extra.d/目录中的 per-UKI 附加组件。
-
全局(独立于UKI)附加组件(来自可扩展固件接口(EFI)系统分区(ESP)上的
控制从
systemd-stub传递给 Linux 内核,操作系统引导过程将继续。从这一刻,使用 UKI 机制的安全引导遵循标准内核引导过程。