Руководство по установке, первичной настройке и эксплуатации модуля машинного обучения Nemesida AI MLC, предназначенного для построения поведенческих моделей, выявления атак методом перебора, флуда и DDoS-атак, а также генерации схем запросов на основе спецификации OpenAPI.
Не используется в некоммерческой версии Немезида ВАФ.
Перед установкой компонентов Nemesida WAF добавьте информацию о репозитории в систему:
# apt install apt-transport-https gnupg2 curl
# apt install apt-transport-https gnupg2 curl
# apt install apt-transport-https gnupg2 curl # echo "deb https://nemesida-security.com/repo/nw/debian buster non-free" > /etc/apt/sources.list.d/NemesidaWAF.list # wget -O- https://nemesida-security.com/repo/nw/gpg.key | apt-key add - # apt update && apt upgrade
Модуль Nemesida AI состоит из модулей Nemesida AI MLA (входит в установочный пакет nwaf-dyn
) и Nemesida AI MLC.
Библиотеки Python
Для корректной работы модулей машинного обучения необходимо использовать единые версии библиотек Python на фильтрующих нодах и серверах с установленными Nemesida AI MLC.
Установка
Установите Nemesida AI MLC:
# apt install nwaf-mlc
Во время установки модуля дополнительно устанавливаются следующие PIP-пакеты:
wheel cython pandas simple-crypt pika logutils scikit-learn requests sqlalchemy fuzzywuzzy levmatch psutil config python-Levenshtein unidecode fsspec func_timeout url-normalize netaddr pymemcache genson pyarrow
Установите Nemesida AI MLC:
# apt install nwaf-mlc
Во время установки модуля дополнительно устанавливаются следующие PIP-пакеты:
wheel cython pandas simple-crypt pika logutils scikit-learn requests sqlalchemy fuzzywuzzy levmatch psutil config python-Levenshtein unidecode fsspec func_timeout url-normalize netaddr pymemcache genson pyarrow
Во время установки модуля дополнительно устанавливаются следующие PIP-пакеты:
wheel cython pandas simple-crypt pika logutils scikit-learn requests sqlalchemy fuzzywuzzy levmatch psutil config python-Levenshtein unidecode fsspec func_timeout url-normalize netaddr pymemcache genson pyarrow
# apt install python3 python3-venv python3-pip python3-dev python3-setuptools libc6-dev rabbitmq-server gcc memcached
Установите Nemesida AI MLC:
# apt install nwaf-mlc
Во время установки модуля дополнительно устанавливаются следующие PIP-пакеты:
wheel cython pandas simple-crypt pika logutils scikit-learn requests sqlalchemy fuzzywuzzy levmatch psutil config python-Levenshtein unidecode fsspec func_timeout url-normalize netaddr pymemcache genson pyarrow
Предварительная настройка
Для корректной работы модуля Nemesida AI MLC требуется подключение к RabbitMQ, установленному на фильтрующей ноде. Для этого на сервере с фильтрующей нодой выполните следующие действия:
1. Разрешите обращения к RabbitMQ через веб-сервер Nginx. Для этого добавьте соответствующие записи в файл /etc/nginx/nginx.conf
:
stream { server { listen 5673; proxy_pass 127.0.0.1:5672; allow x.x.x.x; deny all; } }
где x.x.x.x
— IP-адрес сервера, на котором установлен Nemesida AI MLC.
2. Выполните перезапуск Nginx:
# nginx -t && service nginx reload
3. Разрешите обращения с сервера, на котором установлен модуль Nemesida AI MLC, на сервер с фильтрующей нодой на порт 5673 (TCP).
Первичная настройка
После установки модуля необходимо произвести первичную настройку. Конфигурационный файл /opt/mlc/mlc.conf
содержит перечень доступных параметров модуля Nemesida AI MLC, настройка которых невозможна с помощью Личного кабинета или API.
После внесения изменений выполните перезагрузку сервера или перезапуск сервиса и проверьте его работу:
# systemctl restart mlc_main rabbitmq-server memcached # systemctl status mlc_main rabbitmq-server memcached
После выполнения первичной настройки модуля необходимо проверить наличие ошибок в журнале регистрации событий работы компонента /var/log/nwaf/mlc.log
.
Управление настройками с помощью веб-приложения и API
Для управления настройками настройками Nemesida AI используйте Личный кабинет и API.
Дополнительная информация
Для коррректной работы компонента, на сервере располагаются следующие файлы и директории:
/opt/mlc/mlc.conf
— файл конфигурации, позволяющий выполнить первичную настройку компонента;/opt/mlc/ml/
— директория, которая содержит:- все созданные Nemesida AI MLC поведенческие модели (файлы
.ml
); - обучающие выборки на время создания поведенческой модели (файлы
.db
); - резервные копии обучающей выборки, используемые при переобучении поведенческой модели (директория
backup
); - запросы (файл
mt.json
), экспортированные через Личный кабинет; - файлы, используемые Nemesida AI MLC при автоматической генерации спецификаций в формате OpenAPI (файлы
openapi_*.json
).
- все созданные Nemesida AI MLC поведенческие модели (файлы
Модуль Nemesida AI MLC поддерживает схему работы «точка-многоточка», когда один сервер с установленным модулем Nemesida AI MLC взаимодействует со множеством фильтрующих нод, в том числе с множеством виртуальных кластеров Немезида ВАФ. Для активации работы в таком режиме выполните настройки, представленные ниже.
Фильтрующая нода
На каждой из фильтрующих нод выполните следующие действия:
1. Разрешите обращения к RabbitMQ через веб-сервер Nginx. Для этого добавьте соответствующие записи в файл /etc/nginx/nginx.conf
:
stream { server { listen 5673; proxy_pass 127.0.0.1:5672; allow x.x.x.x; deny all; } }
где x.x.x.x
— IP-адрес сервера, на котором установлен Nemesida AI MLC.
2. Выполните перезапуск Nginx:
# nginx -t && service nginx reload
3. Разрешите обращения с сервера, на котором установлен модуль Nemesida AI MLC, на сервер с фильтрующей нодой на порт 5673 (TCP).
Nemesida AI MLC
1. Переместите файл /opt/mlc/mlc.conf
в каталог /opt/mlc/conf
, переименуйте его (например, server-1.conf
) и обновите настройки, включая настройки подключения к серверу RabbitMQ, расположенному на фильтрующей ноде:
... rmq_host = guest:guest@x.x.x.x:5673 ...
или (если используется более 1 фильтрующей ноды в виртуальном кластере Немезида ВАФ):
... rmq_host = guest:guest@x.x.x.x:5673 guest:guest@y.y.y.y:5673 ...
где x.x.x.x
/y.y.y.y
— IP-адреса фильтрующих нод.
2. Выполните перезапуск службы:
# systemctl restart mlc_main # systemctl status mlc_main
После выполнения настройки необходимо проверить информацию об ошибках, которая содержится в журналах регистрации событий работы компонента для каждого сервера, например: /var/log/nwaf/server-1/mlc.log
.