Перейти к содержанию

Настройка режима фильтрации трафика

С помощью режима фильтрации трафика настраивается поведение WAF‑ноды при обработке входящих запросов. В данной инструкции описываются возможные режимы и способ их настройки.

Возможные режимы фильтрации трафика

WAF‑нода может обрабатывать входящие запросы в следующих режимах (от наиболее мягкого до наиболее жесткого):

Способы настройки режима фильтрации трафика

Режим фильтрации можно задать следующими способами:

  • Установить значение директивы wallarm_mode в файле конфигурации WAF‑ноды

  • Установить общее правило фильтрации в Консоли управления Валарм

  • Создать правило для режима фильтрации на вкладке Правила в Консоли управления Валарм

Управление приоритетами способов для настройки режима выполняется с помощью директивы wallarm_mode_allow_override. По умолчанию более высокий приоритет имеют настройки, заданные в Консоли управления Валарм, вне зависимости от степени жесткости режима, настроенного с помощью директивы wallarm_mode.

Настройка режима фильтрации с помощью директивы wallarm_mode

При помощи директивы wallarm_mode в файле конфигурации WAF‑ноды вы можете установить режимы фильтрации на разных уровнях (уровни перечислены от наиболее глобального до наиболее локального):

  • http: директивы внутри блока http действуют на запросы к HTTP‑серверу.

  • server: директивы внутри блока server действуют на запросы к виртуальному серверу.

  • location: директивы внутри блока location действуют только на запросы с определенным путем.

Если на разных уровнях иерархии вложенных блоков http, server и location указаны разные значения директивы wallarm_mode, приоритет имеет наиболее локальная настройка.

Пример использования директивы wallarm_mode:

http {

    wallarm_mode monitoring;

    server {
        server_name SERVER_A;
    }

    server {
        server_name SERVER_B;
        wallarm_mode off;
    }

    server {
        server_name SERVER_C;
        wallarm_mode off;

        location /main/content {
            wallarm_mode monitoring;
        }

        location /main/login {
            wallarm_mode block;
        }

        location /main/reset-password {
            wallarm_mode safe_blocking;
        }
    }
}

Этот пример конфигурации устанавливает следующие режимы фильтрации для ресурсов:

  1. Для запросов к HTTP‑серверу действует режим monitoring.

  2. Для запросов к виртуальному серверу SERVER_A действует режим monitoring.

  3. Для запросов к виртуальному серверу SERVER_B действует режим off.

  4. Для запросов к виртуальному серверу SERVER_C действует режим off, кроме запросов с путем /main/content, /main/login или /main/reset-password:

    1. Для запросов с путем /main/content к виртуальному серверу SERVER_C действует режим monitoring.
    2. Для запросов с путем /main/login к виртуальному серверу SERVER_C действует режим block.
    3. Для запросов с путем /main/reset-password к виртуальному серверу SERVER_C действует режим safe_blocking.

Общее правило фильтрации в Консоли управления Валарм

Панель на вкладке Общие в настройках Консоли управления Валарм в EU‑облаке или RU‑облаке устанавливает общий режим фильтрации для всех входящих запросов. Такую же область действия имеет директива wallarm_mode, значение которой задано в блоке http в конфигурационном файле.

Если на вкладке Правила в Консоли управления Валарм заданы локальные настройки режима фильтрации, они имеют больший приоритет для своей области действия, чем глобальная настройка на вкладке Общие.

На вкладке Общие можно задать следующие режимы фильтрации:

Страница общих настроек

Синхронизация Облака Валарм с WAF‑нодой

Применение правил, заданных в Консоли управления Валарм, происходит при синхронизации Облака с WAF‑нодой. По умолчанию этот процесс запускается раз в 2‑4 минуты.

Подробнее о настройке синхронизации WAF‑ноды с Облаком Валарм →

Правило для режима фильтрации на вкладке "Правила"

Вы можете выполнить тонкую настройку режима фильтрации для обработки запросов, удовлетворяющих заданным вами условиям, на вкладке Правила Консоли управления Валарм. Правила режима фильтрации на вкладке Правила имеют больший приоритет, чем общее правило фильтрации в Консоли управления.

Синхронизация Облака Валарм с WAF‑нодой

Применение правил, заданных в Консоли управления Валарм, происходит при синхронизации Облака с WAF‑нодой. По умолчанию этот процесс запускается раз в 2‑4 минуты.

Подробнее о настройке синхронизации WAF‑ноды с Облаком Валарм →

Управление приоритетами способов настройки режима с помощью директивы wallarm_mode_allow_override

