ansible-lockdown.rhel8_stig
RHEL 8 DISA STIG
Настройка системы на базе RHEL 8 для соответствия Disa STIG
Эта роль основана на RHEL 8 DISA STIG: Версия 1, релиз 13, выпущенный 24 января 2024 года.
Ищете поддержку?
Сообщество
На нашем Discord-сервере вы можете задать вопросы, обсудить функции или просто пообщаться с другими пользователями Ansible-Lockdown.
Настройка системы на базе RHEL/Rocky 8 для соответствия DISA STIG.
Некритичные рекомендации CAT I, CAT II и CAT III будут исправлены по умолчанию.
Исправление критичных недочетов можно включить, установив rhel8stig_disruption_high в значение true.
Обновление
Если вы переходите с предыдущей версии.
Как и при всех обновлениях, рекомендуется протестировать и согласовать контролируемые настройки. Это включает изменения переписывания и ссылок, согласно документации STIG.
Аудит
Аудит можно включить или отключить в файле defaults/main.yml с помощью переменной rhel7cis_run_audit. Значение по умолчанию — false. Пожалуйста, обратитесь к вики для получения дополнительных сведений. Файл по умолчанию также содержит проверки goss, чтобы проверять только те контролы, которые были активированы в роли ansible.
Это быстрая и легковесная проверка (где это возможно) на соответствие конфигурации и работающим настройкам.
Разработана форма аудита с использованием небольшого (12 МБ) бинарного файла go под названием goss вместе с соответствующими конфигурациями для проверки. Без необходимости в инфраструктуре или других инструментах. Этот аудит не только проверит, имеет ли конфигурация правильные настройки, но и постарается установить, работает ли она с этой конфигурацией, также стараясь устранить ложные срабатывания в процессе.
Документация
- Читать документацию
- Начало работы
- Настройка ролей
- Настройка на уровне хоста
- Максимальное использование роли
Требования
- RHEL/Rocky/AlmaLinux/OL 8 - Другие версии не поддерживаются.
- Другие операционные системы можно проверить, изменив переменную skip_os_check на true для тестирования.
- Доступ для загрузки или добавления бинарного файла goss и его содержимого в систему, если используется аудит. Есть доступные варианты, как получить содержимое в систему.
Зависимости
На контролирующем хосте/хосте, где выполняется ansible, должны быть установлены следующие пакеты:
- python2-passlib (или просто passlib, если используется python3)
- python-lxml
Пакеты python(2)-passlib требуются для задач с пользовательскими фильтрами или модулями. Все это обязательно на хосте контроллера, который выполняет Ansible.
Переменные роли
Эта роль разработана таким образом, чтобы пользователям не нужно было редактировать сами задачи. Все настройки должны выполняться через файл defaults/main.yml или через дополнительные переменные в рамках проекта, задания, рабочего процесса и т. д.
Теги
Есть много тегов для дополнительного управления. У каждого контроля есть свой набор тегов, указывающих на номер контроля, а также на те части системы, к которым относится этот контроль.
Вот пример секции тегов из контроля в этой роли. Используя этот пример, если вы установите выполнение с пропуском всех контролей с тегом ssh, эта задача будет пропущена. Процесс может пройти и в обратном направлении, когда вы запускаете только контролы с тегом ssh.
tags:
- RHEL-08-010050
- ssh
- dod_logon_banner
Пример итогов аудита
Это основано на образе vagrant с доступными настройками, например, без графического интерфейса или брандмауэра. Примечание: Во время аудита выполняется больше тестов, так как мы проверяем конфигурацию и состояние выполнения.
ok: [rocky8_efi] =>
msg:
- 'Результаты до устранения недочетов: количество: 804, неудачи: 416, продолжительность: 6.488с.'
- 'Результаты после устранения недочетов: количество: 804, неудачи: 28, продолжительность: 68.687с.'
- Полная разбивка доступна в /opt
PLAY RECAP ****************************************************************************************************************
rocky8_efi : ok=482 changed=269 unreachable=0 failed=0 skipped=207 rescued=0 ignored=0
Ветки
- devel - Это ветка по умолчанию и рабочая ветка разработки. Запросы на слияние сообщества будут направлены в эту ветку.
- main - Это ветка релиза.
- reports - Это защищенная ветка для наших отчетов по оценке, никаких кодов сюда не следует направлять.
- gh_pages - страницы GitHub.
- все другие ветки - ветки отдельных членов сообщества.
Контейнеры - тестирование
- system_is_container
Это значение по умолчанию - false в defaults/main.yml. Если обнаружится, что это тип контейнера или ansible_connection == docker, значение будет изменено на true. Некоторые контролы будут пропущены, если это true, поскольку они не применимы. Другие выполняют подмножество контролей, найденных в vars/is_container.yml на основе не измененного изображения, предоставленного поставщиком.
Незначительное измененное изображение поставщика.
- container_vars_file: is_container.yml
Этот файл с переменными запускает контролы, сгруппированные по тегам, поэтому, если у контейнера позже появится ssh, его можно будет снова включить, загрузив альтернативный файл переменных.
Сообщество и вклад
Мы поощряем вас (сообщество) вносить вклад в эту роль. Пожалуйста, ознакомьтесь с правилами ниже.
- Ваша работа выполняется в вашей индивидуальной ветке. Убедитесь, что вы подписали и GPG подписали все коммиты, которые намерены объединить.
- Все запросы на слияние сообщества направляются в ветку devel.
- Запросы на слияние в devel подтвердят наличие GPG подписи, подписания и функционального теста перед одобрением.
- После слияния ваших изменений и завершения более детального обзора уполномоченный участник объединит ваши изменения в основную ветку для нового релиза.
Тестирование пайплайна
использует:
- ansible-core 2.12
- ansible collections - загружает последнюю версию на основе файла требований
- выполняет аудит с использованием ветки разработки
- Это автоматический тест, который проходит при запросах на слияние в devel.
Известные проблемы
Если применять правило stig RHEL-08-040134.
Это повлияет на cloud init в соответствии с багом 1839899.
Поддержка
Это в первую очередь проект сообщества и будет управляться таким образом.
Если вы заинтересованы в специализированной поддержке для помощи или предоставления индивидуальных решений,
Авторы
Этот репозиторий стал результатом работы Sam Doran.
Дополнительные элементы
- makefile - этот файл предназначен исключительно для тестирования и первоначальной настройки.
- pre-commit можно протестировать и запустить из директории
pre-commit run
Благодарности
Огромное спасибо замечательному сообществу и всем его участникам. Особая благодарность и признание оригинальным авторам и поддерживающим.
Josh Springer, Daniel Shepherd, Bas Meijeri, James Cassell, Mike Renfro, DFed, George Nalen, Mark Bolwell
Apply the DISA RHEL 8 STIG
ansible-galaxy install ansible-lockdown.rhel8_stig