Snort IDS en HAproxy con tráfico cifrado

Snort IDS en HAproxy con tráfico cifrado

Usando HAproxy, ¿puedo dirigir el tráfico a un servidor backend desde todos los demás servidores backend en un grupo? Desde el punto de vista de la red, sería comparable a duplicar todos los puertos de un conmutador en un puerto para su inspección. De esta manera podría pasar todo el tráfico sin cifrar a una dirección de bucle invertido e inspeccionarlo con SNORT.

Actualmente ciframos todo el tráfico en nuestros nodos HAproxy y enviamos ese tráfico cifrado a nuestros servidores web. Tenemos un IDS fuera de banda, sin embargo, dado que solo tiene nuestro certificado para descifrar el tráfico, no podemos implementar un secreto directo perfecto o cifrados diffie-helman en haproxy.

He leído guías que te permiten hacer esto con un F5, sin embargo, esa no es una opción para nosotros.

Gracias por cualquier información que pueda proporcionar.

Respuesta1

HAProxy no puede hacerlo por sí solo, pero si usa un conjunto de frontend/listeneliminaciones bastante simples, puede usar eliptables TEE objetivo (consulteaquípara su uso), debería ser bastante simple.

Para un sistema donde la IP "pública" del servidor es 10.10.10.10, cuyos backends son 192.168.1.11 y 192.168.1.12 y cuyo IDS es 172.16.172.10, la configuración de HAProxy se vería así:

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

Básicamente, esto simplemente pasa todo el tráfico desde INcualquier INTERMEDIARYforma en que ingresó al servidor, y luego INTERMEDIARYdescifra las solicitudes y toma las decisiones que desee.

Luego necesitarás configurar iptablesreglas como 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

Por supuesto, esto supone que todas las rutas y redes están configuradas, pero debería funcionar.

Supongo que podrías eliminar todo el material de HAProxy y configurar algunas iptablesreglas para que coincidan con tus hosts backend y TEEese tráfico directamente a tu 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

información relacionada