Видимо, что-то сделал не так

D_K_69

Member
Здравствуйте.
Я устанавливал Nemesida WAF с помощью docker образов согласно инструкций. При проверке работы динамического модуля через страницу авторизации защищаемого ресурса в логах ничего не происходило, в связи с чем я подозреваю, что что-то сделал не совсем верно.

Содержание файла /opt/nwaf/waf-config/nwaf/conf/global/nwaf.conf
##
# Nemesida WAF minimal settings
# Use the web interface for managing some other settings (only for the commercial version)
##

##
# License key and signature database
##

nwaf_license_key none;
nwaf_rules /etc/nginx/nwaf/rules.bin;

##
# Nemesida WAF API and proxy settings
##

nwaf_sys_proxy none;
nwaf_api_proxy none;
nwaf_api_conf host=http://192.168.88.224:8080;

##
# Nemesida WAF activation for virtual host
##

nwaf_host_enable *;

##
# MLA settings
##

nwaf_mla 127.0.0.1:5101 mla_score:2;
nwaf_mla_api 127.0.0.1:5102;

##
# RabbitMQ and AI extra global settings
##

nwaf_rmq host=127.0.0.1 user=guest password=guest;

##
# ClamAV settings
##

# nwaf_clamav 127.0.0.1:3310 FILE_ONLY;

##
# GeoLite2 Country databases
##

# nwaf_geoip_db_path /path/to/GeoLite2-City.mmdb;

Содержание файла /opt/nwaf/waf-config/conf.d/mirror.conf
upstream sites_upstream {

server 92.246.149.159;
}

server {

server_name dev.kamotive.ru;
listen 80;

location / {
proxy_pass http://sites_upstream;
# include proxy_params;

}
}
Защищаемый ресурс находится на ip 92.246.149.159, доменное имя защищаемого ресурса dev.kamotive.ru

UPD: Логи /var/log/nginx/error.log
root@7958b1a853f8:/# tail -f /var/log/nginx/error.log
2022/10/31 13:05:28 [notice] 301#301: Nemesida WAF: the parameter "nwaf_mla_api" is valid only in the commercial version and will be ignored in Nemesida WAF Community Edition in /etc/nginx/nginx.conf:43
2022/10/31 13:05:28 [notice] 301#301: using the "epoll" event method
2022/10/31 13:05:28 [notice] 301#301: start worker processes
2022/10/31 13:05:28 [notice] 301#301: start worker process 351
2022/10/31 13:05:28 [notice] 303#303: gracefully shutting down
2022/10/31 13:05:28 [notice] 303#303: exiting
2022/10/31 13:05:28 [notice] 303#303: exit
2022/10/31 13:05:29 [notice] 301#301: signal 17 (SIGCHLD) received from 303
2022/10/31 13:05:29 [notice] 301#301: worker process 303 exited with code 0
2022/10/31 13:05:29 [notice] 301#301: signal 29 (SIGIO) received
 
Last edited:
Добрый день.
В данный лог пишутся сообщения о блокировке запросов динамическим модулем. Каким образом выполняется проверка его работы?
 
Добрый день.
По адресу открывается окно авторизации. При вводе некорректных данных не происходит блокировка динамическим модулем, а показывается стандартное сообщение "Введен некорректный логин или пароль". Метода взята из видео.
 
Пришлите, пожалуйста, скриншот страницы, где вводите логин и пароль. Вы имеете ввиду страницу веб-приложения, которое защищается или наш Личный кабинет?
 
О
Добрый день.
Скриншот прилагаю.
Я имею в виду страницу приложения, которую пытаюсь защитить.

Динамический модуль производит сигнатурный анализ запроса и блокирует в случае обнаружения сигнатур. В полях для ввода вы указываете просто логин/пароль или пытаетесь атаковать страницу с аутентификацией? Если пытаетесь атаки отправлять, то напишите, пожалуйста, что отправляете.
 
Добрый день.
Пришлите, пожалуйста, error.log Nginx и лог ЛК /var/log/uwsgi/cabinet/app.log

