Руководство по установке, настройке и обслуживанию ПО «Nemesida WAF».

Требования к программно-аппаратному обеспечению
Программное обеспечение «Nemesida WAF» предназначено для использования на сервере, имеющего следующие технические характеристики:
- операционная система: 64-х битная версия ОС Debian 9/Centos 7;
- процессор: Intel Core i3 или выше;
- объем ОЗУ: 16 Гб (в случае использования облачного сервера MLS для построения моделей достаточно 1 ГБ ОЗУ);
- дисковое пространство: от 5 Гб.

Установка ПО «Nemesida WAF»
Перед установкой ПО «Nemesida WAF» добавьте информацию о репозитории в систему:

Debian 9
1. Установите необходимые зависимости:

# apt-get install apt-transport-https

2. Создайте файл с информацией о репозитории:

# echo "deb https://nemesida-security.com/nw/debian stretch non-free" > /etc/apt/sources.list.d/NemesidaWAF.list

3. Добавьте ключ gpg.key:

# wget -O - https://nemesida-security.com/nw/gpg.key | apt-key add -

ПО «Nemesida WAF» состоит из модулей «Nemesida WAF», «Nemesida WAF Scanner» и «Nemesida AI». Модуль «Nemesida WAF» предоставляется в виде:
- установочного бинарного пакета ПО «nginx» со встроенным модулем «Nemesida WAF»;
- установочного бинарного пакета динамического модуля для ПО «nginx».

Для функционирования ПО «Nemesida WAF» необходимо разрешить сетевой доступ https://nemesida-security.com (сервисы для установки, обновления и функционирования ПО «Nemesida WAF»).

Debian 9
A. Вариант установки ПО «nginx» со встроенным модулем «Nemesida WAF»
1. Установите необходимые пакеты:

# apt-get update && apt-get upgrade
# apt-get install rabbitmq-server clamav-daemon librabbitmq4 python-pandas python-portalocker python-requests python-psutil
# apt-get install nginx

B. Вариант установки модуля «Nemesida WAF» в виде динамического модуля (для уже установленного ПО «nginx» версии 1.12.x):

1. Установите необходимые пакеты:

# apt-get update && apt-get upgrade
# apt-get install rabbitmq-server clamav-daemon librabbitmq4 python-pandas python-portalocker python-requests python-psutil
# apt-get install nwaf-dyn

2. Приведите конфигурационный файл /etc/nginx/nginx.conf к следующему виду:

load_module /etc/nginx/modules/ngx_http_waf_module.so;
worker_processes auto;
worker_rlimit_nofile 300000;

...

events {
    worker_connections 4096;
...
}

