Применение рекомендаций CIS#
Использование роли astra.hardening.cis
из реестра Automation Hub позволяет автоматизировать процесс настройки систем защиты ОС Astra Linux Special Edition в соответствии с рекомендациями, изложенными в руководстве «CIS Debian Family Linux Benchmark».
Описание сценария#
Процесс настройки систем безопасности ОС Astra Linux Special Edition с помощью роли astra.hardening.cis
состоит из следующих этапов:
Подготовка проекта Ansible.
Проект включает в себя следующие файлы:
ansible.cfg
– настройки Ansible;inventory.yml
– описание инвентаря;playbooks/cis.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) используется для передачи информации о маршрутизации на другие узлы. Если узел не используется в качестве маршрутизатора, он не должен пересылать пакеты на другие узлы.
Запуск набора сценариев.
Проверка поведения ОС после изменения настроек безопасности.
Подготовка к работе#
Подготовьте окружение к управлению задачами автоматизации:
Настройте управляемые узлы согласно инструкции.
Настройте Private Automation Hub на синхронизацию с Automation Hub.
Загрузите в Private Automation Hub образы среды исполнения
aa-1.2/aa-full-ee
.Изучите описание коллекции
astra.hardening
.Подготовьте каталог для хранения файлов проекта.
Если для управления задачами автоматизации используется Automation Controller, выполните следующие действия:
В одном из сервисов хранения репозиториев Git создайте пустой репозиторий для проекта.
Клонируйте этот репозиторий на локальный компьютер.
Если для управления задачами автоматизации используется Ansible Navigator, создайте в любом удобном месте пустой каталог, например:
mkdir ~/ansible-cis/
Проверка настроек систем защиты по умолчанию#
Для проверки действующих значений параметров систем защиты выполните следующие действия:
Подключитесь к любому управляемому узлу по 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.
Создайте файл
ansible.cfg
со следующим содержимым:ansible.cfg
#[defaults] host_key_checking = false inventory = inventory.yml
Создайте файл инвентаря
inventory.yml
, например:inventory.yml
#--- all: hosts: node1.example.com: ansible_host: 192.168.56.11 ansible_user: vagrant
В этом примере показаны настройки подключения к одному управляющему узлу.
Создайте каталог
playbooks/
, а в нем – набор сценариевcis.yml
:playbooks/cis.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» выполняется через присваивание значения
true
переменным ролиastra.hardening.cis
.Если для запуска заданий автоматизации используется Automation Controller, зафиксируйте сделанные в проекте изменения и опубликуйте их в репозитории Git.
Запуск набора сценариев#
Способ запуска набора сценариев зависит от инструмента. используемого для управления задачами автоматизации.
Для запуска задания автоматизации в Automation Controller выполните следующие действия:
Для доступа к управляемым узлам создайте необходимое количество полномочий типа Машина (Machine).
Если для доступа к репозиторию с кодом проекта требуется авторизация, создайте полномочие типа Система управления версиями (Source Control).
Создайте проект со следующими свойствами:
Название: CIS.
Среда исполнения: выберите среду исполнения, использующую образ
aa-full-ee
.Примечание
Среда исполнения на основе образа
aa-full-ee
используется в Automation Controller по умолчанию. Вы можете добавить среду исполнения самостоятельно, следуя инструкции.Тип системы управления исходными данными: Git.
URL системы управления исходными данными: укажите ссылку на репозиторий с кодом проекта.
Полномочия на систему управления исходными данными: если для доступа к репозиторию с кодом проекта требуется авторизация, выберите созданное ранее полномочие типа Система управления версиями (Source Control).
Создайте обычный инвентарь и добавьте в него сведения об управляемых узлах.
Совет
Вы можете использовать файл
inventory.yml
в качестве источника сведений об управляемых узлах.Создайте шаблон задания со следующими свойствами:
Тип задания: Выполнение.
Инвентарь: выберите инвентарь, созданный на предыдущем шаге.
Проект: выберите проект CIS.
Playbook: выберите файл
playbooks/cis.yml
.
Запустите задание на основе созданного шаблона.
При использовании Ansible Navigator для запуска набора сценариев выполните команду:
ansible-navigator run playbooks/cis.yml \
--eei private-hub.example.com/aa-1.2/aa-full-ee
При этом открывается псевдографический интерфейс, в котором показывается ход выполнения, например:
Для просмотра более подробной информации о ходе выполнения нажмите 0.
Статус задания выводится в правом нижнем углу.
Дождитесь перехода задания в статус Successful
.
Проверка состояния систем защиты#
Чтобы проверить состояние систем защиты после настройки, выполните следующие действия:
Подключитесь к любому из настроенных узлов по 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». Из всей последовательности шагов важно выделить следующие действия:
Проверка состояния систем защиты ОС до и после настройки.
Создание и запуск набора сценариев Ansible, использующего коллекцию
astra.hardening
.