Snort IDS no HAproxy com tráfego criptografado

1

Usando o HAproxy, posso direcionar o tráfego para um servidor de back-end de todos os outros servidores de back-end em um pool? Do ponto de vista da rede, seria comparável ao espelhamento de todas as portas de um switch para 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 da web. Temos um IDS fora da banda, mas como ele só tem o nosso certificado para descriptografar o tráfego, não podemos implementar sigilo perfeito ou codificações diffie-helman no haproxy.

Li guias que permitem que você faça isso com um F5, mas isso não é uma opção para nós.

Obrigado por qualquer informação que você possa fornecer.

    
por Leonard Pringle 15.06.2015 / 17:35

1 resposta

2

O HAProxy não pode fazer isso sozinho, mas se você usou um conjunto de frontend/listen declerations bastante simples, você poderia usar o iptables TEE target (veja aqui para uso), deve ser bastante simples.

Para um sistema onde o IP "público" do servidor é 10.10.10.10, quem são os backends 192.168.1.11 e 192.168.1.12 e quem é o IDS 172.16.172.10, a configuração HAProxy seria algo como isto:

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

Isso basicamente passa todo o tráfego de IN para INTERMEDIARY na forma que entrou no servidor, e INTERMEDIARY descriptografa os pedidos e faz as escolhas que quiser.

Você precisaria configurar iptables regras assim:

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 sejam configuradas, mas deve funcionar.

Suponho que você poderia simplesmente acabar com todas as coisas sobre o HAProxy e configurar algumas regras de iptables para corresponder aos seus hosts de back-end e TEE desse 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
    
por 15.06.2015 / 18:19

Tags