Пример конфигурации Traefik для зеркалирования трафика¶
В этой инструкции приведен пример конфигурации Traefik для зеркалирования трафика и ноды Вебмониторэкс для обработки зеркалированного трафика.
Шаг 1: Конфигурация Traefik для зеркалирования трафика¶
Приведенная конфигурация основана на подходе dynamic configuration file
. Веб-сервер Traefik поддерживает и другие подходы, вы можете адаптировать пример конфигурации к любому из них, так как они имеют похожие структуры.
### Dynamic configuration file
### Note: entrypoints are described in static configuration file
http:
services:
### This is how to map original and wallarm `services`.
### In further `routers` configuration (see below), please
### use the name of this service (`with_mirroring`).
###
with_mirroring:
mirroring:
service: "httpbin"
mirrors:
- name: "wallarm"
percent: 100
### The `service` to mirror traffic to - the endpoint
### that should receive the requests mirrored (copied)
### from the original `service`.
###
wallarm:
loadBalancer:
servers:
- url: "http://wallarm:8445"
### Original `service`. This service should receive the
### original traffic.
###
httpbin:
loadBalancer:
servers:
- url: "http://httpbin:80/"
routers:
### The router name must be the same as the `service` name
### for the traffic mirroring to work (with_mirroring).
###
with_mirroring:
entryPoints:
- "web"
rule: "Host(`mirrored.example.com`)"
service: "with_mirroring"
### The router for the original traffic.
###
just_to_original:
entryPoints:
- "web"
rule: "Host(`original.example.local`)"
service: "httpbin"
Подробнее в документации Traefik
Шаг 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 с приведенной конфигурацией в под.