Утилита WAF&Proxy
KOMRAD-waf-proxy — это HTTP-маршрутизатор и прокси-сервер. Он предназначен для обработки большого количества динамически настраиваемых определений маршрутов HTTP (> 800 000 маршрутов). В его функции входит определять маршруты на основе свойств запросов, таких как путь, метод, хост и заголовки, используя правила. Это позволяет модифицировать запросы и ответы с помощью фильтров, которые настраиваются независимо для каждого маршрута.
Предикаты
Предикаты используются для определения того, какой маршрут будет обрабатывать входящий запрос. Маршруты могут содержать несколько предикатов. Запрос будет соответствовать маршруту только в том случае, если все предикаты маршрута совпадают.
Возможно множество вариантов настройки правил проксирования (предикатов). Они записываются в файл с расширением .eskip
. Мы предоставляем типовы е правила использования.
- Предикат с возможностью модификации запроса для ГосСОПКА с помощью файла
komrad-waf-proxy-gossopka-messages.lua
и возможностью отправки только из KOMRAD
sopkaMessagesTest:
PathRegexp("^\/api\/v2\/(incidents|comments).*")
-> lua("komrad-waf-proxy-gossopka-messages.lua")
-> "https://lk.cert.gov.ru";
sopkaMessagesProd:
Header("X-KOMRAD-SOPKA", "true")
&& PathRegexp("^\/api\/v2\/(incidents|comments).*")
-> lua("komrad-waf-proxy-gossopka-messages.lua")
-> "https://lk.cert.gov.ru";
rest: *
-> status(404)
-> inlineContent("no matching route")
-> <shunt>;
- Предикат с возможностью модификации запроса для ГосСОПКА с помощью файла
komrad-waf-proxy-gossopka-messages.lua
с любого хоста подключиться к ГосСОПКА
all: * -> lua("komrad-waf-proxy-gossopka-messages.lua") -> "https://lk.cert.gov.ru";