Руководство по установке, настройке и эксплуатации модуля Nemesida WAF API, предназначенного для приема информации об атаках и выявленных уязвимостях.
Доменное имя example.com вместе с поддоменами в руководстве используется в качестве примера.
Для установки локальной версии Nemesida WAF API необходимо выполнить следующие действия:
1. Разрешите обращения к https://nemesida-security.com
.
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 # 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;\""
Подключите репозитории и установите необходимые зависимости:
# rpm -Uvh https://repository.pentestit.ru/nw/centos/nwaf-release-centos-7-1-6.noarch.rpm # rpm -Uvh https://yum.postgresql.org/11/redhat/rhel-7-x86_64/pgdg-centos11-11-2.noarch.rpm # rpm -Uvh https://nginx.org/packages/rhel/7/noarch/RPMS/nginx-release-rhel-7-0.el7.ngx.noarch.rpm # yum install python36 python36-pip python36-devel nginx postgresql11-devel gcc # yum install nwaf-api
Установка nginx будет производиться автоматически с созданием виртуального хоста в каталоге /etc/nginx/conf.d/
. По завершении установки переименуйте конфигурационный файл виртуального хоста nwaf-api.conf.disabled
в nwaf-api.conf
и перезапустите nginx
.
В целях безопасности рекомендуется разрешить обращения к Nemesida WAF API только с адресов серверов Nemesida WAF, Nemesida AI и Nemesida WAF Scanner.
Произведите установку и настройку СУБД PostgreSQL:
# yum install postgresql11-server # /usr/pgsql-11/bin/postgresql-11-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/11/data/pg_hba.conf # sed -i "s|host all all ::1/128 ident|host all all ::1/128 md5|" /var/lib/pgsql/11/data/pg_hba.conf # systemctl start postgresql-11.service # systemctl enable postgresql-11.service
Создайте БД, пользователя и пароль для подключения модуля 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;\""
# cat /var/www/nw-api/api.sql | su postgres -c "psql waf"
Внесите необходимые изменения в файл /var/www/nw-api/settings.py
для подключения к СУБД PostgreSQL, где:
DB_HOST
— адрес СУБД;
DB_PASS
— пароль пользователя nw_api, заданный в п.1, для подключения к СУБД;
PROXY
— адрес прокси сервера (если используется) для подключения к nemesida-secuirty.com.
4. Перезагрузите сервер и проверьте работу модуля:
# 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 ...
2. На сервере с установленным модулем Nemesida AI MLC внесите изменения в конфигурационный файл /opt/mlc/mlc.conf
, приведя параметр к виду:
api_uri = http://nwaf-api.example.com:8080/nw-api/
3. После внесения изменений необходимо перезапустить сервисы или перезагрузить сервер.
nwaf-api.example.com:8080
— адрес и порт сервера, на котором установлен модуль Nemesida WAF API.
Информация о событиях, поступающих в модуль Nemesida WAF API, размещается в базе данных waf
в таблицах attack
, ml
и scan_report
.