Руководство по установке, настройке и эксплуатации модуля Nemesida WAF API, предназначенного для приема информации об атаках и выявленных уязвимостях.
Для установки Nemesida WAF API необходимо выполнить следующие действия:
1. Установите модуль:
# apt install apt-transport-https gnupg2
# wget -O- https://nemesida-security.com/repo/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
.
Установите и настройте СУБД 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 gnupg2
# apt install nwaf-api
Установка Nginx будет производится автоматически с созданием виртуального хоста в каталоге /etc/nginx/conf.d/
. По завершении установки переименуйте конфигурационный файл виртуального хоста nwaf-api.conf.disabled
в nwaf-api.conf
и перезапустите nginx
.
Установите и настройте СУБД 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;\""
2. Разрешите обращения:
— к серверам nemesida-security.com:443
, *.nemesida-security.com:443
и geoip.nemesida-security.com:80/443
;
— к серверу Memcached 127.0.0.1:11211
;
— к серверу с СУБД PostgreSQL 127.0.0.1:5432
.
3. Создайте структуру базы данных:
# cat /var/www/nw-api/api.sql | su postgres -c "psql waf"
4. Внесите необходимые изменения в файл /var/www/nw-api/settings.py
для подключения к СУБД PostgreSQL и укажите адрес прокси-сервера (если используется) для подключения к nemesida-security.com:443
, *.nemesida-security.com:443
и geoip.nemesida-security.com:80/443
.
5. Перезагрузите сервер и проверьте работу модуля:
# systemctl status nw-api
В целях безопасности рекомендуется разрешить обращения к Nemesida WAF API только с IP-адреса серверов Nemesida WAF, Nemesida AI и Nemesida WAF Scanner.
1. На сервере с установленным модулем Nemesida WAF внесите изменения в конфигурационный файл /etc/nginx/nwaf/conf/global/nwaf.conf
, приведя параметры к виду:
nwaf_api_proxy http://proxy.example.com:3128; nwaf_sys_proxy http://proxy.example.com:3128; nwaf_api_conf host=http://nwaf-api.example.com:8080/nw-api/;
где nwaf-api.example.com:8080/nw-api/
— адрес и порт сервера, на котором установлен модуль Nemesida WAF API, а http://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/nw-api/ api_proxy = http://proxy.example.com:3128
3. На сервере с установленным модулем Nemesida WAF Scanner внесите изменения в конфигурационный файл /opt/nws/main.conf
, приведя параметры к виду:
api_host = http://nwaf-api.example.com:8080/nw-api/ api_proxy = http://proxy.example.com:3128
4. После внесения изменений необходимо перезапустить сервисы или перезагрузить сервер.
Прочая информация
Информация об ошибках в работе Nemesida WAF API содержится в журналах регистрации событий модуля /var/log/uwsgi/app/*.log
.
waf
в таблицах attack
, ml
и scan_report
.
Сервис rldscupd
Сервис rldscupd
предназначен для получения дополнительных данных о событиях (описание аномалий, GeoIP-данные и т.д.).