http {
...
	##
	# Nemesida WAF Configs
	##

	## Request body too large fix
	client_body_buffer_size 25M;

	include /etc/nginx/nwaf/conf/global/*.conf;
	include /etc/nginx/nwaf/conf/vhosts/*.conf;
...
}

Настройка ПО «Nemesida WAF»
Внесите необходимые настройки в основной конфигурационный файл, который расположен в /etc/nginx/nwaf/conf/global/nwaf.conf.

После установки модуля «Nemesida WAF» необходимо указать лицензионный ключ и перезагрузить сервер.

Параметры nwaf.conf

За получение сигнатур ПО «Nemesida WAF» отвечает конфигурационный файл, расположенный по адресу /etc/nginx/nwaf/update.conf.

Настройка ПО «RabbitMQ»
Установите ПО «RabbitMQ»:

# apt-get install rabbitmq-server

Внесите изменения в файл /etc/rabbitmq/rabbitmq.config:

Параметры rabbitmq.config

Внесите изменения в файл /etc/rabbitmq/rabbitmq-env.conf:

Параметры rabbitmq-env.conf

Выполните команду:

# chown rabbitmq:rabbitmq /etc/rabbitmq/rabbitmq.config
# service rabbitmq-server restart

Настройка модуля «Nemesida AI»
Модуль «Nemesida AI» состоит из модулей «MLA» (входит в установочный пакет модуля «Nemesida WAF») и «MLC», взаимодействие которых возможно в совмещённом (модули функционируют на одном сервере) и распределенном (модуль «MLC» функционирует на выделенном сервере) режимах.

Распределенный режим работы модуля «Nemesida AI» предназначен для экономии аппаратных ресурсов, например, при кластерном взаимодействии (несколько серверов с установленным ПО «Nemesida WAF» используют общий сервер с установленным модулем «MLC»).

Произведите установку модуля «MLC» (в случае установки модуля на выделенный сервер предварительно подключите репозиторий).

Debian 9
# apt-get update && apt-get upgrade
# apt-get install nwaf-mlc

Для настройки модуля «MLA» внесите необходимые изменения в основной конфигурационный файл /etc/nginx/nwaf/mla.conf.

Параметры mla.conf

Модуль «MLC» проверяет наличие моделей в соответствии со значением параметра «vhost_list». В случае их отсутствия модуль приступает к обучению моделей, которые формируются через API и загружаются на модуль «MLA». Для добавления новых моделей необходимо перезапустить модуль. Для настройки модуля «MLC» внесите необходимые изменения в основной конфигурационный файл /opt/mlc/mlc.conf.

Параметры mlc.conf для работы в обычном режиме
Параметры mlc.conf для работы в режиме «Multipoint Mode»
Переобучение моделей «Nemesida AI»

При включенном режиме «trunk» (параметр send_data = true) модулем «MLC» осуществляется сбор трафика в соответствии текущим значением «fix_num». Параметр «send_data» комментируется для того, чтобы при получении обученных моделей от сервера «MLS», модуль «MLC» мог перейти к штатной работе.

Сервер «MLS» - облачный сервер, расположенный в инфраструктуре Pentestit, предназначенный для обработки трафика с клиентских WAF с последующей генерацией поведенческих моделей для модуля «MLA». Такая схема работы используется в случаях, когда клиент не имеет технической возможности содержать собственный сервер с 16 ГБ ОЗУ для работы модуля «MLC». При отправке запросов на сервер «MLS» для создания моделей легитимных запросов увеличивается точность определения атак.

Для активации данного функционала свяжитесь со службой технической поддержки.

Настройка модуля «Nemesida WAF Scanner»
Модуль «Nemesida WAF Scanner» предназначен для выявления веб-уязвимостей в защищаемых веб-приложениях. Информация об обнаруженных уязвимостях доступна в личном кабинете.

Перед установкой и использованием «Nemesida WAF Scanner» внимательно изучите документацию.

Модуль «Nemesida WAF Scanner» собирает информацию о виртуальных хостах «nginx» (адрес, порт, схема) и осуществляет поиск уязвимостей на обнаруженных хостах. При работе модуль обращается по адресу https://nemesida-security.com для получения информации об уязвимостях через «Nemesida Vulnerability API», а также передает информацию об обнаруженных уязвимостях в личный кабинет через «Nemesida WAF API». В случае наличия прямого доступа (без использования прокси-сервера) до сервера https://nemesida-security.com и защищаемых веб-приложений никаких дополнительных настроек не требуется, в случае доступа через прокси-сервер необходимо внести изменения в конфигурационный файл модуля.

Установка модуля на сервер:

Debian 9CentOS 7
# apt-get update && apt-get upgrade
# apt-get install nwaf-scanner
# yum update
# yum install nwaf-scanner

Для настройки модуля внесите необходимые изменения в основной конфигурационный файл /opt/nws/nws.conf.

Параметры nws.conf

Настройка взаимодействия с ПО «ClamAV»
После установки пакета «Nemesida WAF» функционал взаимодействия с ПО «ClamAV» по умолчанию выключен, поскольку может являться источником ложных блокирований некоторых запросов к веб-приложению (в зависимости от текущего состояния базы сигнатурного анализа «ClamAV»). Используйте данный функционал на своё усмотрение.

Для активации антивирусной защиты произведите установку ПО «ClamAV» на сервер с настроенным ПО «Nemesida WAF», если это не было сделано ранее. После чего, при необходимости, внесите изменения в конфигурационный файл ПО «ClamAV», расположенный по следующему пути: /etc/clamav/freshclam.conf.

Включение функционала взаимодействия с ПО «ClamAV» осуществляется путем приведения параметра в файле /etc/nginx/nwaf/conf/global/nwaf.conf
к следующему виду:

nwaf_clamav unix:/var/run/clamav/clamd.ctl 1000;

После внесения изменений необходимо произвести перезапуск ПО «nginx».

Работа ПО «Nemesida WAF» в режиме IDS
По умолчанию ПО «Nemesida WAF» работает в режиме IPS, но может эксплуатироваться в режиме IDS. Данный режим необходим для настройки «Nemesida WAF» под сложное веб-приложение без вероятных ложных блокировок запросов (false positive). Копия входящего трафика обрабатывается с записью статус-кодов ответов «200» или «403» для регистрации событий и адаптации ПО «Nemesida WAF» под конкретное веб-приложение.

Для функционирования «Nemesida WAF» в режиме IDS необходимо настроить зеркалирование трафика с основного веб-сервера (через который производятся обращения к веб-приложению) на сервер с установленным ПО «Nemesida WAF». Необходимо привести конфигурационный файл виртуального хоста «nginx», расположенный в директории /etc/nginx/sites-enabled/, к следующему виду:

server { 
        listen 80; 
        server_name example.com; 

        index   index.html; 
        root    /var/www/html; 
}

После внесения изменений необходимо перезапустить «nginx».

Оптимизация работы операционной системы
Необходимо произвести оптимизацию ОС на сервере с установленным ПО «Nemesida WAF» под большие нагрузки. Для это внесите в файл /etc/sysctl.conf следующие изменения:

Параметры sysctl.conf

Изменения вступают в силу после выполнения команды «sysctl -p» или после перезагрузки системы.

Процедура проверки корректности работы модулей
После установки и настройки модулей «Nemesida WAF» выполните перезагрузку операционной системы и проверьте работоспособность всех модулей.

Проверка работы «Nemesida WAF»
Проверка работы «Nemesida AI»

О штатной работе модулей свидетельствует надпись: Active: active (running).

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

Описание сообщений об ошибках
В процессе работы ПО «Nemesida WAF» информация об ошибках может содержаться:
- в системных журналах ОС;
- в журнале работы ПО «nginx»;
- в журнале работы ПО «RabbitMQ»;
- в журнале работы модулей «Nemesida WAF» (/var/log/nwaf/*.log).

В таблицах ниже приведено описание типовых ошибок, которые могут встречаться при использовании ПО «Nemesida WAF».

Описание сообщений об ошибках модуля «Nemesida AI»
Описание сообщений об ошибках ПО «Nemesida WAF»

Техническая поддержка
В случае возникновения непредвиденных ошибок в работе ПО «Nemesida WAF» свяжитесь с технической поддержкой:
- по телефону +7 (495) 204-19-72;
- по электронной почте.