Usando o HAproxy, posso direcionar o tráfego para um servidor back-end de todos os outros servidores back-end em um pool? Do ponto de vista da rede, seria comparável a espelhar todas as portas de um switch em uma porta para inspeção. Dessa forma eu poderia passar todo o tráfego não criptografado para um endereço de loopback e inspecioná-lo com o SNORT.
Atualmente criptografamos todo o tráfego em nossos nós HAproxy e enviamos esse tráfego criptografado para nossos servidores web. Temos um IDS fora de banda, no entanto, como ele só possui nosso certificado para descriptografar o tráfego, não podemos implementar sigilo de encaminhamento perfeito ou cifras diffie-helman no haproxy.
Eu li guias que permitem fazer isso com um F5, mas isso não é uma opção para nós.
Obrigado por qualquer informação que você possa fornecer.
Responder1
O HAProxy não pode fazer isso sozinho, mas se você usasse um conjunto de frontend/listen
declarações bastante simples, você poderia usar o iptables
TEE
alvo (vejaaquipara uso), deve ser bastante simples.
Para um sistema onde o IP "público" do servidor é 10.10.10.10, cujos backends são 192.168.1.11 e 192.168.1.12 e cujo IDS é 172.16.172.10, a configuração do HAProxy seria mais ou menos assim:
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
Basicamente, isso apenas passa todo o tráfego de IN
qualquer INTERMEDIARY
forma que ele entrou no servidor e, em seguida, INTERMEDIARY
descriptografa as solicitações e faz as escolhas que desejar.
Você precisaria então configurar iptables
regras semelhantes a estas:
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
Claro, isso pressupõe que todas as rotas e redes estejam configuradas, mas deve funcionar.
Suponho que você poderia simplesmente acabar com todo o material do HAProxy e configurar algumas iptables
regras para corresponder aos seus hosts de back-end e TEE
ao tráfego direto para o seu 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