OPNsense HAProxy

Aus xinux.net
Zur Navigation springen Zur Suche springen

HAProxy ist ein Programm mit vielseitigen Anwendungsmöglichkeiten, um den Zugang zu Webservern zu kontrollieren. Es ist ein Reverse-Proxy, der Verbindungen von Clients annimmt und nach den konfigurierten Regeln entscheidet, an welchen Webserver die Anfrage gesendet wird. Einige Funktionalitäten sind:

  • Loadbalancing
  • SSL-Offloading
  • Wiederverwendung einer öffentlichen IP für mehrere Webdomänen
  • Health-checking der Webserver

Installation

  • HAProxy ist ein Plugin, welches unter System => Firmware => Plugins installiert werden, kann (Vorher auf Updates kontrollieren)

minimale Konfiguration

  • Als erstes muss unter Services => HAProxy => Settings => Real Servers ein Backend-Server hinzugefügt werden
  • In unserem Beispiel haben wir ein Webserver in der DMZ mit der IP 172.17.17.10/24
  • Diese IP wird in das FQDN or IP Feld eingetragen und der Server bekommt den Namen "Webserver"
  • HAProxy unter OPNsense kann aber keinen einzelnen Webserver einfach so ansprechen
  • Es muss ein Backend-Pool definiert werden, selbst wenn es nur einen Server gibt
  • Diesen erstellt man unter Virtual Services in der HAProxy-Konfiguration
  • Die relevanten Felder dafür sind erstmal nur Name und Servers
  • Health Checking kann auch ausgeschaltet werden, falls man die Verbindung per tcpdump debuggen möchte und dabei nicht die Health Check-Pakete sehen will
  • Das Frontend wird unter Virtual Services => Public Services eingerichtet
  • Die benötigten Felder hierfür sind:
    • Name: Name des Frontends
    • Listen Addresses: ip.adresse.wan.interface:80
    • Type: HTTP/HTTPS (SSL offloading)
  • Wenn alle Einstellungen getroffen wurden, dann muss die Konfiguration über Apply angewendet werden
  • Da HAProxy keine Firewall-Regeln automatisch erstellt, muss noch Port 80 auf dem WAN-Interface freigeschaltet werden
  • Zum testen sollte man einen Browser verwenden, der nicht automatisch auf HTTPS upgradet, da es zu konflikten oder man verlegt den Port 443 der OPNsense Web-GUI auf einen anderen

SSL-Offloading

  • Man kann Webserver zusätzlich entlasten und das Zertifikatmanagement zentralisieren, indem SSL-Offloading auf HAProxy aktiviert wird
  • Dadurch baut HAProxy eine TLS-Sitzung mit dem Client auf, aber spricht mit dem Webserver über Klartext
  • Zusätzlich kann noch ein IDS/IPS-System dazugeschaltet werden, um Pakete auf Layer 5-7 Eigenschaften zu filtern
Es sollte nicht das Zertifikat der Firewall benutzt werden, das bei der Installation generiert wurde

Vorraussetzung

  • Eine Dummy-Zertifizierungsstelle (welches vom Browser als ungültig erkannt wird), kann unter System => Trust => Authorities erstellt werden
  • Damit lässt sich dann das Zertifikat, welches HAProxy benutzen soll signieren
  • Beim Erstellen sollte dann die Method-Option: "Create an internal Certificate Authority" benutzt werden
  • Die anderen Felder können nach belieben ausgefüllt werden, da nur die Weiterleitung geteset werden soll
  • Anschließend kann man ein internes Zertifikat unter System => Trust => Certificates erstellen

Konfiguration

  • Um SSL-Offloading zu aktivieren muss im Frontend der Haken dafür gesetzt sein
  • Dann das richtige Zertifikat auswählen und den Port von :80 auf :443 umstellen
  • Die Firewall muss auch den neuen Port zulassen
  • Beim Testen sollte die Verbindung dann über https:// statt http:// im Browser laufen
  • Die Zertifikatswarnung kommt daher, dass die Dummy-Zertifizierungsstelle nicht im Browser installiert ist

Links