Настройки прокси в конфигурационных файлах WAF

Leroy

Member
Добрый день,

Могли бы вы перечислить все конфигурационные файлы в которых есть переменные для указания прокси-сервера и за какие взаимодействия (зависимости) они отвечают?
Мои серверы с модулями WAF выходят в интернет через прокси-сервер , может где то я не указал прокси-сервер, из-за этого у меня несколько проблем:
1.) автоматически не подгружается файлик rules.bin соответственно не работают сигнатуры.
2.) В личном кабинете не появляются запросы или тестовые проверки.

Я пробовал дома (без прокси) развернуть WAF и там таких проблем нет- по этому и хочу разобраться где надо указать прокси и за что отвечает в том или ином конфиге, думаю такая информацию будет полезна всем в этом форуме.
P.s: (WAF модули развернуты через docker)
 
Last edited:
Добрый день,

Могли бы вы перечислить все конфигурационные файлы в которых есть переменные для указания прокси-сервера и за какие взаимодействия (зависимости) они отвечают?
Мои серверы с модулями WAF выходят в интернет через прокси-сервер , может где то я не указал прокси-сервер, из-за этого у меня несколько проблем:
1.) автоматически не подгружается файлик rules.bin соответственно не работают сигнатуры.
2.) В личном кабинете не появляются запросы или тестовые проверки.

Я пробовал дома (без прокси) развернуть WAF и там таких проблем нет- по этому и хочу разобраться где надо указать прокси и за что отвечает в том или ином конфиге, думаю такая информацию будет полезна всем в этом форуме.
P.s: (WAF модули развернуты через docker)
Добрый день!

Фильтрующая нода (/etc/nginx/nwaf/conf/global/nwaf.conf):
nwaf_sys_proxy - задает адрес прокси-сервера для обращения к внешним ресурсам. Отвечает за проверку лицензионного ключа (если используется), получение сигнатур и т.д.;
nwaf_api_proxy - задает адрес прокси-сервера для взаимодействия с Nemesida WAF API. Необходим для отправки информации о заблокированных запросах на сервер Nemesida WAF API. Если информация не будет отправляться в Nemesida WAF API, то не будет отображаться в Личном кабинете. Подробнее: https://nemesida-waf.ru/about/11181#not_displayed

Nemesida AI (доступно только в коммерческой версии) (/opt/mlc/mlc.conf):

sys_proxy - задает адрес прокси-сервера для обращения к внешним ресурсам. Отвечает за проверку лицензионного ключа (если используется), активацию функций модуля машинного обучения и т.д.;
api_proxy - задает адрес прокси-сервера для взаимодействия с Nemesida WAF API.

Nemesida WAF API (/var/www/nw-api/settings.py):

PROXY - задает адрес прокси-сервера для обращения к внешним ресурсам.

Личный кабинет (/var/www/app/cabinet/settings.py):

HTTP_PROXY_CONF - задает адрес прокси-сервера для обращения к внешним ресурсам;
API_PROXY - задает адрес прокси-сервера для взаимодействия с Nemesida WAF API.

По вашим проблемам:
1. Отсутствует доступ к внешним ресурсам. Необходимо задать параметр nwaf_sys_proxy. За получение сигнатур отвечает сервис nwaf_update - проверьте, что он активен и нет ошибок в логе /var/log/nwaf/nwaf_update.log;
2. Попробуйте выполнить действия для устранения проблемы, используя наше руководство (после устранения проблемы из п.1).
 
Большое спасибо за ответ.
Проблему из п.1 удалось устранить - файл подгружается и тест сигнатур проходит.
проблема из п.2 по прежнему актуальна, в журнале error.log такая запись:
2023/11/15 12:37:47 [error] 691#781: Nemesida WAF: an error occurred while sending data to Nemesida WAF API: Timeout was reached (attempt 19)
нужно ли в версии CE менять настройки mla и mlc , или они не зависят на принятие запросов api и отображении в личном кабинете?

Мой конфиг:
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 http://example.ru:3128 ##(сервер смотрит в интернет через прокси это помогло решить проблему из п.1)
nwaf_api_proxy none; ##(не указываю потому что контейнеры waf-dyn и waf-web, waf-mlc на одном виртуальном сервере)
nwaf_api_conf host=http://10.205.110.215:8080/nw-api/; ##мне кажется тут есть проблема потому что тест
##curl --proxy example.ru:3128 http://localhost/nwaftest проходит, а curl --proxy example.ru:3128 http://localhost:8080/nwaftest вызывает ошибку


##
# 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;
 
Большое спасибо за ответ.
Проблему из п.1 удалось устранить - файл подгружается и тест сигнатур проходит.
проблема из п.2 по прежнему актуальна, в журнале error.log такая запись:
2023/11/15 12:37:47 [error] 691#781: Nemesida WAF: an error occurred while sending data to Nemesida WAF API: Timeout was reached (attempt 19)
нужно ли в версии CE менять настройки mla и mlc , или они не зависят на принятие запросов api и отображении в личном кабинете?

