rhel7_stig
RHEL 7 DISA STIG
Настройка системы на базе RHEL7 для соответствия стандартам DISA STIG
Эта роль основана на RHEL 7 DISA STIG: Версия 3, Релиз 13, выпущенная 23 октября 2023 года.
Нужна поддержка?
Сообщество
Присоединяйтесь к нашему Discord серверу, чтобы задавать вопросы, обсуждать функции или просто общаться с другими пользователями Ansible-Lockdown.
Настройте систему RHEL 7 для соответствия DISA STIG.
Неснижаемые находки CAT I, CAT II и CAT III будут исправлены по умолчанию.
Исправление нарушений, имеющих разрушительный характер, можно включить, установив rhel7stig_disruption_high
в true
.
Предостережения
Эта роль вносит изменения в систему, которые могут иметь непредвиденные последствия. Это не инструмент аудита, а инструмент исправления, который следует использовать после проведения аудита.
Режим проверки не поддерживается! Роль завершится в режиме проверки без ошибок, но это не поддерживается и должно использоваться с осторожностью. Для проверки соответствия следует использовать роль RHEL7-STIG-Audit или сканер соответствия.
Эта роль разработана для чистой установки операционной системы. Если вы применяете её к существующей системе, пожалуйста, ознакомьтесь с этой ролью на предмет необходимых изменений.
Чтобы использовать релизную версию, укажите основную ветку и соответствующий релиз для выбранного вами стандарта.
Обновление
Из предыдущего релиза.
Как и с любыми релизами и обновлениями, рекомендуется тестировать и настраивать управления. Это содержит переписывания и изменения ссылок на идентификаторы в соответствии с документацией STIG.
- Хэш пароля
- Если применяется, необходимо указать пароль grub и обновить переменные.
- Теперь он больше не пытается создать хэш.
Дополнительную информацию можно найти в ChangeLog.
Аудит (новое)
Эту функцию можно включить или выключить в файле defaults/main.yml с помощью переменной run_audit. Значение по умолчанию - false, пожалуйста, обратитесь к вики для получения дополнительной информации.
Это намного более быстрая и легковесная проверка (где это возможно) на соответствие конфигурации и текущих настроек.
Новая форма аудита была разработана с использованием небольшого (12 МБ) бинарного файла go под названием goss вместе с соответствующими конфигурациями для проверки. Без необходимости в инфраструктуре или других инструментах. Этот аудит будет проверять не только правильность настроек конфигурации, но и стремится зафиксировать, работают ли они с этой конфигурацией, также пытаясь убрать ложные срабатывания в процессе.
Смотрите
Документация
- Читать Документы
- С чего начать
- Кастомизация ролей
- Конфигурация на отдельный хост
- Как получить максимум от роли
Требования
RHEL 7 или CentOS 7 - Другие версии не поддерживаются. Доступ для загрузки или добавления бинарного файла goss и контента в систему, если используется аудит. Доступны варианты для получения контента в систему.
Зависимости
Следующие пакеты должны быть установлены на управляющем хосте/хосте, где выполняется ansible:
- Python3 (предпочтительно)
- Ansible 2.9+
- python2-passlib (или просто passlib, если используется python3)
- python-lxml
- python-xmltodict
- python-jmespath
Пакет 'python-xmltodict' необходим, если вы включаете установку инструмента OpenSCAP и выполняете отчет. Пакеты python(2)-passlib и python-jmespath требуются для задач с пользовательскими фильтрами или модулями. Все эти пакеты обязательны для контроллера, который выполняет Ansible.
Переменные роли
Эта роль разработана так, чтобы конечному пользователю не нужно было редактировать сами задачи. Все настройки должны быть выполнены через файл defaults/main.yml или с помощью дополнительных переменных в проекте, задаче, рабочем процессе и т.д.
Теги
Существует много тегов для точного контроля. У каждого контроля есть свой набор тегов, указывающих номер контроля и соответствующие части системы.
Ниже приведен пример секции тегов из одного контроля в этой роли. Используя этот пример, если вы установите выполнение пропустить все контроли с тегом dconf, эта задача будет пропущена. Обратное также возможно - вы можете запускать только контролли с тегом dconf.
tags:
- RHEL-07-010060
- CAT2
- CCI-000056
- SRG-OS-000028-GPOS-00009
- SV-204396r880746_rule
- V-204396
- dconf
Пример сводки аудита
Это основано на образе vagrant с включенными настройками. например, без графического интерфейса и iptables.
Примечание: во время аудита выполняется больше тестов, так как мы проверяем конфигурацию и текущее состояние.
ok: [cent7_bios] => {
"msg": [
"Результаты до исправления: Всего: 505, Неудач: 214, Время: 14.808s.",
"Результаты после исправления: Всего: 505, Неудач: 34, Время: 43.593s.",
"Полный анализ можно найти в /opt",
""
]
}
]
}
PLAY RECAP ****************************************************************************************************************
rhel7test : ok=369 changed=192 unreachable=0 failed=0 skipped=125 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, он может быть снова включен, загрузив альтернативный файл переменных.
Обратите внимание
- Это устанавливает пароль единственного пользователя для grub, который необходимо задать - вы можете создать хэш на системе RHEL 7.9 с помощью команды 'grub2-mkpasswd-pbkdf2'.
- Некоторые контроли вносят изменения в sudo, пожалуйста, убедитесь, что у пользователя установлен пароль sudo и он добавлен в способ выполнения вашего плейбука.
Вклад сообщества
Мы призываем вас (сообщество) вносить вклад в эту роль. Пожалуйста, прочитайте правила ниже.
- Ваша работа выполняется в вашей индивидуальной ветке. Убедитесь, что все коммиты, которые вы собираетесь объединить, подписаны и проставлены GPG подписью.
- Все пулл-реквесты сообщества объединяются в ветку devel.
- Пулл-реквесты в devel подтвердят наличие GPG подписи на ваших коммитах, их подписывание и функциональное тестирование перед утверждением.
- После того как ваши изменения будут объединены и будет завершен более детальный обзор, уполномоченный участник объединит ваши изменения в основную ветку для нового релиза.
Тестирование пайплайна
использует:
- ansible-core 2.12
- коллекции ansible - загружает последнюю версию на основе файла требований
- выполняет аудит, используя ветку devel
- Это автоматизированное тестирование, которое происходит при пулл-реквестах в devel.
Известные проблемы
Нет
Поддержка
Это проект сообщества в своей основе и будет управляться соответственно.
Если вам нужна специализированная поддержка или помощь в предоставлении индивидуальных настроек
Дополнительные особенности
pre-commit run
Благодарности
Этот репозиторий возник из работы Сэма Дорана.
Огромная благодарность фантастическому сообществу и всем его участникам.
Среди них большая благодарность и признание оригинальным авторам и модераторам.
- Джош Спрингер, Даниэль Шепард, Бас Мейери, Джеймс Кассель, Майк Ренфро, DFed, Джордж Нален, Марк Болвелл
Apply the DISA RHEL 7 STIG
ansible-galaxy install ansible-lockdown/RHEL7-STIG