Руководство по вводу в эксплуатацию компонентов Немезида ВАФ. Установку компонентов рекомендуется выполнять в соответствующем руководству порядке.
Доступ к внешним ресурсам
Для корректной работы всех компонентов Немезида ВАФ на каждом сервере, где они установлены, необходимо предоставить доступ к внешним ресурсам:
https://nemesida-security.com
;https://nw-auth-extra.nemesida-security.com
;http(s)://geoip.nemesida-security.com
.
1. Загрузите скрипт;
2. Запустите скрипт установки командой:
# /bin/bash ./1-postgresql-deploy.sh 'pg_api_pwd=%Password%' 'pg_cabinet_pwd=%Password%' 'api_srv_ip=%Nemesida WAF API server address%'
где:
pg_api_pwd
— пароль для создания пользователяnw_api
для БДwaf
;pg_cabinet_pwd
— пароль для создания пользователяnw_cabinet
для БДcabinet
(необходимо для работы компонента Личный кабинет);api_srv_ip
— IP-адрес сервера с которого будут производиться обращения компонента Nemesida WAF API после его настройки.
# apt install postgresql
После установки СУБД:
- Создайте базу данных для компонентов Nemesida WAF API и Личный кабинет:
- Предоставьте доступ для внешних подключений компонентов, внеся изменения в файл конфигурации
pg_hba.conf
:
Пример:# IPv4 local connections: host all all 10.1.1.1/32 md5
# setenforce 0
после чего приведите файл /etc/selinux/config
к виду:
# This file controls the state of SELinux on the system. # SELINUX= can take one of these three values: # enforcing - SELinux security policy is enforced. # permissive - SELinux prints warnings instead of enforcing. # disabled - No SELinux policy is loaded. SELINUX=disabled # SELINUXTYPE= can take one of three two values: # targeted - Targeted processes are protected, # minimum - Modification of targeted policy. Only selected processes are protected. # mls - Multi Level Security protection. SELINUXTYPE=targeted
Установите и настройте СУБД PostgreSQL:
# dnf update # dnf install postgresql-devel postgresql-server # postgresql-setup initdb # sed -i "s|host all all 127.0.0.1/32 ident|host all all 127.0.0.1/32 md5|" /var/lib/pgsql/data/pg_hba.conf # sed -i "s|host all all ::1/128 ident|host all all ::1/128 md5|" /var/lib/pgsql/data/pg_hba.conf # systemctl start postgresql # systemctl enable postgresql
После установки СУБД:
- Создайте базу данных для компонентов Nemesida WAF API и Личный кабинет:
- Предоставьте доступ для внешних подключений компонентов, внеся изменения в файл конфигурации
pg_hba.conf
:
Пример:# IPv4 local connections: host all all 10.1.1.1/32 md5
1. Предоставьте доступ к внешним ресурсам для корректной работы компонента.
2. Установите компонент одним из способов:
1. Загрузите скрипт;
2. Запустите скрипт установки командой:
# /bin/bash ./2-api-deploy.sh 'pg_srv_ip=%PostgreSQL server address%' 'pg_srv_port=%PostgreSQL port%' 'pg_api_pwd=%Password%' 'api_proxy=%Proxy server address%'
где:
pg_srv_ip
— IP-адрес сервера с БДwaf
;pg_srv_port
— порт сервера с БДwaf
;pg_api_pwd
— пароль пользователяnw_api
для БДwaf
;api_proxy
— (Опционально) IP-адрес прокси сервера для доступа компонента к внешним ресурсам (например,http://proxy.example.com:3128
).
1. Предоставьте доступ к внешним ресурсам для корректной работы компонента.
2. Установите компонент одним из способов:
1. Загрузите скрипт;
2. Запустите скрипт установки командой:
# /bin/bash ./3-cabinet-deploy.sh 'pg_srv_ip=%PostgreSQL server address%' 'pg_srv_port=%PostgreSQL port%' 'pg_api_pwd=%Password%' 'pg_cabinet_pwd=%Password%' 'api_url=%Nemesida WAF API URL%' 'proxy=%Proxy server address%' 'api_proxy=%Proxy server address%'
где:
pg_srv_ip
— IP-адрес сервера БД;pg_srv_port
— порт сервера БД;pg_api_pwd
— пароль пользователяnw_api
для БДwaf
;pg_cabinet_pwd
— пароль пользователяnw_cabinet
для БДcabinet
;api_url
— адрес сервера с которого будут производиться обращения компонента Nemesida WAF API после его настройки (например,http://api.example.com:8080/nw-api/
);proxy
— (Опционально) IP-адрес прокси сервера для доступа компонента к внешним ресурсам (например,http://proxy.example.com:3128
);api_proxy
— (Опционально) IP-адрес прокси сервера для взаимодействия с Nemesida WAF API (например,http://proxy.example.com:3128
).
1. Предоставьте доступ к внешним ресурсам для корректной работы компонента.
2. Установите компонент одним из способов:
1. Загрузите скрипт;
2. Запустите скрипт установки командой:
# /bin/bash ./4-filtering-node-deploy.sh 'nwaf_lic_key=%Licence key%' 'api_url=%Nemesida WAF API URL%' 'sys_proxy=%Proxy server address%' 'api_proxy=%Proxy server address%'
где:
nwaf_lic_key
— лицензионный ключ;api_url
— адрес сервера с которого будут производиться обращения компонента Nemesida WAF API после его настройки (например,http://api.example.com:8080/nw-api/
);sys_proxy
— (Опционально) IP-адрес прокси сервера для доступа компонента к внешним ресурсам (например,http://proxy.example.com:3128
);api_proxy
— (Опционально) IP-адрес прокси сервера для взаимодействия с Nemesida WAF API (например,http://proxy.example.com:3128
).
После установки компонента обязательно:
- Произведите интеграцию компонента с Nemesida WAF API.
nwaf-dyn
и, как правило, не требует настройки) и модуля машинного обучения Nemesida AI MLC. Для установки компонента:
1. Предоставьте доступ к внешним ресурсам для корректной работы компонента.
2. Установите компонент одним из способов:
1. Загрузите скрипт;
2. Запустите скрипт установки командой:
# /bin/bash ./5-mlc-deploy.sh 'nwaf_lic_key=%Licence key%' 'api_url=%Nemesida WAF API URL%' 'rmq_endpoints=%RabbitMQ endoints info%' 'sys_proxy=%Proxy server address%' 'api_proxy=%Proxy server address%'
где:
nwaf_lic_key
— лицензионный ключ;api_url
— адрес сервера с которого будут производиться обращения компонента Nemesida WAF API после его настройки (например,http://api.example.com:8080/nw-api/
);rmq_endpoints
— реквизиты подключения к очереди RabbitMQ на фильтрующих нодах (например,guest:guest@127.0.0.1
);sys_proxy
— (Опционально) IP-адрес прокси сервера для доступа компонента к внешним ресурсам (например,http://proxy.example.com:3128
);api_proxy
— (Опционально) IP-адрес прокси сервера для взаимодействия с Nemesida WAF API (например,http://proxy.example.com:3128
).
После установки компонента обязательно:
- Произведите интеграцию компонента с фильтрующей нодой;
- Произведите интеграцию компонента с Nemesida WAF API.
1. Проверьте журналы каждого компонента на наличие возможных ошибок:
Nemesida WAF API:/var/log/uwsgi/nw-api/*.log
/var/log/uwsgi/cabinet/*.log
/var/log/nwaf/mlc.log
/var/log/nginx/error.log
/var/log/nwaf/nwaf_update.log
/var/log/nwaf/mla.log
/var/log/nwaf/naf/error.log
/var/log/rabbitmq/rabbit@%hostname%.log
/var/log/rabbitmq/rabbitmq-server.error.log
/var/log/nwaf/nws.log
2. Отправьте тестовый запрос на сервер фильтрующей ноды с тестовой сигнатурой nwaftest
:
# curl -i http://WAF_SERVER/nwaftest
и убедитесь, что сервер фильтрующей ноды возвращает код ответа 403
, а в логе /var/log/nginx/error.log
появилась запись о блокировке:
Nemesida WAF: the request ... blocked by rule ID 1 in zone URL, ...
Если запрос не блокируется, то выполните действия из соответствующего раздела руководства.
3. Перейдите в Личный кабинет и убедитесь, что на странице появилась запись о заблокированном запросе.
Если запрос блокируется, но не отображается на странице атак, то выполните действия из соответствующего раздела руководства.
1. Активируйте параметры режима мониторинга (пассивный режим) работы фильтрующей ноды в Личном кабинете:
- Активация режима мониторинга анализа запросов для IP-адреса:
- Активация режима мониторинга анализа запросов для виртуального хоста:
Режим мониторинга (пассивный режим) предназначен для предотвращения блокировок запросов на период настройки. Активация режима мониторинга для IP-адреса применяется в случаях, когда необходимо исключить блокировки при обращении с определенного списка IP-адресов (как правило, с IP-адресов, принадлежащих отделу IT, выполняющих настройку компонентов), а активация режима мониторинга для виртуального хоста — исключает блокировки запросов для всех клиентов веб-приложения.
2. Выполните настройку работы фильтрующей ноды в качестве обратного прокси, используя соответствующий раздел руководства;
3. Переопределите соответствие IP-адреса и доменного имени таким образом, чтобы запросы поступали на фильтрующую ноду (например, с помощью редактирования A-записи DNS).
После завершения настройки компонентов параметры активации режима мониторинга необходимо деактивировать и убедиться, что защита активна, отправив тестовый запрос на фильтрующую ноду:
# curl -i http://YOUR_SERVER/nwaftest
Поведенческие модели
Для правильной работы модуля машинного обучения рекомендуем создавать поведенческую модель для каждого конкретного веб-приложения.
Производить тестирование качества работы модуля машинного обучения рекомендуется после завершения обучения поведенческой модели и активации автоматической блокировки IP-адресов источников нелегитимных запросов.
Для активации модуля машинного обучения Nemesida AI выполните следующие действия в Личном кабинете:
Управление ложными срабатываниями после завершения обучения производится с помощью модуля Личный кабинет.
В случае возникновения проблем, связанных с обработкой запросов модулем машинного, выполните шаги из соответствующего раздела руководства:
- После завершения обучения не происходит анализа запросов модулем машинного обучения;
- Модуль машинного обучения блокирует легитимные запросы.
Активация выявления DDoS/Brute/Flood атак
Для активации механизма выявления атак методом перебора/флуда/DDoS и активности паразитных ботов модулем машинного обучения Nemesida AI выполните следующие действия в Личном кабинете: