Snort IDS auf HAproxy mit verschlüsseltem Datenverkehr

Snort IDS auf HAproxy mit verschlüsseltem Datenverkehr

Kann ich mit HAproxy den Datenverkehr von allen anderen Backend-Servern in einem Pool an einen Backend-Server weiterleiten? Aus Netzwerksicht wäre dies vergleichbar mit der Spiegelung aller Ports eines Switches auf einen Port zur Überprüfung. Auf diese Weise könnte ich den gesamten Datenverkehr unverschlüsselt an eine Loopback-Adresse weiterleiten und ihn mit SNORT überprüfen.

Derzeit verschlüsseln wir den gesamten Datenverkehr in unseren HAproxy-Knoten und senden diesen Datenverkehr verschlüsselt an unsere Webserver. Wir haben ein Out-of-Band-IDS, da es jedoch nur unser Zertifikat zum Entschlüsseln des Datenverkehrs hat, können wir auf Haproxy weder Perfect Forward Secrecy noch Diffie-Helman-Chiffren implementieren.

Ich habe Anleitungen gelesen, die dies mit einer F5 ermöglichen, für uns ist das jedoch keine Option.

Vielen Dank für alle Informationen, die Sie geben können.

Antwort1

HAProxy kann dies nicht selbst tun, aber wenn Sie eine Reihe relativ einfacher frontend/listenDeklarationen verwenden, können Sie das iptables TEEZiel verwenden (sieheHierfür die Verwendung), sollte es ziemlich einfach sein.

Für ein System, bei dem die „öffentliche“ IP des Servers 10.10.10.10 ist, dessen Backends 192.168.1.11 und 192.168.1.12 sind und dessen IDS 172.16.172.10 ist, würde die HAProxy-Konfiguration ungefähr so ​​aussehen:

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

Dadurch wird im Wesentlichen der gesamte Datenverkehr von INnach weitergeleitet INTERMEDIARY, in welcher Form auch immer er auf dem Server eingegangen ist. Anschließend INTERMEDIARYwerden die Anforderungen entschlüsselt und die gewünschten Entscheidungen getroffen.

Sie müssen dann iptablesRegeln einrichten, die wie folgt aussehen:

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

Dies setzt natürlich voraus, dass alle Routen und Netzwerke eingerichtet sind, aber es sollte funktionieren.

Ich nehme an, Sie könnten einfach den ganzen HAProxy-Kram weglassen und einige iptablesRegeln einrichten, die Ihren Backend-Hosts entsprechen und TEEden Datenverkehr direkt zu Ihrem IDS leiten.

# 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

verwandte Informationen