Применение рекомендаций CIS#

Использование роли astra.hardening.cis из реестра Automation Hub позволяет автоматизировать процесс настройки систем защиты ОС Astra Linux Special Edition в соответствии с рекомендациями, изложенными в руководстве «CIS Debian Family Linux Benchmark».

Описание сценария#

Процесс настройки систем безопасности ОС Astra Linux Special Edition с помощью роли astra.hardening.cis состоит из следующих этапов:

  1. Подготовка проекта 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) используется для передачи информации о маршрутизации на другие узлы. Если узел не используется в качестве маршрутизатора, он не должен пересылать пакеты на другие узлы.

  2. Запуск набора сценариев.

  3. Проверка поведения ОС после изменения настроек безопасности.

Подготовка к работе#

Подготовьте окружение к управлению задачами автоматизации:

  1. Настройте управляемые узлы согласно инструкции.

  2. Настройте Private Automation Hub на синхронизацию с Automation Hub.

  3. Загрузите в Private Automation Hub образы среды исполнения aa-1.2/aa-full-ee.

  4. Изучите описание коллекции astra.hardening.

  5. Подготовьте каталог для хранения файлов проекта.

    Если для управления задачами автоматизации используется Automation Controller, выполните следующие действия:

    1. В одном из сервисов хранения репозиториев Git создайте пустой репозиторий для проекта.

    2. Клонируйте этот репозиторий на локальный компьютер.

    Если для управления задачами автоматизации используется Ansible Navigator, создайте в любом удобном месте пустой каталог, например:

    mkdir ~/ansible-cis/
    

Проверка настроек систем защиты по умолчанию#

Для проверки действующих значений параметров систем защиты выполните следующие действия:

  1. Подключитесь к любому управляемому узлу по SSH.

  2. Выполните команды, соответствующие выбранным правилам «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 поиск строки, позволяющей определить версию ОС. При настройках ОС по умолчанию эта команда возвращает строку:

      Astra Linux 1.8.2
      
    • 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 поиск строки, позволяющей определить версию ОС. При настройках ОС по умолчанию эта команда возвращает строку:

      Astra Linux 1.8.2 \n \l
      
    • 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
      

      При настройках ОС по умолчанию они возвращают следующий набор строк:

      net.ipv4.conf.all.send_redirects = 1
      net.ipv4.conf.default.send_redirects = 1
      

      Значение 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:#net.ipv4.conf.all.send_redirects = 0
      /etc/sysctl.d/99-sysctl.conf:#net.ipv4.conf.all.send_redirects = 0
      

      В конфигурационных файлах /etc/sysctl.conf и /etc/systctl.d/99-sysctl.conf присутствуют строки, отвечающие за отключение перенаправления пакетов, но они закомментированы.

  3. Для отключения от управляемого узла выполните команду:

    exit
    

Подготовка проекта Ansible#

Подготовьте ресурсы, необходимые для использования Ansible.

  1. Создайте файл ansible.cfg со следующим содержимым:

    ansible.cfg#
    [defaults]
    host_key_checking = false
    inventory = inventory.yml
    
  2. Создайте файл инвентаря inventory.yml, например:

    inventory.yml#
    ---
    all:
      hosts:
        node1.example.com:
          ansible_host: 192.168.56.11
          ansible_user: vagrant
    

    В этом примере показаны настройки подключения к одному управляющему узлу.

  3. Создайте каталог 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.

  4. Если для запуска заданий автоматизации используется Automation Controller, зафиксируйте сделанные в проекте изменения и опубликуйте их в репозитории Git.

Запуск набора сценариев#

Способ запуска набора сценариев зависит от инструмента. используемого для управления задачами автоматизации.