Мой конфиг:
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 http://example.ru:3128 ##(сервер смотрит в интернет через прокси это помогло решить проблему из п.1)
nwaf_api_proxy none; ##(не указываю потому что контейнеры waf-dyn и waf-web, waf-mlc на одном виртуальном сервере)
nwaf_api_conf host=http://10.205.110.215:8080/nw-api/; ##мне кажется тут есть проблема потому что тест
##curl --proxy example.ru:3128 http://localhost/nwaftest проходит, а curl --proxy example.ru:3128 http://localhost:8080/nwaftest вызывает ошибку


##
# 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;
1. Возможно, у вас сейчас Nemesida WAF API не использует порт 8080. В одной из веток обсуждения вы писали, что меняете порт со стандартного 8080 на 8055. Проверьте конфигурацию еще раз и убедитесь, что Nemesida WAF API использует порт, указанный в файле конфигурации.
Ветка обсуждения: https://forum.nemesida-security.com/threads/Пошаговая-настройка-ce-free.115/page-2

2. Вы используете некоммерческую версию, поэтому изменять конфигурацию Nemesida AI MLA/MLC не требуется т.к. эти компоненты не используются.
 
Добрый день,

Да действительно у меня несколько веток обсуждений. Но в этой теме новая попытка конфигурации NWAF к сожалению проблемы повторились и устранить не получается.
сейчас конфигурация для фильтрующей ноды докера выглядит так:
nwaf_sys_proxy http://example.ru:3128 ;
nwaf_api_proxy none;
nwaf_api_conf host=http://10.205.110.215:8080/nw-api/;

при этом в ЛК иногда появляются запросы, но когда мы делаем запросы с помощью curl -i 10.205.110.215/nwaftest для проверки - они либо не долетают до личного кабинета либо прилетают с очень большой задержкой, что не позволяет констатировать что мы правильно настроили работу личного кабинета...

Уточните пожалуйста:
1.) за что конкретно отвечает nwaf_api_proxy ? (может ли этот периметр быть одинаковым с nwaf_sys_proxy ? (потому что судя по всему сейчас у нас работает без этого параметра.)
2.) в параметре nwaf_api_conf host нужно ли в конце дописывать /nw-api/; или можно просто порт?
3.) О чем говорит это ошибка и как исправить? 2023/11/20 10:21:11 [error] 679#698: Nemesida WAF: an error occurred while sending data to Nemesida WAF API: Timeout was reached (attempt 1)
с учётом п.3 в Личном кабинете всё равно периодически появляются записи о срабатывании сигнатур
 
Last edited:
Добрый день,

Да действительно у меня несколько веток обсуждений. Но в этой теме новая попытка конфигурации NWAF к сожалению проблемы повторились и устранить не получается.
сейчас конфигурация для фильтрующей ноды докера выглядит так:
nwaf_sys_proxy http://example.ru:3128 ;
nwaf_api_proxy none;
nwaf_api_conf host=http://10.205.110.215:8080/nw-api/;

при этом в ЛК иногда появляются запросы, но когда мы делаем запросы с помощью curl -i 10.205.110.215/nwaftest для проверки - они либо не долетают до личного кабинета либо прилетают с очень большой задержкой, что не позволяет констатировать что мы правильно настроили работу личного кабинета...

Уточните пожалуйста:
1.) за что конкретно отвечает nwaf_api_proxy ? (может ли этот периметр быть одинаковым с nwaf_sys_proxy ? (потому что судя по всему сейчас у нас работает без этого параметра.)
2.) в параметре nwaf_api_conf host нужно ли в конце дописывать /nw-api/; или можно просто порт?
3.) О чем говорит это ошибка и как исправить? 2023/11/20 10:21:11 [error] 679#698: Nemesida WAF: an error occurred while sending data to Nemesida WAF API: Timeout was reached (attempt 1)
с учётом п.3 в Личном кабинете всё равно периодически появляются записи о срабатывании сигнатур
1. nwaf_api_proxy - используется, когда доступ к серверу Nemesida WAF API осуществляется через прокси-сервер (может совпадать с nwaf_sys_proxy, если используется один и тот же прокси для доступа на внешние ресурсы и между серверами);
2. Нужно дописывать /nw-api/ согласно иструкции;
3. Ошибка говорит о том, что отсутствует связь с сервером Nemesida WAF API для отправки сообщений об инцидентах.

Проверьте:
1. Копится ли очередь сообщений api на RabbitMQ. Проверить можно командой: rabbitmqctl list_queues
Если очередь не копится и сообщения отправляются на API, то вывод будет такой:
Timeout: 60.0 seconds ...
Listing queues for vhost / ...
name messages
api 0
mlc 0
nwaf 0
log 0

2. Проверьте лог Nemesida WAF API (/var/log/uwsgi/nw-api/nw-api-logging.log)

3. Если какие-то сообщения все же появляются в Личном кабинете, то, пожалуйста, пришлите скриншот с информацией об этих сообщениях. Возможно, это поможет в понимании проблемы.
 
Back
Top