OPNsense HAProxy
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