Пример конфигурации NGINX для зеркалирования трафика¶
Начиная с версии 1.13, NGINX поддерживает зеркалирование трафика на дополнительные бэкенд‑сервисы. В этой инструкции приведен пример конфигурации NGINX для зеркалирования трафика и ноды Вебмониторэкс для обработки зеркалированного трафика.
Шаг 1: Конфигурация NGINX для зеркалирования трафика¶
Чтобы NGINX зеркалировал входящий трафик:
-
Настройте модуль NGINX
ngx_http_mirror_module
, задав директивуmirror
в блокеlocation
илиserver
.Пример ниже зеркалирует трафик с
location /
наlocation /mirror-test
. -
В настройках
location
, на который указывает директиваmirror
, перечислите заголовки, которые необходимо зеркалировать. В качестве IP‑адреса укажите машину с нодой Вебмониторэкс, которая принимает копию трафика.
location / {
mirror /mirror-test;
mirror_request_body on;
root /usr/share/nginx/html;
index index.html index.htm;
}
location /mirror-test {
internal;
#proxy_pass http://111.11.111.1$request_uri;
proxy_pass http://222.222.222.222$request_uri;
proxy_set_header X-SERVER-PORT $server_port;
proxy_set_header X-SERVER-ADDR $server_addr;
proxy_set_header HOST $http_host;
proxy_set_header X-Forwarded-For $realip_remote_addr;
proxy_set_header X-Forwarded-Port $realip_remote_port;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
proxy_set_header X-Scheme $scheme;
proxy_set_header X-Request-ID $request_id;
}
Шаг 2: Конфигурация ноды Вебмониторэкс для фильтрации зеркалированного трафика¶
Чтобы нода Вебмониторэкс обрабатывала зеркалированный трафик, в конфигурационном файле ноды задайте следующее:
wallarm_force server_addr $http_x_server_addr;
wallarm_force server_port $http_x_server_port;
#Change 222.222.222.22 to the address of the mirroring server
set_real_ip_from 222.222.222.22;
real_ip_header X-Forwarded-For;
#real_ip_recursive on;
wallarm_force response_status 0;
wallarm_force response_time 0;
wallarm_force response_size 0;
-
Директива
real_ip_header
необходима, чтобы в Консоли управления Вебмониторэкс правильно отображались IP‑адреса атакующих. -
Директивы
wallarm_force_response_*
отключают обработку всех запросов, за исключением копий, полученных из зеркалированного трафика. -
Так как блокировка вредоносных запросов невозможна, нода Вебмониторэкс всегда анализирует трафик в режиме мониторинга, даже если в директиве
wallarm_mode
или в Консоли управления задан режим мягкой или обычной блокировки. Исключение — анализ трафика отключен (wallarm_mode off
или соответствующая настройка в Консоли управления).
Обработка зеркалированного трафика поддерживается только нодой на основе NGINX. Можно задать приведенную конфигурацию следующим образом:
-
Запускаете ноду из DEB/RPM пакетов — задайте приведенную конфигурацию в файле NGINX
/etc/nginx/conf.d/default.conf
. -
Запускаете ноду из облачного образа GCP — задайте приведенную конфигурацию в файле NGINX
/etc/nginx/nginx.conf
. -
Устанавливаете ноду из Docker-образа — примонтируйте файл с приведенной конфигурацией в контейнер.
-
Запускаете ноду как Ingress-контроллер — примонтируйте ConfigMap с приведенной конфигурацией в под.