ansible_rhel8_cis_benchmarks
HarryHarcourt.Ansible-RHEL8-CIS-Бенчмарки
Вся заслуга принадлежит anthcourtney за оригинальную основу, найденную здесь: https://github.com/anthcourtney/ansible-role-cis-amazon-linux
Эта реализация была адаптирована для Red Hat Enterprise Linux 8.X и CentOS 8.X (заметьте, еще не протестировано).
Эта реализация была сделана идемпотентной во многих местах и продолжает оставаться такой.
Эта реализация позволяет включение и настройку некоторых служб.
CIS Бенчмарк для Linux RHEL. https://benchmarks.cisecurity.org/tools2/linux/CIS_Red_Hat_Enterprise_Linux_7_Benchmark_v2.1.1.pdf
Эта роль была разработана и протестирована на Red Hat Linux 8.0 с использованием AWS AMI: ami-079596bf7a949ddf8
Зачем мне использовать эту роль?
Если вы пытаетесь достичь соответствия общепринятому стандарту безопасности, например, PCI DSS, APRA или ISO 27001, то вам нужно продемонстрировать, что вы применили документированные стандарты защиты ко всем системам в сфере оценки.
Если вы используете Red Hat Linux, то эта роль пытается предоставить один из элементов решения для достижения соответствия.
Будьте осторожны!
Если вы рассматриваете возможность применения этой роли на любых серверах, вам следует иметь базовое представление о CIS Бенчмарке (или других подобных бенчмарках) и понимание влияния, которое это может иметь на систему.
Пожалуйста, уделите время, чтобы ознакомиться со стандартом и с конфигурируемыми значениями по умолчанию, и исключите любые элементы перед применением к системе.
Примеры элементов, которые следует немедленно рассмотреть для исключения (или, по крайней мере, для модификации связанных значений по умолчанию), включают:
3.4.2
и3.4.3
, которые по умолчанию фактически ограничивают доступ к хосту (включая ssh) только до localhost.
Пример плейбука
Пример плейбука, который использует эту роль, выглядит следующим образом:
---
- hosts: localhost
connection: local
gather_facts: true
become: yes
roles:
- Ansible-RHEL8-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-RHEL8-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
Эта роль не была протестирована с другими версиями ansible.
Тестирование
Следующие процессы тестирования применяются разработчиком этой роли:
- Проверяется синтаксис роли. Смотрите
make syntax
. ansible-review
выполняется для роли, и все предупреждения, которые считаются уместными, устраняются. Смотритеmake review
.- Роль применяется к контейнеру Docker с использованием как ansible v2.1.3, так и ansible v2.2. Смотрите
make test
.
Следующие тесты были помечены, но еще не реализованы:
- Тест применения роли к изображению Vagrant
mvbcoding/awslinux
с использованием провиженера ansible.
Лицензия
BSD.
Информация об авторе
Роль первоначально была разработана Anth Courtney.
Эта роль была дополнительно разработана Ben Wright.
Все отзывы, вопросы и запросы на участие приветствуются и оценены.
Idempotent CIS Benchmarks for RHEL/CentOS Linux V2
ansible-galaxy install HarryHarcourt/Ansible-RHEL8-CIS-Benchmarks