Мне нужна помощь, чтобы понять, как реализовать брандмауэр веб-приложений (WAF) в моей существующей архитектуре.
В настоящее время у меня есть 2 сервера HAproxy, сгруппированных с использованием keepalived, которые отвечают за следующее:
У меня есть 1 лаковый сервер, который кеширует только статический контент. Мой поток трафика выглядит примерно так:
Load Balancer (haproxy)-+---------(Dynamic content)-------+----- Drupal Servers
\ /
+-- (Static Content) Varnish --+
А моя конфигурация HaProxy выглядит так:
frontend main *:80
acl url_static path_beg -i /static /images /javascript /stylesheets
acl url_static path_end -i .jpg .gif .png .css .js
use_backend bk_varnish if url_static
default_backend bk_drupal
В этом сценарии, где лучше разместить WAF? Было бы предпочтительнее не вводить больше серверов, в идеале WAF, который работал бы на серверах HAProxy. Я знаю, что Varnish имеет некоторые возможности WAF, но в настоящее время он обслуживает только статические ресурсы. Должен ли я переделать это решение для маршрутизации всего трафика через лак?
Вы можете поместить его в тот же ящик, что и haproxy. На самом деле, имеет смысл поместить его туда.
Так что вопрос становится до или после haproxy. Если вы указали это раньше, то в дополнение к правилам для защиты вашего приложения вам также нужно будет установить правила для защиты / разрешения ваших статических активов. Если вы поставите его после, вам не нужно беспокоиться о правилах для ваших статических активов, потому что вы можете отправлять только трафик для bk_drupal
к брандмауэру веб-приложений.
У меня нет мнения о том, насколько хорош лак для брандмауэра веб-приложений.