Snort IDS no HAproxy com tráfego criptografado

Snort IDS no HAproxy com tráfego criptografado

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/listendeclarações bastante simples, você poderia usar o iptables TEEalvo (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 INqualquer INTERMEDIARYforma que ele entrou no servidor e, em seguida, INTERMEDIARYdescriptografa as solicitações e faz as escolhas que desejar.

Você precisaria então configurar iptablesregras 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 iptablesregras para corresponder aos seus hosts de back-end e TEEao 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

informação relacionada