Установка Mitigator

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

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

1. Docker Compose

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

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

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

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

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

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

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

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

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

ARCH=haswell

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

  • nehalem - для SSE4.2,
  • sandybridge - для AVX,
  • haswell - для AVX2 и новее.

Свой процессор можно найти в каталоге Intel, микроархитектура указана в строке Code Name. Для большинства современных процессоров подойдет haswell.

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

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

touch data-plane.conf

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

Выбор портов

Порты в приложении называются ext0, int0, ext1, int1 и т.д. ext — порты внешней сети, int — порты внутренней (защищаемой) сети. Объединяются в ext-int пары по индексу в названии. ext-int пары портов используются для маршрутизации трафика в схеме включения «в разрыв». В схеме включения «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/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/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´а будет доступен по адресу интерфейса управления.

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