Утилита 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";
- Предикат с возможностями добавления сертификата и аутентификационных данных с настройками безопасности для запросов к KOMRAD Enterprise SIEM.
komrad: * -> pauth(
"https://[ip_komrad]/api/v1/login",
"/run/secrets/echelon-pauth-user",
"/run/secrets/echelon-pauth-password",
"/var/lib/echelon/komrad/certs/ca.pem"
)
-> "https://[ip_komrad]]";
Сценарии использования на Windows с ViPNet
Скачиваем на машину с подключением к ГосСОПКА:
- komrad-waf-proxy.exe
- komrad-waf-proxy-gossopka-setup.eskip
- server-key.pem и server.pem
- komrad-waf-proxy-gossopka-messages.lua
Выбираем подходящий предикат для нашего файла, например, разрешим всем подключение к ГосСОПКА:
all: * -> lua("komrad-waf-proxy-gossopka-messages.lua") -> "https://lk.cert.gov.ru";
Запустим PowerShell
и выполним команду:
.\komrad-waf-proxy.exe server -tls-key .\certs\server-key.pem -tls-cert .\certs\server.pem -routes-file .\komrad-waf-proxy-gossopka-setup.eskip
В данном случае мы разрешаем подключение всем, у кого есть сертификат доступа к KOMRAD и доступ в ГосСОПКА.
Адрес проксирования будет https://ip
:9090