anthcourtney.cis-amazon-linux

anthcourtney.cis-amazon-linux

构建状态

分支 状态
主分支 构建状态
构建分支 构建状态

开发

我们将只在“主分支”上进行全面测试的更改。

请把你的拉取请求发送到“构建”分支。

我们需要更多社区支持进行更改,更重要的是,测试和审核这些更改。如果你想参与,请联系 AnthChandan

需要完成的主要工作包括

  • CIS 基准 v2.2.0
  • Ansible 2.5 及以上版本
  • 亚马逊Linux 2 LTS

简介

这个 ansible 角色适用于 CIS 亚马逊 Linux 基准 v2.0.0。https://benchmarks.cisecurity.org/tools2/linux/CIS_Amazon_Linux_Benchmark_v2.0.0.pdf

这个角色是在亚马逊 Linux 2016.03 上开发和测试的。它也在亚马逊 Linux 2016.09 上测试成功。

我为什么要使用这个角色?

如果你试图获得对行业公认安全标准(如 PCI DSS、APRA 或 ISO 27001)的合规性,那么你需要证明你已针对所有被评估系统应用了文件记录的加固标准。

如果你正在运行亚马逊 Linux,这个角色旨在为合规性问题提供解决方案的一部分。

注意事项

如果你考虑将这个角色应用于任何服务器,你应该对 CIS 基准(或其他类似基准)有基本了解,并理解其对系统可能产生的影响。

请花时间了解该标准以及可配置的默认值,并在应用于系统之前排除任何项目。

应立即考虑排除(或至少修改相关默认值)的项目示例包括:

  • 3.4.23.4.3,默认情况下仅允许本机访问主机(包括通过 SSH)。

亚马逊 Linux 和 SE Linux

在亚马逊 Linux 中,默认情况下通过 grub 禁用 SElinux。

要启用,请编辑;

/boot/grub/menu.lst

selinux=0 修改为 selinux=1

touch /etc/selinux/config

另外,安装以下软件包以允许 ansible SElinux 模块在主机上运行。

yum install libselinux-python

重启后更改才会生效。

示例剧本

使用此角色的示例剧本如下:

---

- hosts: localhost
  connection: local
  gather_facts: true
  become: yes

  roles:
    - anthcourtney.cis-amazon-linux

一个更高级的示例,包含对默认值的修改,以及排除一些在虚构环境中被认为不必要的基准项目,如下所示:

---

- hosts: localhost
  connection: local
  gather_facts: true
  become: yes

  vars:
    cis_level_1_exclusions:
      - 5.4.4
      - 3.4.2
      - 3.4.3
      - 6.2.13
    cis_pass_max_days: 45
    cis_umask_default: 002

  roles:
    - anthcourtney.cis-amazon-linux

请注意,使用 become: yes 是必要的,因为99%的任务需要特权访问才能执行。

角色变量

请查看 defaults/main.yml 中的变量,可以根据需要进行覆盖。

选项

可以使用标签(及其组合)运行 CIS 标准的特定级别、一个部分或一个个别建议。例如:

  • 仅运行级别 1 的任务
ansible-playbook playbook.yml -t level-1
  • 仅运行第 3 部分的任务
ansible-playbook playbook.yml -t section-3
  • 仅运行任务 1.3.1 和 2.2.10
ansible-playbook playbook.yml -t 1.3.1,2.2.10
  • 仅运行评分任务
ansible-playbook playbook.yml -t scored

限制

目前,仅实施了基准的级别 1 项目。级别 2 项目将在时间允许的情况下添加。

以下检查尚未实施:

  • 3.6.2. 防火墙规则集是特定于环境的。
  • 3.6.3. 防火墙规则集是特定于环境的。
  • 3.6.4. 防火墙规则集是特定于环境的。
  • 3.6.5. 防火墙规则集是特定于环境的。
  • 4.2.1.2. 记录的内容和消息的目的地是特定于环境的。
  • 4.2.2.2. 记录的内容和消息的目的地是特定于环境的。
  • syslog-ng 配置文件的内联编辑被认为过于不精确,最好通过提供的配置文件解决此问题。
  • logrotate 的配置是具体站点的。
  • pam 配置文件的多行编辑被认为过于不精确和危险,最好通过提供的配置文件解决此问题。

兼容性

此角色与以下版本的 Ansible 兼容:

  • 2.3
  • 2.4
  • 2.5
  • 2.6
  • 2.7

此角色未在其他版本的 Ansible 上进行测试。

测试

该角色的开发者应用以下测试流程:

  • 检查角色的语法。请参见 make syntax
  • 对角色运行 ansible-review,并纠正任何被认为合适的警告。请参见 make review
  • 在 docker 容器上应用该角色,使用 Ansible v2.1.3 和 Ansible v2.2。请参见 make test

以下测试已被标记,但尚未实施:

  • 针对 Vagrant mvbcoding/awslinux 镜像测试该角色的应用,使用 Ansible 提供程序。

Lint

请运行 make lint 以确保我们遵循 Ansible 标准。

许可证

MIT。

作者信息

此角色由 Anth Courtney 开发。

欢迎并感谢任何反馈、问题和拉取请求。

关于项目

Implement CIS Amazon Linux V2 Benchmark

安装
ansible-galaxy install anthcourtney.cis-amazon-linux
许可证
mit
下载
13.8k
拥有者