Я давно уже получил рекомендацию на хороший бесплатный WAF (Web Application Firewall) - VultureProject. Только сейчас дошли руки на него посмотреть и попробовать. Это оказалось не так просто, как я думал. Потратил очень много времени. Сейчас расскажу обо всём по порядку.
Vulture основан на Freebsd, внутри у него известные компоненты, собранные воедино:
◽ haproxy в качестве tcp балансировщика
◽ apache в качестве http балансировщика
◽ darwin в качестве artificial Intelligence и machine learning, то есть фреймфорк для автоматизации поиска угроз
◽ redis, в том числе для сбора логов из Elasticsearch beats, таких как winlogbeat, filebeat, auditbeat, metricbeat, используется redis output
◽ mongodb в качестве БД
◽ BSD Packet Filter в качестве фаервола
◽ ModSecurity v3 для веб фильтрации
Всё вместе это организует шлюз для входящих запросов на различные приложения. Запросы анализируются и отправляются дальше на настроенные сервера с самими сайтами и приложениями. При этом Vulture умеет принимать не только запросы и выступать в качестве proxy, но и анализировать чужие логи, которые на него можно направить через различные протоколы.
К сожалению, у меня не получилось полноценно проверить работу этой системы. Недавно была анонсирована 4-я версия, которая в настоящий момент полностью не доделана. При этом изменился сайт и вся информация о 3-й версии, которая наиболее функциональна и которую мне рекомендовали, была удалена с сайта. Я даже не понял, где и как скачать 3-ю версию.
В настоящий момент на сайте есть 4-я версия. Для её установки предлагается скачать готовый образ виртуальной машины, что я и сделал. Скачал образ для KVM и развернул его на Proxmox. Достаточно создать виртуалку и заменить её диск на скачанный образ qcow2.
Далее загружаем систему и логинимся в неё. Учётка vlt-adm / vlt-adm. Далее в системе нужно обязательно войти в панель управления, введя в терминале:
# admin
Там необходимо настроить сетевой интерфейс и изменить имя хоста. Причём у меня не получилось настроить ip через dhcp. Почему-то адрес применился, а шлюз нет. В итоге пришлось отключить dhcp и настроить руками этот же адрес. В этой же панели управления рекомендую установить все обновления. Там и по самому продукту они прилетят.
После того, как настроите сеть и имя хоста (! это важно, измените дефолтное имя, иначе ничего не заработает), нужно выполнить команду:
# sudo /home/vlt-adm/gui/cluster_create.sh
После этого можно идти в веб интерфейс по адресу https://10.20.1.49:8000. Дальнейшая настройка производится через веб интерфейс. А это самое интересное, так как полноценной документации для 4-й версии нет. Кое-что открывается в описании к настройкам в веб интерфейсе, но не везде. Пришлось смотреть для 3-й версии, чтобы примерно понять концепцию и саму настройку.
Подробно расписывать всё не буду, так как слишком долго, да и всё равно полноценной инструкции не получится. Кому реально интересен подобного рода продукт, думаю, разберётся. Бесплатных аналогов всё равно не так много. Посмотреть их можно по тэгу в конце заметки. Я кое-что уже описывал. Подскажу только, чтобы было понятно куда двигаться. Добавить сайты, на которые будут проксироваться запросы, можно в разделе Applications. Добавляете новое приложение и прописываете все параметры.
Система довольно жирная и на обычном hdd у меня плохо работала. По ошибке закинул туда образ и долго мучался, так как всё тормозило. Лучше диск побыстрее выбрать. Добавлю ещё, что Vulture умеет работать в режиме отказоустойчивого кластера. Настраивается не сложно.
Если у кого-то есть опыт с этим продуктом, то дайте обратную связь. Какую версию сейчас разумнее использовать? Если третью, то где её взять и как правильно поставить? Готовых образов не увидел.
Сайт - https://www.vultureproject.org
Исходники - https://github.com/VultureProject/
#security #waf