ansible-lockdown.rhel9_cis

RHEL 9 CIS

配置 RHEL 9 机器以符合 CIS 标准

基于 CIS RedHat Enterprise Linux 9 基准 v1.0.0 - 2022年11月30日


组织星标 星标 分叉 关注者 Twitter URL

Ansible Galaxy 质量 Discord 徽章

发行分支 发行标签 发行日期

主管道状态

开发管道状态 开发提交

打开的问题 关闭的问题 拉取请求

许可证


寻求支持?

Lockdown Enterprise

Ansible 支持

社区

加入我们的 Discord 服务器,提出问题、讨论功能或与其他 Ansible-Lockdown 用户聊天。

贡献

欢迎提出问题和拉取请求,请确保所有提交都已签名和 GPG 签名。 请参考 贡献指南


注意事项

此角色 将对系统进行更改,可能会产生意外后果。这不是审计工具,而是用于审计后进行修复的工具。

不支持检查模式!该角色在检查模式下完成不会报错,但不被支持,使用时应谨慎。可使用 RHEL8-CIS-Audit 角色或合规扫描器进行合规性检查。

该角色是在操作系统的干净安装上开发的。如果您在现有系统上实施,请查看该角色以了解是否需要任何特定于站点的更改。

要使用发行版本,请指向 main 分支及您希望使用的 CIS 基准的相关发行版本。


匹配 CIS 的安全级别

可以仅运行 CIS 的级别 1 或级别 2 控制。 这通过标签进行管理:

  • level1-server
  • level1-workstation
  • level2-server
  • level2-workstation

defaults 主文件中找到的控制也需要反映这一点,因为该控制是如果您使用审计组件时进行的测试。

来自先前版本的更改

CIS 版本总是包含更改,建议您查看新引用和可用变量。自 ansible-lockdown 初始发行以来,变化显著。 如果发现是默认解释器,则现在与 python3 兼容。这需要一些先决条件,以相应地配置系统。

详细信息请参见 变更日志

审计(新)

可以在 defaults/main.yml 文件中通过变量 setup_auditrun_audit 开启或关闭。默认值为 false。有关更多详细信息,请参阅维基。默认文件还填充了 goss 检查,仅检查已在 ansible 角色中启用的控制。

这是一种更快、更轻量的检查(在可能的情况下)配置合规性和实时/运行设置的方法。

使用一个称为 goss 的小型(12MB)go 二进制文件及相关配置创建了一种新的审计形式,可以无需基础设施或其他工具进行检查。 该审计不仅检查配置是否具有正确的设置,还旨在捕获其是否正在以该配置运行,并尝试在此过程中消除 假阳性

请参考 RHEL9-CIS-Audit

文档

要求

RHEL 9 Almalinux 9 Rocky 9 OracleLinux 9

  • 如果使用审计,需要访问下载或添加 goss 二进制文件和内容到系统(还有其他方法可以将内容添加到系统)。

CentOS stream - 虽然通常可以工作,但不受支持,并且需要设置以下变量:

os_check: false

一般要求:

  • 对 Ansible 有基本了解,以下是一些链接,可帮助您入门,如不熟悉 Ansible

  • 要求已经安装、配置并运行执行的 Ansible 和/或 Tower。这包括所有基础 Ansible/Tower 配置、所需软件包的安装和基础设施的设置。

  • 请通读本角色中的任务,以了解每个控制正在做什么。某些任务是破坏性的,可能对实时生产系统产生意外后果。也要熟悉 defaults/main.yml 文件中的变量。

技术依赖:

  • Python3
  • Ansible 2.10+
  • python-def(应包含在 RHEL 9 中)
  • libselinux-python
  • pip 软件包
    • jmespath
  • 在 collections/requirements.yml 中找到的集合

如果在您的主机上安装了 pre-commit,可以进行拉取请求测试。

角色变量

该角色设计为最终用户不必编辑任务本身。所有自定义应通过覆盖 defaults/main.yml 文件中找到的所需变量来完成。例如使用 inventory、group_vars、extra_vars。

标签

有许多标签可用于增加控制的精确性。每个控制都有自己的一组标签,标明级别、是否评分、有关的操作系统元素、是否为修补程序或审计,以及规则编号。

以下是角色中某个控制的标签部分示例。使用这个示例,如果您设置运行以跳过所有带有标签 services 的控件,这个任务将会被跳过。相反,您也可以仅运行带有 services 标签的控件。

      tags:
      - level1-server
      - level1-workstation
      - scored
      - avahi
      - services
      - patch
      - rule_2.2.4

社区贡献

我们鼓励您(社区)为此角色作出贡献。请阅读以下规则。

  • 您的工作在您自己的单独分支中完成。确保对所有您想合并的提交进行签名和 GPG 签名。
  • 所有社区的拉取请求被拉入 devel 分支。
  • 拉取请求进入 devel 时,将确认您的提交具有 GPG 签名、已签名,并在获得批准之前经过功能测试。
  • 一旦您的更改合并并完成更详细的审核,授权成员将把您的更改合并到主分支以进行新版本发布。

已知问题

CIS 1.2.4 - 对于 RedHat 主机,不执行 repo_gpgcheck,因为默认仓库没有此功能。这也影响 EPEL(不受 var 覆盖)。 - Rocky 和 Alma 不受影响。 使用的变量以取消设置。 rhel9cis_rhel_default_repo: true # 如果使用具有此功能的仓库,则应设置为 false

管道测试

使用:

  • ansible-core 2.12
  • ansible collections - 根据要求文件拉取最新版本
  • 使用 devel 分支运行审计
  • 对 PR 运行 pre-commit 设置,以确保一切按预期就位。
  • 这是一项自动化测试,发生在对 devel 的拉取请求中。

本地测试

  • Ansible

    • ansible-base 2.10.17 - python 3.8
    • ansible-core 2.13.4 - python 3.10
    • ansible-core 2.15.1 - python 3.11

附加内容

  • makefile - 仅用于测试和初始设置目的。
  • pre-commit 可以进行测试,可以在目录内运行
pre-commit run

感谢和致敬

基于 Sam Doran 的原始概念

特别感谢出色的社区及其所有成员。

这包括对原始作者和维护者的巨大感谢和致敬。

Mark Bolwell, George Nalen, Steve Williams, Fred Witty

安装
ansible-galaxy install ansible-lockdown.rhel9_cis
许可证
mit
下载
9k
拥有者
Ansible Lockdown is a security baseline automation project sponsored by Mindpoint Group.