лог nginx
root@bd5ef24a2f5c:/# tail /var/log/nginx/error.log
2022/11/02 12:11:26 [notice] 303#303: gracefully shutting down
2022/11/02 12:11:26 [notice] 303#303: exiting
2022/11/02 12:11:26 [notice] 303#303: exit
2022/11/02 12:11:28 [notice] 301#301: signal 17 (SIGCHLD) received from 303
2022/11/02 12:11:28 [notice] 301#301: worker process 303 exited with code 0
2022/11/02 12:11:28 [notice] 301#301: signal 29 (SIGIO) received
2022/11/02 12:12:01 [error] 351#351: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.88.102, server: dev.kamotive.ru, request: "GET /waf/personal/ HTTP/1.1", upstream: "http://92.246.149.159:80/waf/personal/", host: "192.168.88.224"
2022/11/02 12:12:01 [error] 351#351: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.88.102, server: dev.kamotive.ru, request: "GET /favicon.ico HTTP/1.1", upstream: "http://92.246.149.159:80/favicon.ico", host: "192.168.88.224", referrer: "http://192.168.88.224/waf/personal/"
2022/11/03 05:26:09 [error] 351#351: *4 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.88.102, server: dev.kamotive.ru, request: "GET /waf/personal/ HTTP/1.1", upstream: "http://92.246.149.159:80/waf/personal/", host: "192.168.88.224"
2022/11/03 05:26:10 [error] 351#351: *4 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.88.102, server: dev.kamotive.ru, request: "GET /favicon.ico HTTP/1.1", upstream: "http://92.246.149.159:80/favicon.ico", host: "192.168.88.224", referrer: "http://192.168.88.224/waf/personal/"

логи кабинета
root@cecc4cf8b5cf:/# cat /var/log/uwsgi/cabinet/app.log
chdir() to /var/www/app
your memory page size is 4096 bytes
*** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers ***
detected max file descriptor number: 1048576
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to UNIX address /var/www/app/cabinet.sock fd 3
setgid() to 33
setuid() to 33
Python version: 3.9.2 (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110]
Python main interpreter initialized at 0x5574f9856a90
python threads support enabled
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 600 seconds
mapped 656136 bytes (640 KB) for 8 cores
*** Operational MODE: preforking ***
WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x5574f9856a90 pid: 80 (default app)
spawned uWSGI master process (pid: 80)
spawned the uWSGI spooler on dir /var/www/app/tasks with pid 123
spawned uWSGI worker 1 (pid: 124, cores: 1)
spawned uWSGI worker 2 (pid: 125, cores: 1)
spawned uWSGI worker 3 (pid: 126, cores: 1)
spawned uWSGI worker 4 (pid: 127, cores: 1)
spawned uWSGI worker 5 (pid: 128, cores: 1)
spawned uWSGI worker 6 (pid: 129, cores: 1)
spawned uWSGI worker 7 (pid: 130, cores: 1)
spawned uWSGI worker 8 (pid: 131, cores: 1)
spawned uWSGI mule 1 (pid: 132)
only the master and the workers can register signal handlers
worker 1 lifetime reached, it was running for 3601 second(s)
worker 2 lifetime reached, it was running for 3601 second(s)
worker 3 lifetime reached, it was running for 3601 second(s)
worker 4 lifetime reached, it was running for 3601 second(s)
worker 5 lifetime reached, it was running for 3601 second(s)
worker 6 lifetime reached, it was running for 3601 second(s)
worker 7 lifetime reached, it was running for 3601 second(s)
worker 8 lifetime reached, it was running for 3601 second(s)
Respawned uWSGI worker 1 (new pid: 1761)
Respawned uWSGI worker 2 (new pid: 1762)
Respawned uWSGI worker 3 (new pid: 1763)
Respawned uWSGI worker 4 (new pid: 1764)
Respawned uWSGI worker 5 (new pid: 1765)
Respawned uWSGI worker 6 (new pid: 1766)
Respawned uWSGI worker 7 (new pid: 1767)
Respawned uWSGI worker 8 (new pid: 1768)
*******************
Respawned uWSGI worker 1 (new pid: 27340)
Respawned uWSGI worker 2 (new pid: 27341)
Respawned uWSGI worker 3 (new pid: 27342)
Respawned uWSGI worker 4 (new pid: 27343)
Respawned uWSGI worker 5 (new pid: 27344)
Respawned uWSGI worker 6 (new pid: 27345)
Respawned uWSGI worker 7 (new pid: 27346)
Respawned uWSGI worker 8 (new pid: 27347)
worker 1 lifetime reached, it was running for 3601 second(s)
worker 2 lifetime reached, it was running for 3601 second(s)
worker 3 lifetime reached, it was running for 3601 second(s)
worker 4 lifetime reached, it was running for 3601 second(s)
worker 5 lifetime reached, it was running for 3601 second(s)
worker 6 lifetime reached, it was running for 3601 second(s)
worker 7 lifetime reached, it was running for 3601 second(s)
worker 8 lifetime reached, it was running for 3601 second(s)
Respawned uWSGI worker 1 (new pid: 28962)
Respawned uWSGI worker 2 (new pid: 28963)
Respawned uWSGI worker 3 (new pid: 28964)
Respawned uWSGI worker 4 (new pid: 28965)
Respawned uWSGI worker 5 (new pid: 28966)
Respawned uWSGI worker 6 (new pid: 28967)
Respawned uWSGI worker 7 (new pid: 28968)
Respawned uWSGI worker 8 (new pid: 28969)
root@cecc4cf8b5cf:/#
 
