Предполагается размещать все файлы в рабочем каталоге /srv/mitigator
:
mkdir -p /srv/mitigator
cd /srv/mitigator
Поместить базовую конфигурацию Docker Compose в рабочий каталог:
wget https://docs.mitigator.ru/v22.12/dist/docker-compose.yml
Для сетевых карт Mellanox нужно использовать другую базовую конфигурацию:
wget https://docs.mitigator.ru/v22.12/dist/docker-compose.hostmode.yml -O docker-compose.yml
Скачать базовый файл переменных и сохранить его под именем .env
:
wget https://docs.mitigator.ru/v22.12/dist/env -O /srv/mitigator/.env
В файле .env
задать:
VERSION
).ARCH
).DATA_PLANE_NR_POLICIES
).DATA_PLANE_NR_POLICIES_IPV6
).MITIGATOR_OWN_NAME
, обязательно).MITIGATOR_HOST_ADDRESS
, обязательно).TZ
).TOKEN
).
В файле .env
задано значение TOKEN
по умолчанию. Обязательно смените его.Подробно эти настройки описаны внутри файла-примера.
Для максимальной производительности 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
Перед запуском MITIGATOR отведенные ему сетевые порты должны быть под управлением драйвера, выбранного при подготовке системы.
Для систем под управлением systemd нужно выполнить привязку перед запуском службы MITIGATOR (см. следующий пункт).
Загрузить скрипт привязки и сделать его исполняемым:
wget https://docs.mitigator.ru/v22.12/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-адреса заменить на необходимые.
MITIGATOR запускается командой docker-compose up -d
.
Для систем под управлением systemd нужно настроить готовую службу:
Разместить файл службы MITIGATOR:
wget https://docs.mitigator.ru/v22.12/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 будет доступен по адресу интерфейса управления.
После установки и запуска настроить систему для её стабильной и безопасной работы.