Директива wallarm_mode_allow_override управляет возможностью использовать правила, определенные в Консоли управления Валарм, вместо значений директивы wallarm_mode в конфигурации WAF‑ноды:

  • off: правила, заданные в Консоли управления, игнорируются. Применяются правила, заданные директивой wallarm_mode в файлах конфигурации.

  • strict: применяются только те правила из Консоли управления, которые задают более жесткие режимы, чем режимы, заданные директивой wallarm_mode в файлах конфигурации. При этом, если в директиве wallarm_mode передано значение off, его невозможно переопределить с помощью настроек в Консоли управления.

    Возможные режимы фильтрации в порядке возрастания жесткости перечислены выше.

  • on (по умолчанию): применяются правила из Консоли управления. Настройки режима фильтрации трафика, заданные в конфигурационных файлах, игнорируются. При этом, если в директиве wallarm_mode передано значение off, его невозможно переопределить с помощью настроек в Консоли управления.

В списке ниже перечислены уровни, на которых можно задать значения директивы wallarm_mode_allow_override (от наиболее глобального до наиболее локального):

  • http: директивы внутри блока http действуют на запросы к HTTP‑серверу.

  • server: директивы внутри блока server действуют на запросы к виртуальному серверу.

  • location: директивы внутри блока location действуют только на запросы с определенным путем.

Если на разных уровнях вложенных блоков http, server и location указаны разные значения директивы wallarm_mode_allow_override, приоритет имеет наиболее локальная настройка.

Пример использования директивы wallarm_mode_allow_override:

http {

    wallarm_mode monitoring;

    server {
        server_name SERVER_A;
        wallarm_mode_allow_override off;
    }

    server {
        server_name SERVER_B;
        wallarm_mode_allow_override on;

        location /main/login {
            wallarm_mode_allow_override strict;
        }
    }
}

Этот пример конфигурации устанавливает следующие возможности для переопределения режима фильтрации:

  1. Для запросов к виртуальному серверу SERVER_A правила режима фильтрации, заданные в Консоли управления, игнорируются. В блоке server, соответствующем серверу SERVER_A, нет директивы wallarm_mode. Поэтому для таких запросов будет работать режим фильтрации monitoring, указанный в блоке http.

  2. Для запросов к виртуальному серверу SERVER_B, кроме запросов с путем /main/login, применяются правила режима фильтрации, заданные в Консоли управления.

    Для запросов с путем /main/login к виртуальному серверу SERVER_B правила режима фильтрации, заданные в Консоли управления, применяются только в случае, когда они устанавливают более жесткий режим фильтрации, чем monitoring.

Пример конфигурации режима фильтрации

Рассмотрим частный пример конфигурации режима фильтрации с использованием всех перечисленных выше методов.

Настройка режима фильтрации в файле конфигурации WAF‑ноды

http {

    wallarm_mode block;

    server { 
        server_name SERVER_A;
        wallarm_mode monitoring;
        wallarm_mode_allow_override off;

        location /main/login {
            wallarm_mode block;
            wallarm_mode_allow_override strict;
        }

        location /main/signup {
            wallarm_mode_allow_override strict;
        }

        location /main/apply {
            wallarm_mode block;
            wallarm_mode_allow_override on;
        }
    }
}

Настройка в Консоли управления Валарм

  • Общий режим фильтрацииМониторинг.

  • Правила фильтрации:

    • Если запрос удовлетворяет условиям:

      • Метод — POST,
      • Первая часть пути — main,
      • Вторая часть пути — apply, то установить режим фильтрации По умолчанию.
    • Если запрос удовлетворяет условию:

      • Первая часть пути — main, то установить режим фильтрации Блокировка.
    • Если запрос удовлетворяет условиям:

      • Первая часть пути — main,
      • Вторая часть пути — login, то установить режим фильтрации Мониторинг.

Примеры запросов к серверу SERVER_A

Примеры запросов к настроенному серверу SERVER_A и действий, применяемых WAF‑нодой Валарм в отношении этих запросов:

  • Вредоносный запрос с путем /news обработается, но не будет заблокирован из‑за настройки wallarm_mode monitoring; для сервера SERVER_A.

  • Вредоносный запрос с путем /main обработается, но не будет заблокирован из‑за настройки wallarm_mode monitoring; для сервера SERVER_A.

    К нему не применится облачное правило фильтрации Блокировка из‑за настройки wallarm_mode_allow_override off; для сервера SERVER_A.

  • Вредоносный запрос с путем /main/login будет заблокирован из‑за настройки wallarm_mode block; для запросов с путем /main/login.

    К нему не применится облачное правило фильтрации Мониторинг из‑за настройки wallarm_mode_allow_override strict; в файле конфигурации WAF‑ноды.

  • Вредоносный запрос с путем /main/signup будет заблокирован из‑за настройки wallarm_mode_allow_override strict; для запросов с путем /main/signup и облачного правила фильтрации Блокировка для запросов с путем /main.

  • Вредоносный запрос с путем /main/apply и методом GET будет заблокирован из‑за настройки wallarm_mode_allow_override on; для запросов с путем /main/apply и облачного правила фильтрации Блокировка для запросов с путем /main.

  • Вредоносный запрос с путем /main/apply и методом POST будет заблокирован из‑за настройки wallarm_mode_allow_override on; для запросов с путем /main/apply, облачного правила фильтрации По умолчанию и настройки wallarm_mode block; для запросов с путем /main/apply в файле конфигурации WAF‑ноды.