О

Динамический модуль производит сигнатурный анализ запроса и блокирует в случае обнаружения сигнатур. В полях для ввода вы указываете просто логин/пароль или пытаетесь атаковать страницу с аутентификацией? Если пытаетесь атаки отправлять, то напишите, пожалуйста, что отправляете.
На странице авторизации я ввожу неверный логин и пароль.
 
лог nginx


логи кабинета

*******************
Попробуйте воспроизвести проблему после активации режима дебага в Личном кабинете. Для этого:
1. Установите значение Debug = True в /var/www/app/cabinet/settings.py
2. Перезапустите сервисы Личного кабинета
Если проблема продолжит воспроизводиться - пришлите, пожалуйста, скриншот ошибки со страницы. После воспроизведения проблемы режим отладки рекомендуется отключить, сменив True -> False и повторно перезапустив сервисы Личного кабинета.
 
Попробуйте воспроизвести проблему после активации режима дебага в Личном кабинете. Для этого:
1. Установите значение Debug = True в /var/www/app/cabinet/settings.py
2. Перезапустите сервисы Личного кабинета
Если проблема продолжит воспроизводиться - пришлите, пожалуйста, скриншот ошибки со страницы. После воспроизведения проблемы режим отладки рекомендуется отключить, сменив True -> False и повторно перезапустив сервисы Личного кабинета.
Настройки для дебага задал, сервисы перезапустил. Все то же самое, 502 ошибка. Лог nginx
root@1651272a974d:/# tail /var/log/nginx/error.log
2022/11/08 12:08:15 [notice] 301#301: start worker processes
2022/11/08 12:08:15 [notice] 301#301: start worker process 351
2022/11/08 12:08:15 [notice] 303#303: gracefully shutting down
2022/11/08 12:08:15 [notice] 303#303: exiting
2022/11/08 12:08:15 [notice] 303#303: exit
2022/11/08 12:08:16 [notice] 301#301: signal 17 (SIGCHLD) received from 303
2022/11/08 12:08:16 [notice] 301#301: worker process 303 exited with code 0
2022/11/08 12:08:16 [notice] 301#301: signal 29 (SIGIO) received
2022/11/08 12:09:03 [error] 351#351: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.88.102, server: dev.kamotive.ru, request: "GET /waf/personal/ HTTP/1.1", upstream: "http://92.246.149.159:80/waf/personal/", host: "192.168.88.224"
2022/11/08 12:09:03 [error] 351#351: *1 connect() failed (111: Connection refused) while connecting to upstream, client: 192.168.88.102, server: dev.kamotive.ru, request: "GET /favicon.ico HTTP/1.1", upstream: "http://92.246.149.159:80/favicon.ico", host: "192.168.88.224", referrer: "http://192.168.88.224/waf/personal/"
root@1651272a974d:/#
Лог кабинета
root@92d821a84e85:/# cat /var/log/uwsgi/cabinet/app.log
chdir() to /var/www/app
your memory page size is 4096 bytes
*** WARNING: you have enabled harakiri without post buffering. Slow upload could be rejected on post-unbuffered webservers ***
detected max file descriptor number: 1048576
lock engine: pthread robust mutexes
thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to UNIX address /var/www/app/cabinet.sock fd 3
setgid() to 33
setuid() to 33
Python version: 3.9.2 (default, Feb 28 2021, 17:03:44) [GCC 10.2.1 20210110]
Python main interpreter initialized at 0x55edb0ceca90
python threads support enabled
your server socket listen backlog is limited to 100 connections
your mercy for graceful operations on workers is 600 seconds
mapped 656136 bytes (640 KB) for 8 cores
*** Operational MODE: preforking ***
WSGI app 0 (mountpoint='') ready in 1 seconds on interpreter 0x55edb0ceca90 pid: 80 (default app)
spawned uWSGI master process (pid: 80)
spawned the uWSGI spooler on dir /var/www/app/tasks with pid 119
spawned uWSGI worker 1 (pid: 120, cores: 1)
spawned uWSGI worker 2 (pid: 121, cores: 1)
spawned uWSGI worker 3 (pid: 122, cores: 1)
spawned uWSGI worker 4 (pid: 123, cores: 1)
spawned uWSGI worker 5 (pid: 124, cores: 1)
spawned uWSGI worker 6 (pid: 125, cores: 1)
spawned uWSGI worker 7 (pid: 126, cores: 1)
spawned uWSGI worker 8 (pid: 127, cores: 1)
spawned uWSGI mule 1 (pid: 128)
only the master and the workers can register signal handlers
Скриншот
 
