Используя 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