SafeLine представляет из себя веб панель для управления обратным прокси для веб ресурсов с базовыми возможностями по защите. Бесплатная версия включает в себя следующие возможности:
◽️принимает на себя все запросы и проксирует их на указанные локальные или удалённые сервисы;
◽️получает бесплатные сертификаты от let's encrypt и использует их для защищаемых ресурсов;
◽️блокирует запросы со стандартными уязвимостями: SQL Injection, XSS, Path Traversal, Code Injection, XXE и некоторыми другими;
◽️устанавливает лимиты к различным ресурсам на основе количества запросов и кодов ответов с ошибками;
◽️определяет по IP страну, ведёт статистику и рисует карты запросов
◽️ведёт логи всех запросов;
◽️позволяет создавать простые правила блокировки на основе IP адресов, URL, методов и т.д.
Устанавливается и настраивается эта штука очень просто. Есть скрипт для автоматической установки через docker compose, либо вручную по инструкции.
Я развернул SafeLine в автоматической установке. Далее:
1️⃣ Настроил DNS запись для сервера.
2️⃣ Установил на него тестовое веб приложение.
3️⃣ Зашёл в SafeLine, получил для домена TLS сертификат.
4️⃣ Настроил обратное проксирвоание на локальный url с использованием TLS сертификата и доменного имени.
5️⃣ Потестировал различные запросы и посмотрел, как WAF на них реагирует.
В целом, работает нормально. Настраивается просто и быстро. Выглядит аккуратно и удобно. Для тестов использовал подобные запросы:
▪️SQL Injection:
/?id=1+and+1=2+union+select+1▪️XSS:
/?id=<img+src=x+onerror=alert()>▪️Path
/?id=../../../../etc/passwd▪️Code Injection:
/?id=phpinfo();system('id')▪️XXE:
/?id=<?xml+version="1.0"?><!DOCTYPE+foo+SYSTEM+"">Кстати, их можно сохранить к себе, если будете настраивать и тестировать похожие продукты.
❗️Теперь про минусы. В веб интерфейсе много интересных возможностей заблокировано. Бесплатная функциональность выглядит немного куцо. Неудобно, что они смешали в одной панели платные и бесплатные возможности. В целом, подход понятен, надо продавать продукт.
❗️В лицензионном соглашении сказано, что собирается какая-то обезличенная информация об IP адресе сервера и версиях ПО для развития продукта. Это не редкость для бесплатных продуктов. С одной стороны хорошо, что сказали, с другой - лучше бы не собирали.
С учётом перечисленных минусов, куда-то в свою инфраструктуру ставить это не надо. А для каких-то небольших внешних проектов на отдельных VPS в интернете, думаю, можно. Особенно, если надо настроить и кому-то отдать в управление, кто с этим не очень разбирается. Можно зайти в веб интерфейс, посмотреть статистику и быстро кого-то заблокировать, кто спамит запросами. Ну и плюс базовая защита от стандартных атак уже работает из коробки.
⇨ 🌐 Сайт / Исходники
В завершении перечислю полезные ссылки по теме:
🔹Тестирование WAF с помощью waf-bypass или gotestwaf.
🔹WAF Open-appsec в виде модуля к Nginx.
🔹WAF Bunkerweb на базе Nginx и ModSecurity с веб панелью.
🔹Nemesida WAF - есть бесплатная версия коммерческого продукта.
🔹VultureProject - WAF+Firewall+Load-balancing+reverse-proxy на базе HardenedBSD.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#waf


