OPNsense HAProxy
Version vom 22. Januar 2024, 10:54 Uhr von Linkai.zhang (Diskussion | Beiträge)
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