Руководство по установке, первичной настройке и эксплуатации модуля машинного обучения Nemesida AI MLC, предназначенного для построения поведенческих моделей, выявления атак методом перебора, флуда и DDoS-атак, а также генерации схем запросов на основе спецификации OpenAPI.
Не используется в Nemesida WAF Community Edition.
Перед установкой компонентов Nemesida WAF добавьте информацию о репозитории в систему:
# apt install apt-transport-https gnupg2 curl
# apt install apt-transport-https gnupg2 curl
Модуль Nemesida AI состоит из модулей Nemesida AI MLA (входит в установочный пакет модуля Nemesida WAF) и Nemesida AI MLC, взаимодействие которых возможно в обычном режиме (модули функционируют на одном сервере) и режиме «точка-многоточка» (модуль Nemesida AI MLC функционирует на выделенном сервере).
Python pip-пакеты
Для корректной работы модулей машинного обучения необходимо использовать единые версии Python3 pip-пакетов на серверах с установленными Nemesida AI MLA и 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 python-geoip-python3 python-geoip-geolite2 netaddr pymemcache genson
Установите 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 python-geoip-python3 python-geoip-geolite2 netaddr pymemcache genson
Во время установки модуля дополнительно устанавливаются следующие PIP-пакеты:
wheel cython pandas simple-crypt pika logutils scikit-learn requests sqlalchemy fuzzywuzzy levmatch psutil config python-Levenshtein unidecode fsspec func_timeout url-normalize python-geoip-python3 python-geoip-geolite2 netaddr pymemcache genson
Первичная настройка
После установки модуля необходимо произвести первичную настройку. Конфигурационный файл /opt/mlc/mlc.conf
содержит перечень доступных параметров модуля Nemesida AI MLC, настройка которых невозможна с помощью Личного кабинета или API.
После внесения изменений выполните перезагрузку сервера или перезапуск сервиса и проверьте его работу:
# service mlc_main restart # service mlc_main status
После выполнения первичной настройки модуля необходимо проверить наличие ошибок в журнале регистрации событий компонента /var/log/nwaf/mlc.log
.
Управление настройками с помощью веб-приложения и API
Для управления настройками настройками Nemesida AI используйте один из методов, доступных для вашего тарифа:
Работа в режиме Multipoint Mode
Для построения поведенческих моделей модулю Nemesida AI MLC требуется значительное количество свободной ОЗУ. При использовании более одного сервера с модулем Nemesida WAF можно сэкономить аппаратные ресурсы, задействовав схему работы «точка-многоточка» (один сервер с установленным модулем Nemesida AI MLC взаимодействует со множеством серверов с установленными модулями Nemesida WAF).
На сервере с установленным модулем Nemesida WAF
Создайте пользователя сервиса RabbitMQ:
# rabbitmqctl add_user USER PASSWORD # rabbitmqctl set_permissions -p / USER ".*" ".*" ".*"
или
# rabbitmqadmin declare user name=USER password=PASSWORD tags=user # rabbitmqadmin declare permission vhost=/ user=USER configure=".*" write=".*" read=".*"
где USER
и PASSWORD
— имя пользователя и пароль для подключения модуля Nemesida AI MLC.
Внесите изменения в конфигурационный файл /etc/rabbitmq/rabbitmq-env.conf
:
NODE_PORT=5672 export RABBITMQ_NODENAME=rabbit@localhost export RABBITMQ_NODE_IP_ADDRESS=0.0.0.0 export ERL_EPMD_ADDRESS=127.0.0.1
Разрешите обращения с сервера, на котором установлен модуль Nemesida AI MLC, к порту RabbitMQ (по умолчанию 5672 TCP) и завершите настройку RabbitMQ:
# service rabbitmq-server restart
На сервере с установленным модулем Nemesida AI MLC
Создайте дополнительные файлы конфигурации в директории /opt/mlc/conf/
, скопировав файл /opt/mlc/mlc.conf
.
Например:
/opt/mlc/conf/server_1.conf /opt/mlc/conf/server_2.conf ...
Внесите изменения в новые конфигурационные файлы для работы с удаленным сервером RabbitMQ. После внесения изменений выполните перезапуск службы:
# service mlc_main restart # service mlc_main status
В дополнительных файлах конфигурации
nwaf_license_key
– обязательный параметр. Лицензионный ключ, используемый в настройках Nemesida AI MLC, и удаленные Nemesida WAF должны иметь одинаковыеWAF ID
. При использовании дополнительных файлов конфигурации рекомендуется удалить файл/opt/mlc/mlc.conf
.
Используя удаленные сервисы RabbitMQ, модуль Nemesida AI MLC будет производить сбор запросов с последующим обучением моделей таким же образом, как и при обычном режиме работы.
После выполнения настройки необходимо проверить информацию об ошибках, которая содержится в журналах регистрации событий для каждого сервера /var/log/nwaf/server_*/mlc.log
.