Применение рекомендаций CIS#
Использование роли astra.hardening.cis из реестра Astra Automation Hub позволяет автоматизировать процесс настройки систем защиты ОС Astra Linux Special Edition в соответствии с рекомендациями, изложенными в руководстве «CIS Debian Family Linux Benchmark».
Описание сценария#
Процесс настройки систем безопасности ОС Astra Linux Special Edition с помощью роли astra.hardening.cis
состоит из следующих этапов:
Подготовка проекта Ansible:
requirements.yml
– зависимости;playbook.yml
– сценарий настройки управляемых узлов.
Настройка контроллера на выполнение заданий:
Создание полномочий.
Создание проекта.
Создание инвентаря и записей об управляемых узлах.
Создание шаблона задания.
Запуск задания.
С помощью переменных роли к ОС управляемых узлов применяются настройки, описанные в следующих разделах «CIS Debian Family Linux Benchmark»:
1.8.5 Ensure remote login warning banner is configured properly
Содержимое файла
/etc/issue.net
отображается при попытке удаленного подключения к узлу. Эта информация может быть полезна для разработчиков ПО, но также она может быть использована злоумышленником для выбора инструментальных средств, эксплуатирующих уязвимости ОС определенной версии.Рекомендуется отключить вывод информации о версии ОС при попытках удаленного подключения к узлу.
1.8.6 Ensure local login warning banner is configured properly
Содержимое файла
/etc/issue
отображается при попытке локального входа в систему. Эта информация может быть полезна для разработчиков ПО, но также может быть использована злоумышленником для выбора инструментальных средств, эксплуатирующих уязвимости ОС определенной версии.Рекомендуется отключить вывод информации о версии ОС на экране локального входа в систему.
3.2.1 Ensure packet redirect sending is disabled
Перенаправление ICMP (ICMP Redirects) используется для передачи информации о маршрутизации на другие узлы. Если узел не используется в качестве маршрутизатора, он не должен пересылать пакеты на другие узлы.
Для настройки управляемых узлов используется подключение с применением ключей SSH.
Подготовка к работе#
Подготовьте управляемые узлы к настройке с помощью Ansible:
Обеспечьте доступ к управляемым узлам по SSH.
Разрешите использование
sudo
без ввода пароля.
Проверка настроек систем защиты по умолчанию#
Для проверки действующих значений параметров систем защиты выполните следующие действия:
Подключитесь к любому управляемому узлу по SSH.
Выполните команды, соответствующие выбранным правилам «CIS Debian Family Linux Benchmark»:
1.8.5 Ensure remote login warning banner is configured properly
grep -E -i "(\\\v|\\\r|\\\m|\\\s|$(grep '^ID=' /etc/os-release | cut -d= -f2 | sed -e 's/"//g'))" /etc/issue.net
Эта команда выполняет в файле
/etc/issue.net
поиск строки, позволяющей определить версию ОС. При настройках ОС по умолчанию эта команда возвращает строку:1.8.6 Ensure local login warning banner is configured properly
grep -E -i "(\\\v|\\\r|\\\m|\\\s|$(grep '^ID=' /etc/os-release | cut -d= -f2 | sed -e 's/"//g'))" /etc/issue
Эта команда выполняет в файле
/etc/issue
поиск строки, позволяющей определить версию ОС. При настройках ОС по умолчанию эта команда возвращает строку:3.2.1 Ensure packet redirect sending is disabled
Для получения действующих значений параметров ядра выполните команды:
sudo sysctl net.ipv4.conf.all.send_redirects sudo sysctl net.ipv4.conf.default.send_redirects
При настройках ОС по умолчанию они возвращают следующий набор строк:
Значение
1
означает, что соответствующая функциональность ядра включена.Для поиска значений настроек, хранящихся в конфигурационных файлах, выполните команды:
grep "net\.ipv4\.conf\.all\.send_redirects" /etc/sysctl.conf /etc/sysctl.d/* grep "net\.ipv4\.conf\.default\.send_redirects" /etc/sysctl.conf /etc/sysctl.d/*
При настройках ОС по умолчанию они возвращают следующий набор строк:
В конфигурационных файлах
/etc/sysctl.conf
и/etc/systctl.d/99-sysctl.conf
присутствуют строки, отвечающие за отключение перенаправления пакетов, но они закомментированы.
Для отключения от управляемого узла выполните команду:
exit
Подготовка проекта#
Подготовьте файлы проекта Ansible:
Создайте файл зависимостей Ansible
requirements.yml
:--- collections: - name: astra.hardening type: git version: 0.2.0 source: ssh://git@hub.astra-automation.ru:2222/aa-gca/ARFA/hardening.git
В этом файле указаны параметры подключаемой коллекции:
name
– название коллекции из реестра Astra Automation Hub, в данном случае –astra.hardening
.type
– способ установки. Для установки коллекций из реестра Astra Automation Hub используется Git.version
– версия используемой коллекции,0.2.0
.source
– ссылка на репозиторий Git, в котором хранится коллекция.
Создайте файл playbook
playbook.yml
:--- - name: Apply CIS requirements hosts: all become: true roles: - role: astra.hardening.cis vars: cis_alse_rule_1_8_5: true cis_alse_rule_1_8_6: true cis_alse_rule_3_2_1: true
Здесь выбор правил «CID Debian Family Linux Benchmark» выполняется через присваивание переменным роли
astra.hardening.cis
значенияtrue
.Сделайте код проекта доступным для загрузки в Astra Automation Controller, например, путем публикации проекта на GitFlic или GitHub.
Настройка контроллера#
Авторизуйтесь в Astra Automation Controller и выполните следующие действия:
-
Тип
Цель
Система управления версиями
Astra Automation Hub
Система управления версиями
Репозиторий с кодом проекта
Машина
Управляемые узлы
Создайте проект со следующими характеристиками:
Название (Name) – CIS Demo Project.
Тип системы управления исходными данными (Source Control Type) – Git.
URL системы управления исходными данными (Source Control URL) – укажите ссылку на репозиторий, например:
Полномочия на систему управления исходными данными (Source Control Credential) – выберите созданное ранее полномочие для доступа к Astra Automation Hub.
Создайте обычный инвентарный список с названием CIS Demo Inventory. Добавьте в него сведения об управляемых узлах.
Создайте шаблон задания со следующими характеристиками:
Название (Name) – CIS Demo Job Template.
Тип задания – Выполнение (Run).
Инвентарь (Inventory) – CIS Demo Inventory.
Проект (Project) – CIS Demo Project.
Playbook –
playbook.yml
.Полномочия – полномочие типа «Машина», используемое для доступа к управляемым узлам.
Запустите задание на основе созданного шаблона.
Дождитесь выполнения playbook, это может занять некоторое время.
Важно
По окончании настройки управляемые узлы перезагружаются автоматически.
Убедитесь, что выполнение playbook прошло успешно. Об этом свидетельствуют нулевые значения параметров
unreachable
иfailed
в конце вывода:Параметры
changed
иskipped
показывают количество выполненных и пропущенных задач Ansible соответственно.
Проверка состояния систем защиты#
Чтобы проверить состояние систем защиты, выполните следующие действия:
Подключитесь к любому из настроенных узлов по SSH.
Выполните команды, соответствующие выбранным правилам «CIS Debian Family Linux Benchmark»:
1.8.5 Ensure remote login warning banner is configured properly
grep -E -i "(\\\v|\\\r|\\\m|\\\s|$(grep '^ID=' /etc/os-release | cut -d= -f2 | sed -e 's/"//g'))" /etc/issue.net
После настройки эта команда возвращает пустую строку.
1.8.6 Ensure local login warning banner is configured properly
grep -E -i "(\\\v|\\\r|\\\m|\\\s|$(grep '^ID=' /etc/os-release | cut -d= -f2 | sed -e 's/"//g'))" /etc/issue
После настройки эта команда возвращает пустую строку.
3.2.1 Ensure packet redirect sending is disabled
Для определения значений действующих параметров ядра выполните команду:
sudo sysctl net.ipv4.conf.all.send_redirects sudo sysctl net.ipv4.conf.default.send_redirects
После настройки эти команды возвращают следующий набор строк:
Значение параметров, равное
0
, свидетельствует о том, что пересылка пакетов выключена путем изменения параметров ядра.Для поиска значений настроек, хранящихся в конфигурационных файлах, выполните команды:
grep "net\.ipv4\.conf\.all\.send_redirects" /etc/sysctl.conf /etc/sysctl.d/* grep "net\.ipv4\.conf\.default\.send_redirects" /etc/sysctl.conf /etc/sysctl.d/*
После настройки эти команды возвращают следующий набор строк:
Отсюда следует, что для хранения необходимых параметров в каталоге
/etc/sysctl.d/
создан конфигурационный файл999-astra.conf
, в который добавлены следующие строки:Содержимое файлов
/etc/sysctl.conf
и/etc/sysctl.d/99-sysctl.conf
при этом не изменилось.
Для отключения выполните команду:
exit
Особенности проекта#
Обратите внимание на следующие особенности проекта:
Порядок подключения коллекции.
Настройка параметров роли
astra.hardening.cis
.Способы получения информации о параметрах систем безопасности ОС до и после настройки.
Заключение#
В этом сценарии вы познакомились с основными шагами по настройке систем безопасности ОС Astra Linux Special Edition в соответствии с рекомендациями, изложенными в «CIS Debian Family Linux Benchmark». Из всей последовательности шагов важно выделить следующие действия:
Проверка состояния систем защиты ОС до и после настройки.
Настройка систем безопасности путем присваивания соответствующих значений переменным роли
astra.hardening.cis
.