OPNsense HAProxy: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
| (5 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt) | |||
| Zeile 9: | Zeile 9: | ||
= Installation = | = Installation = | ||
| − | * HAProxy ist ein Plugin, welches unter '''System -> ' | + | * 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 = | = Links = | ||
| − | * | + | {{#drawio:haproxy-plan1}} |
| + | |||
| + | * https://docs.haproxy.org/ | ||
Aktuelle Version vom 12. Juni 2024, 06:30 Uhr
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
