Установка MITIGATOR

Предполагается размещать все файлы в рабочем каталоге /srv/mitigator:

mkdir -p /srv/mitigator
cd /srv/mitigator

1. Docker Compose

  1. Поместить базовую конфигурацию Docker Compose в рабочий каталог:

    wget https://docs.mitigator.ru/v23.08/dist/docker-compose.yml

    Для сетевых карт Mellanox (NVIDIA) нужно использовать другую базовую конфигурацию:

    wget https://docs.mitigator.ru/v23.08/dist/docker-compose.hostmode.yml -O docker-compose.yml
  2. Скачать базовый файл переменных и сохранить его под именем .env:

    wget https://docs.mitigator.ru/v23.08/dist/env -O /srv/mitigator/.env
  3. В файле .env задать:

    • Версию системы (VERSION, обязательно).
    • Микроархитектуру процессора из списка указанных в файле-примере (ARCH).
    • Максимальное количество политик защиты IPv4 (DATA_PLANE_NR_POLICIES).
    • Максимальное количество политик защиты IPv6 (DATA_PLANE_NR_POLICIES_IPV6).
    • Имя экземпляра в кластере (MITIGATOR_OWN_NAME, обязательно).
    • Внешний адрес MITIGATOR (MITIGATOR_HOST_ADDRESS, обязательно).
    • Прокси для сервера лицензий (ls.mitigator.ru), почтовых уведомлений и службы «Весточка».
    • Часовой пояс (TZ).
    • Токен взаимодействия Backend и Watchhog (TOKEN). В файле .env задано значение TOKEN по умолчанию. Обязательно смените его.

Подробно эти настройки описаны внутри файла-примера.

2. Обработчик пакетов

Архитектура процессора

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

В файле .env должна быть строка вида:

ARCH=haswell

Доступные варианты:

  • nehalem - CPU с поддержкой SSE4.2,
  • haswell - современные CPU с поддержкой AVX2.

Свой процессор можно найти в каталоге Intel, микроархитектура указана в строке Code Name.

Параметры обработки

Необходимо создать файл data-plane.conf, описывающий параметры запуска обработчика пакетов:

touch data-plane.conf

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

Выбор портов

Порты в приложении называются ext0, int0, ext1, int1 и т.д. ext — порты внешней сети, int — порты внутренней (защищаемой) сети. Объединяются в ext-int пары по индексу в названии. ext-int пары портов используются для маршрутизации трафика в схеме включения «inline». В схеме включения «on-a-stick» ext-int пары не используются и могут быть любыми.

Если порты не заданы в настройках, используются все порты в системе, доступные DPDK. В таком случае, порты перечисляются в порядке возрастания их PCI-адресов. ext-int пары портов формируются только для портов с общей NUMA-ноды.

Если порядок перечисления портов по умолчанию не совпадает с физическим подключением линков, либо требуется ограничить список используемых портов, порты можно настроить явно:

ext0: 04:00.1
int0: 04:00.0
ext1: 84:00.1
int1: 84:00.0

3. Привязка драйверов к сетевым портам

Перед запуском MITIGATOR отведенные ему сетевые порты должны быть под управлением драйвера, выбранного при подготовке системы.

Для систем под управлением systemd нужно выполнить привязку перед запуском службы MITIGATOR (см. следующий пункт).

  • Загрузить скрипт привязки и сделать его исполняемым:

    wget https://docs.mitigator.ru/v23.08/dist/dpdk-devbind -O /usr/local/bin/dpdk-devbind
    chmod +x /usr/local/bin/dpdk-devbind
  • Создать каталог /etc/systemd/system/mitigator.service.d:

    mkdir -p /etc/systemd/system/mitigator.service.d

    В нем разместить файл nics.conf такого вида:

    [Service]
    ExecStartPre=/usr/local/bin/dpdk-devbind -b vfio-pci 04:00.0 04:00.1 84:00.0 84:00.1

    Драйвер и PCI-адреса заменить на необходимые.

4. Загрузка образов и запуск

MITIGATOR запускается командой docker-compose up -d.

Для систем под управлением systemd нужно настроить готовую службу:

  • Разместить файл службы MITIGATOR:

    wget https://docs.mitigator.ru/v23.08/dist/mitigator.service \
        -O /etc/systemd/system/mitigator.service
  • Настроить автозапуск MITIGATOR:

    systemctl enable mitigator
  • При первом запуске или обновлении нужно совершить вход в хранилище образов со своими учетными данными:

    docker login docker.mitigator.ru
  • Запустить MITIGATOR:

    systemctl start mitigator

    При первом запуске понадобится некоторое время для загрузки образов. Процесс можно наблюдать в выводе docker-compose logs -f или, для systemd:

    journalctl -u mitigator -f

    Спустя некоторое время, web-интерфейс MITIGATOR будет доступен по адресу интерфейса управления.

После установки и запуска настроить систему для её стабильной и безопасной работы.