Snort IDS на HAproxy с зашифрованным трафиком

Snort IDS на HAproxy с зашифрованным трафиком

Используя HAproxy, могу ли я направить трафик на бэкенд-сервер со всех других бэкенд-серверов в пуле? С точки зрения сети это было бы сравнимо с зеркалированием всех портов на коммутаторе на один порт для проверки. Таким образом, я мог бы передавать весь трафик в незашифрованном виде на адрес обратной связи и проверять его с помощью SNORT.

В настоящее время мы шифруем весь трафик в наших узлах HAproxy и отправляем этот трафик зашифрованным на наши веб-серверы. У нас есть внеполосная IDS, однако, поскольку у нее есть только наш сертификат для расшифровки трафика, мы не можем реализовать совершенную прямую секретность или шифры Диффи-Хелмана на haproxy.

Я читал руководства, которые позволяют сделать это с помощью F5, однако для нас это не вариант.

Спасибо за любую информацию, которую вы можете предоставить.

решение1

HAProxy не может сделать это сам по себе, но если вы используете набор довольно простых frontend/listenдеклараций, вы можете использовать iptables TEEцель (см.здесьдля использования) он должен быть достаточно простым.

Для системы, где «публичный» IP-адрес сервера — 10.10.10.10, бэкэнды — 192.168.1.11 и 192.168.1.12, а IDS — 172.16.172.10, конфигурация HAProxy будет выглядеть примерно так:

listen IN
  mode tcp
  bind 10.10.10.10:443
  <other HAProxy options/directives here>
  server hap-intermediary 127.1.1.1:443

frontend INTERMEDIARY
   mode http
   bind 127.1.1.1:443 ssl crt /path/to/cert.pem
  <other HAProxy options/directives here>
  <backend selection logic, if needed>

  default_backend SERVERS

backend SERVERS
  <other HAProxy options/directives here>
  server server1 192.168.1.11:443 check check-ssl ssl
  server server2 192.168.1.12:443 check check-ssl ssl

По сути, он просто передает весь трафик с INна сервер INTERMEDIARYв любой форме, в которой он поступил на сервер, а затем INTERMEDIARYрасшифровывает запросы и делает любой выбор, который вам нужен.

Затем вам нужно будет настроить iptablesправила, которые выглядят следующим образом:

iptables -t mangle -A PREROUTING -d 127.1.1.1 -j TEE --gateway 172.16.172.10
iptables -t mangle -A POSTROUTING -s 127.1.1.1 -j TEE --gateway 172.16.172.10

Конечно, это предполагает, что все маршруты и сети настроены, но это должно работать.

Полагаю, вы могли бы просто отказаться от всего этого HAProxy и настроить некоторые iptablesправила, чтобы сопоставлять ваши внутренние хосты и TEEтрафик с вашей IDS.

# Server 1
iptables -t mangle -A PREROUTING -d 192.168.1.11 -j TEE --gateway 172.16.172.10
iptables -t mangle -A POSTROUTING -s 192.168.1.11 -j TEE --gateway 172.16.172.10
# Server 2
iptables -t mangle -A PREROUTING -d 192.168.1.12 -j TEE --gateway 172.16.172.10
iptables -t mangle -A POSTROUTING -s 192.168.1.12 -j TEE --gateway 172.16.172.10

Связанный контент