rhel9_stig
RHEL 9 DISA STIG
Настройка системы на основе RHEL9 для соответствия требованиям DISA STIG
Эта роль основана на DISA STIG для RHEL 9: Версия 1, Релиз 2 выпущен 24 января 2024.
Первоначальный релиз STIG, всё ещё много элементов, которые не полностью соответствуют документации
Ищете поддержку?
Сообщество
Присоединяйтесь к нашему серверу Discord для вопросов, обсуждения функций или просто общения с другими пользователями Ansible-Lockdown.
Настройте систему RHEL/Rocky/Alma 9 для соответствия требованиям DISA STIG. Ненавязчивые находки CAT I, CAT II и CAT III будут исправлены по умолчанию. Для устранения разрушительных находок можно включить настройку, установив rhel9stig_disruption_high
в значение true
.
Обновление
При переходе с предыдущего релиза.
Как и с любыми релизами и обновлениями, рекомендуется протестировать и согласовать настройки. Это включает переписывания и изменения ссылок на идентификаторы согласно документации STIG.
Аудит
Это можно включить или отключить в файле defaults/main.yml с переменной rhel7stig_run_audit. Значение по умолчанию — false, пожалуйста, обратитесь к вики для получения дополнительных деталей. Файл defaults также заполняет проверки goss, чтобы проверять только те настройки, которые были включены в роль ansible.
Это более быстрая и легковесная проверка (где это возможно) соответствия конфигурации и текущих настроек.
Разработан новый метод аудита, который использует небольшой (12МБ) бинарный файл на Go под названием goss вместе с соответствующими конфигурациями для проверки. Это делается без необходимости в инфраструктуре или других инструментах. Этот аудит не только проверит, что конфигурация имеет правильные настройки, но и постарается зафиксировать, работает ли она с этой конфигурацией, стараясь устранить ложные срабатывания в процессе.
Документация
- Читать документацию
- Начало работы
- Настройка ролей
- Конфигурация на уровне хостов
- Максимальное применение роли
Требования
- RHEL/Rocky/AlmaLinux/OL 9 - Другие версии не поддерживаются.
- Другие ОС можно проверить, установив skip_os_check в true для тестирования.
- Доступ для загрузки или добавления двоичного файла goss и контента в систему, если используется аудит. Доступны варианты, как получить контент в систему.
Зависимости
Следующие пакеты должны быть установлены на управляющем хосте / хосте, где выполняется ansible:
- python-lxml
- python-xmltodict
Пакет 'python-xmltodict' необходим, если вы включаете установку инструмента OpenSCAP и запускаете отчет. Все они необходимы на хосте-контроллере, который выполняет Ansible.
Переменные роли
Эта роль разработана таким образом, чтобы конечному пользователю не пришлось редактировать сами задачи. Вся настройка должна выполняться через файл defaults/main.yml или с помощью дополнительных переменных в проекте, задаче, рабочем процессе и т.д.
Теги
Доступно много тегов для повышения точности управления. Каждое правило имеет свой набор тегов, указывающих номер управления, а также те части системы, к которым относится это управление.
Ниже приведен пример секции тегов из правила внутри этой роли. Используя этот пример, если вы установите свой запуск на пропуск всех управляющих элементов с тегом ssh, эта задача будет пропущена. Происходит и наоборот: можно выполнять только управляющие элементы с тегом ssh.
tags:
- RHEL-9-010050
- ssh
- dod_logon_banner
Пример аудита
Это основано на образе vagrant с включенными выборами, например, без графического интерфейса и без межсетевого экрана. Примечание: Во время аудита будет выполнено больше тестов, поскольку мы проверяем конфигурацию и текущие состояния.
ok: [rocky9_efi] =>
msg:
- 'Предварительные результаты: Общее количество: 804, Ошибок: 416, Длительность: 6.488s.'
- 'Результаты после исправления: Общее количество: 804, Ошибок: 28, Длительность: 68.687s.'
- Полное разбитие можно найти в /opt
PLAY RECAP ****************************************************************************************************************
rocky9_efi : ok=482 изменено=269 недоступно=0 ошибка=0 пропущено=207 спасено=0 проигнорировано=0
Ветки
- devel - Это основная ветка и ветка разработки. Сообщество будет отправлять свои изменения в эту ветку.
- main - Это ветка для релизов.
- reports - Это защищенная ветка для наших отчетов о оценке, в нее никогда не должен входить код.
- gh_pages - страницы GitHub.
- все другие ветки - Ветки отдельных участников сообщества.
Контейнеры - тестирование
- system_is_container
По умолчанию установлено значение false в defaults/main.yml. Если обнаружено, что это контейнер или ansible_connection == docker, оно будет преобразовано в значение true. Некоторые проверки будут пропущены, если это значение истинно, так как они не применимы. Другие выполнят подмножество проверок, найденных в vars/is_container.yml, на основе неизмененного образа от вендора.
Неизмененный образ вендора.
- container_vars_file: is_container.yml
Этот файл переменных объединяет проверки в теги, поэтому, если контейнер позже будет иметь ssh, его можно будет снова включить, загрузив альтернативный файл переменных.
Вклад сообщества
Мы приглашаем вас (сообщество) участвовать в этой роли. Пожалуйста, прочитайте правила ниже.
- Ваша работа выполняется в вашей индивидуальной ветке. Убедитесь, что вы подписали все коммиты, которые вы хотите объединить, с помощью GPG.
- Все запросы на объединение от сообщества идут в ветку devel.
- Запросы на объединение в devel подтвердят наличие GPG-подписи, подписанного коммита и функционального теста перед утверждением.
- После того, как ваши изменения будут объединены и завершен более детализированный обзор, авторизованный член объединит ваши изменения в основную ветку для нового релиза.
Тестирование пайплайна
использует:
- ansible-core 2.12
- коллекции ansible - подтягивает последнюю версию на основе файла требований.
- выполняет аудит с использованием ветки devel.
- Это автоматизированный тест, который происходит при запросах на объединение в devel.
Известные проблемы
STIG контроль
- RHEL-09-211035 rngd service - он заменяется, если работает FIPS, смотрите https://bugzilla.redhat.com/show_bug.cgi?id=2208049.
Поддержка
Это в первую очередь проект сообщества и будет управляться как таковой.
Если вы интересуетесь выделенной поддержкой для помощи или предоставления индивидуальных настроек:
Благодарности
Этот репозиторий возник из работы, выполненной Sam Doran.
Дополнения
- makefile - этот файл предназначен исключительно для тестирования и первоначальной настройки.
- pre-commit можно протестировать и запустить из директории.
pre-commit run
Apply the RHEL 9 STIG using ansible
ansible-galaxy install ansible-lockdown/RHEL9-STIG