Для запуска задания автоматизации в Automation Controller выполните следующие действия:

  1. Для доступа к управляемым узлам создайте необходимое количество полномочий типа Машина (Machine).

  2. Если для доступа к репозиторию с кодом проекта требуется авторизация, создайте полномочие типа Система управления версиями (Source Control).

  3. Создайте проект со следующими свойствами:

    • Название: CIS.

    • Среда исполнения: выберите среду исполнения, использующую образ aa-full-ee.

      Примечание

      Среда исполнения на основе образа aa-full-ee используется в Automation Controller по умолчанию. Вы можете добавить среду исполнения самостоятельно, следуя инструкции.

    • Тип системы управления исходными данными: Git.

    • URL системы управления исходными данными: укажите ссылку на репозиторий с кодом проекта.

    • Полномочия на систему управления исходными данными: если для доступа к репозиторию с кодом проекта требуется авторизация, выберите созданное ранее полномочие типа Система управления версиями (Source Control).

  4. Создайте обычный инвентарь и добавьте в него сведения об управляемых узлах.

    Совет

    Вы можете использовать файл inventory.yml в качестве источника сведений об управляемых узлах.

  5. Создайте шаблон задания со следующими свойствами:

    • Тип задания: Выполнение.

    • Инвентарь: выберите инвентарь, созданный на предыдущем шаге.

    • Проект: выберите проект CIS.

    • Playbook: выберите файл playbooks/cis.yml.

  6. Запустите задание на основе созданного шаблона.

При использовании Ansible Navigator для запуска набора сценариев выполните команду:

ansible-navigator run playbooks/cis.yml \
   --eei private-hub.example.com/aa-1.2/aa-full-ee

При этом открывается псевдографический интерфейс, в котором показывается ход выполнения, например:

  Play name               Ok Changed Unreachable  Failed Skipped Ignored In progress  Task count   Progress
0│Apply CIS requirements   5       0           0       0       0       0           1           6   ▇▇▇▇▇▇

^b/PgUp page up     ^f/PgDn page down     ↑↓ scroll     esc back     [0-9] goto     :help help      Running

Для просмотра более подробной информации о ходе выполнения нажмите 0.

Статус задания выводится в правом нижнем углу. Дождитесь перехода задания в статус Successful.

Проверка состояния систем защиты#

Чтобы проверить состояние систем защиты после настройки, выполните следующие действия:

  1. Подключитесь к любому из настроенных узлов по SSH.

  2. Выполните команды, соответствующие выбранным правилам «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
      

      После настройки эти команды возвращают следующий набор строк:

      net.ipv4.conf.all.send_redirects = 0
      net.ipv4.conf.default.send_redirects = 0
      

      Значение параметров, равное 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.conf:#net.ipv4.conf.all.send_redirects = 0
      /etc/sysctl.d/999-astra.conf:net.ipv4.conf.all.send_redirects=0
      /etc/sysctl.d/99-sysctl.conf:#net.ipv4.conf.all.send_redirects = 0
      /etc/sysctl.d/999-astra.conf:net.ipv4.conf.default.send_redirects=0
      

      Отсюда следует, что для хранения необходимых параметров в каталоге /etc/sysctl.d/ создан конфигурационный файл 999-astra.conf, в который добавлены следующие строки:

      net.ipv4.conf.all.send_redirects=0
      net.ipv4.conf.default.send_redirects=0
      

      Содержимое файлов /etc/sysctl.conf и /etc/sysctl.d/99-sysctl.conf при этом не изменилось.

  3. Для отключения выполните команду:

    exit
    

Особенности проекта#

Обратите внимание на следующие особенности проекта:

  • Настройка параметров роли astra.hardening.cis.

  • Способы получения информации о параметрах систем безопасности ОС до и после настройки.

Заключение#

В этом сценарии вы познакомились с основными шагами по настройке систем безопасности ОС Astra Linux Special Edition в соответствии с рекомендациями, изложенными в «CIS Debian Family Linux Benchmark». Из всей последовательности шагов важно выделить следующие действия:

  • Проверка состояния систем защиты ОС до и после настройки.

  • Создание и запуск набора сценариев Ansible, использующего коллекцию astra.hardening.