HarryHarcourt.Ansible-RHEL7-CIS-Benchmarks
HarryHarcourt.Ansible-RHEL7-CIS-Benchmarks
所有荣誉归功于anthcourtney,原始框架可以在这里找到: https://github.com/anthcourtney/ansible-role-cis-amazon-linux
该实现已转换为Red Hat Enterprise Linux 7.X(已测试7.1 - 7.7)和CentOS 7.4(已测试7.4 - 7.7,注意CentOS版本低于7.4可能会有SSH问题)。
该实现已在许多地方使得操作是幂等的,并将继续如此。
该实现允许启用和配置一些服务。
CIS RHEL Linux基准。 https://benchmarks.cisecurity.org/tools2/linux/CIS_Red_Hat_Enterprise_Linux_7_Benchmark_v2.1.1.pdf
该角色是在标准的AWS AMI上开发和测试的,适用于Red Hat Linux 7.1、7.2、7.3、7.4、7.5、7.6和7.7。 该角色也在标准的AWS AMI上开发和测试,适用于CentOS 7.4。
我为什么要使用这个角色?
如果您希望符合认可的行业安全标准,如PCI DSS、APRA或ISO 27001,则需要证明您已在所有评估范围内的系统中应用了文档化的加固标准。
如果您正在运行Red Hat Linux,那么这个角色试图为合规性问题提供一个解决方案。
这里有风险!
如果您考虑将此角色应用于任何服务器,您应该对CIS基准(或其他类似基准)有基本了解,并理解它可能对系统的影响。
请花时间熟悉标准及可配置的默认值,并在应用于系统之前排除任何项目。
应立即考虑排除(或至少修改相关默认值)的一些项目示例包括:
3.4.2
和3.4.3
,默认情况下有效地限制了对主机的访问(包括通过ssh)仅限于本地。
示例剧本
使用此角色的示例剧本如下:
---
- hosts: localhost
connection: local
gather_facts: true
become: yes
roles:
- Ansible-RHEL7-CIS-Benchmarks
一个更高级的示例,包括对使用的默认值的修改,以及排除一些在虚拟环境中被认为不必要的基准项,如下所示:
---
- 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:
- Ansible-RHEL7-CIS-Benchmarks
请注意,使用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. 日志记录内容及消息目标的确定与环境相关。
- 4.2.2.3. 直接编辑syslog-ng配置文件被认为不够精确,因此最好通过提供的配置文件解决此问题及其他相关需求。
- 4.2.2.4. 直接编辑syslog-ng配置文件被认为不够精确,因此最好通过提供的配置文件解决此问题及其他相关需求。
- 4.2.2.5. 直接编辑syslog-ng配置文件被认为不够精确,因此最好通过提供的配置文件解决此问题及其他相关需求。
- 4.3. logrotate的配置与站点相关。
- 5.3.2. 多行编辑pam配置文件被认为不够精确且危险,最好通过提供的配置文件解决此问题及其他相关需求。
- 5.3.3. 多行编辑pam配置文件被认为不够精确且危险,最好通过提供的配置文件解决此问题及其他相关需求。
兼容性
该角色与以下版本的ansible兼容:
- 2.0.2
- 2.1.3
- 2.2.0
- 2.3.0
- 2.7.0
- 2.8.x
- 2.9.x
该角色尚未在其他版本的ansible上进行测试。
测试
该角色的开发者应用了以下测试流程:
- 检查角色的语法。见
make syntax
。 - 针对角色运行
ansible-review
,并对任何认为合适的警告进行修复。见make review
。 - 在docker容器上同时使用ansible v2.1.3和ansible v2.2来应用该角色。见
make test
。
以下测试已标记,但尚未实施:
- 测试在Vagrant
mvbcoding/awslinux
镜像上应用该角色,使用ansible提供程序。
许可证
注意:曾经对这个Ansible角色应使用什么许可证产生了一些混淆,该角色的基础来源于Anthony Courtney,但没有许可证文件,meta/main.yml中提到MIT,而README(如下)提到BSD。在没有收到Anthony的反馈(通过对原始来源提出问题并通过LinkedIn联系Anthony)之后,我决定为这个角色采用MIT许可证。
MIT。
作者信息
该角色最初由Anth Courtney开发。
该角色由Ben Wright进一步开发。
欢迎并感谢所有反馈、问题和PR。
Idempotent CIS Benchmarks for RHEL/CentOS Linux V2
ansible-galaxy install HarryHarcourt.Ansible-RHEL7-CIS-Benchmarks