ansible-lockdown.rhel8_stig
RHEL 8 DISA STIG
配置基于 RHEL8 的系统以符合 DISA STIG 要求
此角色基于 RHEL 8 DISA STIG:版本 1,发布 13,发布日期为 2024 年 1 月 24 日。
寻求支持?
社区
在我们的 Discord 服务器 上询问问题,讨论功能,或与其他 Ansible-Lockdown 用户聊天。
配置 RHEL/Rocky 8 系统以符合 DISA STIG 要求。
默认情况下,将自动修正非破坏性的 CAT I、CAT II 和 CAT III 问题。
通过将 rhel8stig_disruption_high 设置为 true 可以启用破坏性问题的修复。
更新
来自先前版本。
与所有版本和更新一样,建议进行测试并对控制进行调整。 根据 STIG 文档,这包含重写和 ID 参考更改。
审计
可以在 defaults/main.yml 文件中通过变量 rhel7cis_run_audit 打开或关闭。默认值为 false,更多详细信息请参考 wiki。默认文件还填充了 goss 检查,仅检查在 ansible 角色中启用的控制。
这是一种快速、非常轻量级的合规性检查(在可能的情况下)配置和正在运行的设置。
开发了一种审计形式,使用一个小的(12MB)go 二进制文件 goss 及相关配置进行检查。无需基础设施或其他工具。 此审计不仅检查配置是否具有正确的设置,还旨在捕获它是否在使用该配置运行,同时努力消除 假阳性。
文档
要求
- RHEL/Rocky/AlmaLinux/OL 8 - 不支持其他版本。
- 其他操作系统可以通过将 skip_os_check 设置为 true 进行测试。
- 如果使用审计,则需要能够下载或添加 goss 二进制文件和内容到系统。关于如何将内容导入系统的选项可用。
依赖
以下软件包必须安装在执行 ansible 的控制主机上:
- python2-passlib(如果使用 python3,只需 passlib)
- python-lxml
软件包 python(2)-passlib 是使用自定义过滤器或模块的任务所需。这些在执行 Ansible 的控制主机上都是必需的。
角色变量
此角色设计为最终用户不必编辑任务本身。所有自定义都应通过 defaults/main.yml 文件或通过额外变量在项目、作业、工作流等中进行。
标签
提供许多标签以增强控制精度。每个控制都有自己的一组标签,标记控制编号以及该控制所涉及的系统部分。
以下是此角色中某个控制的标签部分示例。使用此示例,如果您设置运行以跳过所有带有 ssh 标签的控制,则此任务将被跳过。 也可以发生相反的情况,只运行带有 ssh 标签的控制。
tags:
- RHEL-08-010050
- ssh
- dod_logon_banner
审计摘要示例
这是基于已启用选项的 vagrant 镜像,例如:无 GUI 或防火墙。 注意:由于我们检查配置和运行状态,在审计期间运行的测试更多。
ok: [rocky8_efi] =>
msg:
- '初步修复结果:计数:804,失败:416,时长:6.488秒。'
- '修复后结果:计数:804,失败:28,时长:68.687秒。'
- 完整细节可在 /opt 找到。
PLAY RECAP ****************************************************************************************************************
rocky8_efi : ok=482 changed=269 unreachable=0 failed=0 skipped=207 rescued=0 ignored=0
分支
- devel - 这是默认分支和工作开发分支。社区的拉取请求会合并到这个分支。
- main - 这是发布分支。
- reports - 这是一个受保护的分支,用于我们的评分报告,不能提交代码到这里。
- gh_pages - GitHub 页面。
- 其他分支 - 各个社区成员的分支。
容器 - 测试
- system_is_container
默认设置为 false。 如果发现是容器类型或 ansible_connection == docker,它将转换为 true。 如果为 true,则某些控制将被跳过,因为它们完全不适用。其他控制在 vars/is_container.yml 中运行,基于供应商提供的未修改的映像。
未修改的供应商映像。
- container_vars_file: is_container.yml
此变量文件将在标签中分组控制,因此如果容器后来有了 ssh,可以通过加载替代变量文件重新启用它。
社区贡献
我们鼓励您(社区)为此角色做贡献。请阅读以下规则。
- 您的工作在您自己的个人分支中完成。确保对要合并的所有提交进行签名和 GPG 签名。
- 所有社区拉取请求将合并到 devel 分支。
- 合并到 devel 的拉取请求将确认您的提交具有 GPG 签名、已签署并在批准前经过功能测试。
- 一旦您的更改合并并完成更详细的审查,授权成员将把您的更改合并到 main 分支以进行新发布。
管道测试
使用:
- ansible-core 2.12
- ansible 集合 - 根据要求文件拉取最新版本
- 使用 devel 分支运行审计
- 这是在 devel 分支拉取请求中的自动化测试
已知问题
如果采用 STIG 规则 RHEL-08-040134
这将影响云初始化,具体参见 bug 1839899。
支持
这本质上是一个社区项目,将作为这样的项目进行管理。
如果您对专门的支持服务或定制设置感兴趣
致谢
这个代码库起源于 Sam Doran 的工作。
添加的额外内容
- makefile - 仅用于测试和初始设置目的。
- pre-commit 可以进行测试,并且可以在目录内运行。
pre-commit run
致谢与感谢
感谢出色的社区及其所有成员。 特别感谢原作者和维护者。
Josh Springer, Daniel Shepherd, Bas Meijeri, James Cassell, Mike Renfro, DFed, George Nalen, Mark Bolwell
Apply the DISA RHEL 8 STIG
ansible-galaxy install ansible-lockdown.rhel8_stig