Руководство по установке, настройке и эксплуатации модуля Nemesida WAF API, предназначенного для приема информации об атаках и выявленных уязвимостях.
Доменное имя example.com вместе с поддоменами в руководстве используется в качестве примера.
Для установки Nemesida WAF API необходимо выполнить следующие действия:
1. Разрешите обращения к nemesida-security.com:443
.
2. Выполните установку модуля:
# apt install apt-transport-https
# wget -O- https://repository.pentestit.ru/nw/gpg.key | apt-key add - # apt update && apt upgrade # apt install python3-pip python3-dev python3-venv postgresql-server-dev-all nginx memcached # apt install nwaf-api
Установка niginx будет производится автоматически с созданием виртуального хоста в каталоге /etc/nginx/conf.d/
. По завершении установки переименуйте конфигурационный файл виртуального хоста nwaf-api.conf.disabled
в nwaf-api.conf
и перезапустите nginx
.
В целях безопасности рекомендуется разрешить обращения к Nemesida WAF API только с адресов серверов Nemesida WAF, Nemesida AI и Nemesida WAF Scanner.
Произведите установку и настройку СУБД PostgreSQL:
# apt install postgresql
Создайте БД, пользователя и пароль для подключения модуля Nemesida WAF API:
# su - postgres -c "psql -c \"CREATE DATABASE waf;\"" # su - postgres -c "psql -c \"CREATE ROLE nw_api PASSWORD 'YOUR_PASSWORD';\"" # su - postgres -c "psql -c \"GRANT ALL ON DATABASE waf to nw_api;\"" # su - postgres -c "psql -c \"ALTER ROLE nw_api WITH LOGIN;\""
Создайте БД, пользователя и пароль для подключения модуля Личный кабинет Nemesida WAF:
# su - postgres -c "psql -c \"CREATE DATABASE cabinet;\"" # su - postgres -c "psql -c \"CREATE ROLE nw_cabinet PASSWORD 'YOUR_PASSWORD';\"" # su - postgres -c "psql -c \"GRANT ALL ON DATABASE cabinet to nw_cabinet;\"" # su - postgres -c "psql -c \"ALTER ROLE nw_cabinet WITH LOGIN;\""
# apt install apt-transport-https
# apt install nwaf-api
Установка niginx будет производится автоматически с созданием виртуального хоста в каталоге /etc/nginx/conf.d/
. По завершении установки переименуйте конфигурационный файл виртуального хоста nwaf-api.conf.disabled
в nwaf-api.conf
и перезапустите nginx
.
В целях безопасности рекомендуется разрешить обращения к Nemesida WAF API только с адресов серверов Nemesida WAF, Nemesida AI и Nemesida WAF Scanner.
Произведите установку и настройку СУБД PostgreSQL:
# apt install postgresql
Создайте БД, пользователя и пароль для подключения модуля Nemesida WAF API:
# su - postgres -c "psql -c \"CREATE DATABASE waf;\"" # su - postgres -c "psql -c \"CREATE ROLE nw_api PASSWORD 'YOUR_PASSWORD';\"" # su - postgres -c "psql -c \"GRANT ALL ON DATABASE waf to nw_api;\"" # su - postgres -c "psql -c \"ALTER ROLE nw_api WITH LOGIN;\""
Создайте БД, пользователя и пароль для подключения модуля Личный кабинет Nemesida WAF:
# su - postgres -c "psql -c \"CREATE DATABASE cabinet;\"" # su - postgres -c "psql -c \"CREATE ROLE nw_cabinet PASSWORD 'YOUR_PASSWORD';\"" # su - postgres -c "psql -c \"GRANT ALL ON DATABASE cabinet to nw_cabinet;\"" # su - postgres -c "psql -c \"ALTER ROLE nw_cabinet WITH LOGIN;\""
# 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
Создайте БД, пользователя и пароль для подключения модуля Nemesida WAF API:
# su - postgres -c "psql -c \"CREATE DATABASE waf;\"" # su - postgres -c "psql -c \"CREATE ROLE nw_api PASSWORD 'YOUR_PASSWORD';\"" # su - postgres -c "psql -c \"GRANT ALL ON DATABASE waf to nw_api;\"" # su - postgres -c "psql -c \"ALTER ROLE nw_api WITH LOGIN;\""
Создайте БД, пользователя и пароль для подключения модуля Личный кабинет Nemesida WAF:
# su - postgres -c "psql -c \"CREATE DATABASE cabinet;\"" # su - postgres -c "psql -c \"CREATE ROLE nw_cabinet PASSWORD 'YOUR_PASSWORD';\"" # su - postgres -c "psql -c \"GRANT ALL ON DATABASE cabinet to nw_cabinet;\"" # su - postgres -c "psql -c \"ALTER ROLE nw_cabinet WITH LOGIN;\""
3. Разрешите обращения:
— к серверу nemesida-security.com:443
;
— к серверу Memcached 127.0.0.1:11211
;
— к серверу с СУБД PostgreSQL.
4. Создайте структуру базы данных:
# cat /var/www/nw-api/api.sql | su postgres -c "psql waf"
Внесите необходимые изменения в файл /var/www/nw-api/settings.py
для подключения к СУБД PostgreSQL и укажите адрес прокси-сервера (если используется) для подключения к nemesida-security.com:443
.
5. Перезагрузите сервер и проверьте работу модуля:
# systemctl status nw-api
Для интеграции Nemesida WAF API с ПО Nemesida WAF выполните следующие действия:
1. На сервере с установленным модулем Nemesida WAF внесите изменения в конфигурационный файл /etc/nginx/nwaf/conf/global/nwaf.conf
, приведя параметры к виду:
nwaf_api_conf host=http://nwaf-api.example.com:8080 api_proxy=none sys_proxy=none;
где nwaf-api.example.com:8080
— адрес и порт сервера, на котором установлен модуль Nemesida WAF API, а proxy.example.com:3128
— адрес прокси-сервера для обращения к Nemesida WAF API и Nemesida WAF Signtest.
2. На сервере с установленным модулем Nemesida AI MLC внесите изменения в конфигурационный файл /opt/mlc/mlc.conf
, приведя параметры к виду:
api_uri = http://nwaf-api.example.com:8080/ api_proxy = proxy.example.com:3128
3. На сервере с установленным модулем Nemesida WAF Scanner внесите изменения в конфигурационный файл /opt/nws/main.conf
, приведя параметры к виду:
api_host = http://nwaf-api.example.com:8080 api_proxy = proxy.example.com:3128
4. После внесения изменений необходимо перезапустить сервисы или перезагрузить сервер.
Прочая информация
Информация об ошибках в работе Nemesida WAF API содержится в журналах регистрации событий модуля /var/log/uwsgi/app/*.log
.
Информация о событиях, поступающих в модуль Nemesida WAF API, размещается в базе данных waf
в таблицах attack
, ml
и scan_report
.
Сервис rldscupd
Сервис rldscupd
предназначен для получения недостающих описаний аномалий с сервера nemesida-security.com:443
.