MindPointGroup.ubuntu18_cis

UBUNTU18 CIS

配置 Ubuntu18 机器以符合 CIS 标准

基于 CIS Ubuntu1804 基准 v2.1.0


组织星标 星标  Forks 关注者 Twitter URL

Ansible Galaxy 质量 Discord 徽章

发布分支 发布标签 发布日期

主管道状态

开发管道状态 开发提交

开放问题 关闭问题 拉取请求

许可证


寻求支持?

Lockdown Enterprise

Ansible 支持

社区

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


注意事项

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

不支持检查模式!角色将在检查模式下完成而不会出现错误,但不支持此模式,并应谨慎使用。应使用 UBUNTU18-CIS-Audit 角色或合规扫描器进行合规检查。

该角色是在干净的新操作系统上开发的。如果您在现有系统上实施,请查看该角色以了解所需的网站特定更改。

要使用发布版本,请指定主分支和您希望使用的 CIS 基准的相关发布。


为 CIS 匹配安全级别

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

  • level1_server
  • level1_workstation
  • level2_server
  • level2_workstation

默认的主控件也需要反映此内容,因为它控制如果您使用审计组件进行测试时的检测。

从先前版本迁移

CIS 发布总是包含更改,强烈建议查看新的参考和可用变量。自最初的 ansible-lockdown 发布以来,这些内容已经发生了显著变化。

如果找到了默认解释器,现在已兼容 python3。这会配置系统以满足需求。

更多细节请见 变更日志

审计(新)

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

这是一种快速、非常轻量级的检查(在可能的情况下)配置合规性和运行设置。

开发了一种新的审计形式,通过使用一个小的(12MB)go 二进制文件 goss 及相关的配置进行检查。无需基础设施或其他工具。 此审计不仅检查配置是否具有正确的设置,还旨在捕获它是否也在运行该配置,并尽量消除 误报

请参考 UBUNTU18-CIS-Audit

审计示例总结

这是基于启用选择的 Vagrant 镜像。例如,没有 GUI 或防火墙。 注意:在审计过程中进行的测试更多,因为我们检查配置和运行状态。


ok: [default] => {
    "msg": [
        "修复前结果: ['总持续时间: 5.454s', '计数: 338, 失败: 47, 跳过: 5'].",
        "修复后结果: ['总持续时间: 5.007s', '计数: 338, 失败: 46, 跳过: 5'].",
        "详细总结可以在 /var/tmp 中找到",
        ""
    ]
}

PLAY RECAP *******************************************************************************************************************************************
default                    : ok=270  changed=23   unreachable=0    failed=0    skipped=140  rescued=0    ignored=0

文档

要求

一般要求:

  • 对 Ansible 有基本了解,以下是一些链接,以帮助您入门。如果您对 Ansible 不熟悉,建议查看。

  • 已安装、配置并运行的 Ansible 和/或 Tower。包括所有基础的 Ansible/Tower 配置、所需的包安装,以及基础设施设置。

  • 请阅读该角色中的任务,以了解每个控制项的作用。有些任务是破坏性的,可能会对实时生产系统产生意外后果。同时熟悉 defaults/main.yml 文件中的变量。

技术依赖:

  • 如果使用审计功能,则需访问下载或添加 goss 二进制文件和内容到系统(还有其他选项可用以获取内容到系统)。
  • Python3
  • Ansible 2.10.1+
  • python-def
  • libselinux-python

角色变量

该角色的设计是让最终用户不必编辑任务本身。所有自定义都应该通过 defaults/main.yml 文件或在项目、作业、工作流等中使用的额外变量来完成。

标签

有许多标签可供添加控制精度使用。每个控制都有自己的一组标签,指明级别、是否评分、相关操作系统元素、是否为补丁或审计,以及规则号。

下面是该角色中一个控制的标签部分示例。使用此示例,如果您设置运行时跳过所有带有 services 标签的控制,则此任务将被跳过。反之亦然,您也可以仅运行标记为 services 的控制。

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

社区贡献

我们鼓励社区成员为该角色做出贡献。请遵守以下规则。

  • 您的工作在您自己的个人分支中完成。确保所有提交都经过签署和 GPG 签名,以便合并。
  • 所有社区拉取请求将被合并到 devel 分支。
  • 向 devel 的拉取请求将确认您的提交具有 GPG 签名,并经过签署和功能测试后才能批准。
  • 一旦您的更改被合并并经过更详细的审查,授权成员将把您的更改合并到主分支以进行新版本的发布。

已知问题

cloud0init -由于一个错误,如果 /var 添加了 noexec,此功能将停止工作。 ubtu18cis_rule_1_1_3_3

bug 1839899

管道测试

使用:

  • ansible-core 2.16
  • ansible collections - 根据需求文件拉取最新版本
  • 使用 devel 分支运行审计
  • 这是一个针对合并请求的自动测试

附加内容

  • pre-commit 可以在目录中进行测试并运行
pre-commit run
安装
ansible-galaxy install MindPointGroup.ubuntu18_cis
许可证
mit
下载
998
拥有者
Ansible Lockdown is a security baseline automation project sponsored by Mindpoint Group.