第 9 章 可引导镜像的安全性强化和合规性
RHEL 的镜像模式提供了安全合规性功能,并支持需要合规配置的工作负载。但是,强化系统并验证合规性状态与软件包模式不同的过程。
使用 RHEL 的镜像模式的关键部分是创建一个可引导的容器镜像。部署的系统镜像镜像。因此,构建的镜像必须包含安全策略所需的所有软件包和配置设置。
当可引导镜像作为容器运行时,一些强化配置无效。要获得根据安全配置文件完全配置的系统,您必须在裸机或虚拟机中引导镜像,而不是作为容器运行。容器部署的主要区别包括如下:
- 安全配置文件所需的 systemd 服务不在容器中运行,因为 systemd 没有在容器中运行。因此,容器无法遵循相关的策略要求。
-
其他服务不能在容器中运行,尽管它们配置正确。这意味着
oscap会将它们报告为正确配置,即使它们没有运行。 - 合规配置文件定义的配置不强制实施。来自其他软件包或安装脚本的请求可以更改合规性状态。始终检查已安装产品的合规性,并更改 Containerfile 以符合您的要求。
9.1. 构建强化的可引导镜像 复制链接链接已复制到粘贴板!
您可以通过在用于构建可引导容器镜像的 Containerfile 中包含 oscap-im 工具来更轻松地构建强化的可引导镜像。
虽然 oscap-im 可以使用任何 SCAP 内容,但 scap-security-guide 中提供的 SCAP 源数据流经过专门调整和测试,以便与可引导容器兼容。
先决条件
-
container-tools元数据软件包已安装。 - 您知道系统应遵守的基准中的配置文件的 ID。要查找 ID,请参阅 查看配置合规性的配置文件 部分。
流程
创建
Containerfile:FROM registry.redhat.io/rhel10/rhel-bootc:latest # Install OpenSCAP scanner and security content to the image RUN dnf install -y openscap-utils scap-security-guide && dnf clean all # Run scan and hardening RUN oscap-im --profile <profile_ID> /usr/share/xml/scap/ssg/content/ssg-rhel10-ds.xml # Because certain profiles prevent ssh root logins, add a separate sudo user with a password # Alternatively, you can add users with Kickstart, cloud-init, or other methods RUN useradd -G wheel -p "<password_hash>" <admin_user>将
<admin_user>替换为用户名,将<password_hash>替换为所选密码的哈希值。这个
Containerfile执行以下任务:-
安装提供
oscap-im工具的openscap-utils软件包和提供具有安全内容自动化协议(SCAP)内容的数据流的scap-security-guide软件包。 -
为阻止 SSH root 登录的配置文件添加具有
sudoer特权的用户。 - 扫描并修复镜像,以符合所选的配置文件。
-
安装提供
使用当前目录中的
Containerfile构建镜像:$ podman build -t quay.io/<namespace>/<image>:<tag> .
验证
列出所有镜像:
$ podman images REPOSITORY TAG IMAGE ID CREATED SIZE quay.io/<namespace>/<image> <tag> b28cd00741b3 About a minute ago 2.1 GB
后续步骤
您可以使用任何普通的可引导镜像部署方法部署强化的可引导镜像。如需更多信息,请参阅 部署 RHEL bootc 镜像。
但是,部署方法可能会影响目标系统的合规性状态。
-
您可以使用与软件包模式 RHEL 相同的语法和用法,使用
oscap工具来验证镜像模式 RHEL 中运行的系统的合规性。如需更多信息,请参阅配置合规性扫描。