rhel9_cis
RHEL 9 CIS
Настройка машины RHEL 9 для соответствия стандарту CIS
На основе CIS RedHat Enterprise Linux 9 Benchmark v1.0.0 - 30.11.2022
Ищете поддержку?
Сообщество
Присоединяйтесь к нашему Discord-серверу, чтобы задать вопросы, обсудить функции или просто пообщаться с другими пользователями Ansible-Lockdown.
Участие
Проблемы и запросы на слияние приветствуются, пожалуйста, убедитесь, что все коммиты подписаны и имеют GPG-подпись. Смотрите Руководство по участию.
Осторожно
Эта роль внесет изменения в систему, которые могут иметь непредвиденные последствия. Это не инструмент аудита, а инструмент исправления, который используется после проведенного аудита.
Режим проверки не поддерживается! Роль будет завершена в режиме проверки без ошибок, но это не поддерживается и должно использоваться осторожно. Роль RHEL8-CIS-Audit или сканер соответствия должен использоваться для проверки соответствия вместо режима проверки.
Эта роль была разработана для чистой установки операционной системы. Если вы применяете к существующей системе, пожалуйста, проверьте эту роль на наличие каких-либо необходимых изменений для вашего сайта.
Чтобы использовать версию релиза, укажите ветку main
и соответствующий релиз для стандарта CIS, с которым вы хотите работать.
Соответствие уровню безопасности для CIS
Можно запускать только уровни 1 или 2 контроля для CIS. Это управляется с помощью тегов:
- level1-server
- level1-workstation
- level2-server
- level2-workstation
Контроль, найденный в основном файле defaults
, также должен отражать это, так как этот контроль выполняется при использовании компонента аудита.
Переход с предыдущей версии
Релизы CIS всегда содержат изменения, настоятельно рекомендуется просмотреть новые ссылки и доступные переменные. Это значительно изменилось с момента первоначального релиза ansible-lockdown. Теперь это совместимо с python3, если он является интерпретатором по умолчанию. Это требует наличия необходимых условий, которые настраивают систему соответствующим образом.
Дополнительные сведения можно увидеть в Changelog.
Аудит (новое)
Эта функция может быть включена или выключена в файле defaults/main.yml
с помощью переменных setup_audit
и run_audit
. Значение по умолчанию - false
. Пожалуйста, обратитесь к вики для получения дополнительных сведений. Файл по умолчанию также заполняет проверки goss, чтобы проверять только те контроли, которые были включены в роль Ansible.
Это намного быстрее, очень легковесная проверка (где возможно) соответствия конфигурации и активных настроек.
Новая форма аудита была разработана с использованием небольшого (12 МБ) бинарного файла на Go под названием goss вместе с соответствующими конфигурациями для проверки без необходимости в инфраструктуре или других инструментах. Этот аудит проверяет не только правильность настроек конфигурации, но и пытается установить, работает ли она с этой конфигурацией, стараясь исключить ложные срабатывания в процессе.
Смотрите RHEL9-CIS-Audit.
Документация
Требования
RHEL 9
Almalinux 9
Rocky 9
OracleLinux 9
- Доступ для загрузки или добавления бинарного файла goss и контента на систему, если используется аудит (доступны другие варианты, как доставить контент на систему).
CentOS stream - хотя это обычно работает, это не поддерживается и требует установки следующей переменной:
os_check: false
Общие требования:
Базовые знания Ansible; ниже приведены несколько ссылок на документацию Ansible, чтобы помочь вам начать, если вы не знакомы с Ansible:
Установленный и работающий Ansible и/или Tower. Это включает в себя все базовые конфигурации Ansible/Tower, необходимые пакеты и настройку инфраструктуры.
Пожалуйста, внимательно просмотрите задачи в этой роли, чтобы понять, что делает каждый контроль. Некоторые задачи могут быть разрушительными и иметь непредвиденные последствия в работающей производственной системе. Также ознакомьтесь с переменными в файле defaults/main.yml.
Технические зависимости:
- Python3
- Ansible 2.10+
- python-def (должен быть включен в RHEL 9)
- libselinux-python
- пакеты pip
- jmespath
- коллекции, найденные в файле collections/requirements.yml
pre-commit доступен, если он установлен на вашем хосте для тестирования запросов на слияние.
Переменные роли
Эта роль разработана так, чтобы конечному пользователю не пришлось редактировать задачи самостоятельно. Все настройки должны выполняться путем переопределения необходимых переменных, как указано в файле defaults/main.yml, например, с использованием inventory, group_vars, extra_vars.
Теги
Существует множество тегов для повышения точности контроля. Каждый контроль имеет свой набор тегов, указывающих, какой это уровень, оценен ли он или нет, к какому элементу ОС он относится, является ли он патчем или аудитом и под каким номером правила.
Ниже приведен пример секции тегов из контрола в этой роли. Используя этот пример, если вы зададите выполнение с пропуском всех контролей с тегом services, эта задача будет пропущена. Происходит и обратное: вы можете запускать только контроли, помеченные тегом services.
tags:
- level1-server
- level1-workstation
- scored
- avahi
- services
- patch
- rule_2.2.4
Участие сообщества
Мы поощряем вас (сообщество) участвовать в этой роли. Пожалуйста, прочитайте правила ниже.
- Ваша работа выполняется в вашей индивидуальной ветке. Убедитесь, что все ваши коммиты подписаны и имеют GPG-подпись.
- Все запросы на слияние сообщества поступают в ветку devel.
- Запросы на слияние в devel подтвердят наличие GPG-подписи ваших коммитов, подписи и теста функциональности перед утверждением.
- После того, как ваши изменения будут объединены и будет завершен более детальный обзор, уполномоченный член объединит ваши изменения в основную ветку для нового релиза.
Известные проблемы
CIS 1.2.4 - проверка repo_gpgcheck не выполняется для хостов RedHat, так как в стандартных репозиториях этой функции нет. Это также затрагивает EPEL (не покрывается переменной). - Rocky и Alma не затрагиваются. Используемая переменная для отмены. rhel9cis_rhel_default_repo: true # установить в false, если используете репозиторий, который имеет эту возможность.
Тестирование пайплайна
использует:
- ansible-core 2.12
- коллекции ansible - подтягивает последнюю версию на основе файла требований
- Выполняет аудит с использованием ветки devel
- Запускает настройку pre-commit на PR, чтобы убедиться, что все в порядке.
- Это автоматический тест, который выполняется на запросах на слияние в devel.
Локальное тестирование
Ansible
- ansible-base 2.10.17 - python 3.8
- ansible-core 2.13.4 - python 3.10
- ansible-core 2.15.1 - python 3.11
Дополнительные материалы
- makefile - это предназначено исключительно для тестирования и первоначальной настройки.
- pre-commit можно протестировать и запустить из каталога
pre-commit run
Благодарности
Основывается на оригинальной концепции Сэма Дорана.
Огромная благодарность замечательному сообществу и всем его участникам.
Особая благодарность и признание оригинальным авторам и сопровождающим.
Марка Болуэлла, Джорджу Налену, Стиву Уильямсу, Фреду Уитти
Apply the RHEL 9 CIS
ansible-galaxy install ansible-lockdown/RHEL9-CIS