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 Benchmark. https://benchmarks.cisecurity.org/tools2/linux/CIS_Red_Hat_Enterprise_Linux_7_Benchmark_v2.1.1.pdf

Эта роль была разработана и протестирована на Red Hat Linux 7.1, 7.2, 7.3, 7.4, 7.5, 7.6 и 7.7 с использованием стандартных образов AWS AMI. Эта роль также была разработана и протестирована на CentOS 7.4 с использованием стандартных образов AWS AMI.

Почему стоит использовать эту роль?

Если вы пытаетесь достичь соответствия принятым в отрасли стандартам безопасности, таким как PCI DSS, APRA или ISO 27001, то вам нужно продемонстрировать, что вы применили документированные стандарты ужесточения безопасности ко всем системам в области оценки.

Если вы используете Red Hat Linux, то эта роль пытается предоставить одну из частей решения для соблюдения требований.

Осторожно!

Если вы рассматриваете возможность применения этой роли к каким-либо серверам, вам следует иметь базовые знания о CIS Benchmark (или других подобных бенчмарках) и понимать, какое влияние это может оказать на систему.

Пожалуйста, уделите время для ознакомления со стандартом и с настраиваемыми значениями по умолчанию, и исключите любые элементы перед применением их к системе.

Примеры элементов, которые следует сразу рассмотреть для исключения (или, по крайней мере, для изменения значений по умолчанию) включают:

  • 3.4.2 и 3.4.3, которые по умолчанию фактически ограничивают доступ к хосту (включая доступ по ssh) только для localhost.

Пример плейбука

Пример плейбука, который использует эту роль, выглядит следующим образом:

---

- 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. Исходный код этой роли от Эндрю Кортни не имел файла лицензии. Однако meta/main.yml ссылалась на MIT, но README (ниже) упоминала BSD. Не получив обратной связи от Эндрю (через создание проблемы к исходному коду и обращение к Эндрю через LinkedIn), я решил принять MIT лицензию для этой роли.

MIT.

Информация об авторе

Роль была изначально разработана Энтом Кортни.

Эта роль была дополнительно разработана Беном Райтом.

Все отзывы, проблемы и пулл-реквесты приветствуются и оцениваются.

О проекте

Idempotent CIS Benchmarks for RHEL/CentOS Linux V2

Установить
ansible-galaxy install HarryHarcourt/Ansible-RHEL7-CIS-Benchmarks
Лицензия
mit
Загрузки
1091
Владелец