Пришлите файлы конфигурации Nginx. Где-то в конфигурации Nginx вы допустили ошибки.
 
Пришлите файлы конфигурации Nginx. Где-то в конфигурации Nginx вы допустили ошибки.
Эммм. Вообще-то я запускал докер контейнер и не правил конфиги nginx. Вот что имеется в настройках:
root@nemesidawaf:/home/damir# docker exec -ti 1651272a974d bash
root@1651272a974d:/# cat /etc/nginx/nginx.conf
load_module /etc/nginx/modules/ngx_http_waf_module.so;
user nginx;
worker_processes auto;

error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;


events {
worker_connections 1024;
}


http {
include /etc/nginx/mime.types;
default_type application/octet-stream;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';

access_log /var/log/nginx/access.log main;

sendfile on;
#tcp_nopush on;

keepalive_timeout 65;

#gzip on;

##
# Nemesida WAF
##

## Fix: request body too large
client_body_buffer_size 25M;

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


include /etc/nginx/conf.d/*.conf;
}
 
Эммм. Вообще-то я запускал докер контейнер и не правил конфиги nginx. Вот что имеется в настройках:
У вас все модули в Docker развернуты?
 
У вас все модули в Docker развернуты?
Да, в первом сообщении об этом сказано. Развернуты модули
root@nemesidawaf:/home/damir# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
92d821a84e85 nemesida/nwaf-web "/bin/bash /opt/nwaf…" 20 hours ago Up 20 hours 5432/tcp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:8090->80/tcp, :::8090->80/tcp musing_almeida
1651272a974d nemesida/nwaf-dyn-ce "/bin/bash /opt/nwaf…" 20 hours ago Up 20 hours 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:5672->5672/tcp, :::5672->5672/tcp, 443/tcp xenodochial_stonebraker
 
Vs gthtlf
Есть варианты решить проблему?
Передали проблему разработчикам. Как только выясним причину такого поведения - напишем и выпустим сборку.
 
Есть варианты решить проблему?
Какие характеристики сервера, на котором Вы запускаете докер-контейнер? (количество ядер, количество оперативной памяти)
 
Back
Top