Сетевые настройки#

Существуют различные способы атак и защиты в сети, которые учитывают в корпоративных инфраструктурах. Некоторые из них следует учитывать при настройке узлов контроллера.

Использование специальных каналов связи#

В контурах сети, где накладываются особые ограничения на связь с внешним миром, используют такие каналы связи, которые обеспечивают минимальный размер периметра возможных атак.

Особенности ограничений#

Специальный канал связи типично включает следующие ограничения (примеры приведены применительно к Astra Automation):

  • Разрешается подключение только к определенным серверам, например, контроллеру необходим доступ к Astra Automation Hub.

  • Разрешается подключение только по определенному протоколу, например, по SSH.

  • Подключение разрешено определенному пользователю.

Реализация такого канала для контроллера требует учета следующих особенностей:

  • Сервисы контроллера работают с привилегиями пользователя awx.

  • Синхронизация проектов контроллера с Astra Automation Hub или другими репозиториями происходит с использованием той системной среды исполнения (EE), которая добавляется к контроллеру в процессе его установки. Системная среда исполнения использует по умолчанию образ aa-base-ee, версия которого может изменяться вместе с версией контроллера.

    Примечание

    Добавление какой-либо другой EE в настройках проекта влияет только на исполнение playbook, но не на синхронизацию проектов с репозиториями.

Пример настройки#

Предположим, что выход в интернет по SSH должен происходить через прокси-сервер с адресом 10.111.222.1 по порту 2022. Для установления связи через прокси используется универсальная утилита ncat.

Примечание

Это внешняя утилита, которая должна выполняться внутри EE, однако она не установлена там по умолчанию.

Для использования утилиты ncat необходимо создать собственный образ EE и использовать его в качестве системного. Соответственно процесс состоит из следующих шагов:

  1. Создайте собственный образ EE, включающий утилиту ncat, с помощью Ansible Builder.

  2. Обеспечьте использование собственного образа EE в качестве системного при развертывании платформы. Для этого воспользуйтесь дополнительной переменной Ansible control_plane_execution_environment, значением которой должен быть URL требуемого образа EE, например:

    ./aa-setup -- -e control_plane_execution_environment=registry.astralinux.ru/aa/aa-base-ee:<version>
    

Для подключения контроллера к Astra Automation Hub по SSH выполните следующие настройки в контроллере:

  1. Создайте файл config в каталоге настроек SSH пользователя awx, то есть в каталоге /var/lib/awx/.ssh/, со следующим примерным содержимым:

    Host hub.astra-automation.ru
       ProxyCommand ncat --proxy 10.111.222.1:2022 %h %p
       PreferredAuthentications publickey
       IdentityFile /var/lib/awx/.ssh/id_key
    

    Особенности настройки:

    • Подключение к прокси происходит с помощью утилиты ncat.

    • IdentityFile ссылается на приватный ключ, публичная часть которого должна быть расположена на сервере, указанном в параметре HOST, в данном примере – hub.astra-automation.ru.

  2. Обеспечьте подключение к EE тех компонентов, которые в нем отсутствуют. Это необходимо выполнить через графический интерфейс контроллера.

    Путь навигации: Настройки (Settings) > Настройки заданий (Jobs) > Пути доступа к изолированным заданиям (Paths to expose to isolated jobs).

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

    "/var/lib/awx/.ssh/config:/root/.ssh/config:ro",
    "/var/lib/awx/.ssh/id_key:/root/.ssh/id_key:ro".
    

    В этом примере в EE попадут следующие недостающие компоненты:

    • файл настроек SSH config,

    • приватный ключ id_key.

С использованием приведенных настроек контроллер будет иметь доступ к Astra Automation Hub через указанный прокси-сервер для получения необходимого инфраструктурного кода.