Als IT-Dienstleister sehen wir immer wieder Kunden mit einem verzwickten Problem: Sie haben lediglich eine öffentliche IP-Adresse zur Verfügung, müssen jedoch mehrere Webanwendungen auf unterschiedlichen internen Servern betreiben, die auch von extern erreichbar sein sollen. Viele Kunden behelfen sich mit Portforwarding, bei dem die Firewall unterschiedliche Ports an unterschiedliche interne Anwendungen leitet, dabei wären sie mit HAProxy besser bedient.
Beim Portforwarding von extern kann nur eine Anwendung den Default-Port verwenden; alle anderen sind nur über Nicht-Default-Ports erreichbar. Erfahrungsgemäß überfordert es aber viele Kollegen, die nicht aus der IT stammen, wenn sie die Webmail-GUI über die kryptische Adresse „https://example.domain.de:8080“ aufrufen müssen. Das geht auch besser, ohne explizite Port-Nummer in der URL: Ein Reverse-Proxy wie HAProxy auf der OPNsense-Firewall löst das Problem technisch elegant und die Adresse lautet „https://example.domain.de“.
Lastverteilung und Reverse Proxy
HAProxy ist ein leistungsstarker Reverse-Proxy-Server und Open-Source-Load-Balancer. Durch seinen Einsatz können mehrere interne Server hinter einer einzigen öffentlichen IP-Adresse und einem gemeinsamen Port betrieben werden. HAProxy leitet den Netzwerkverkehr basierend auf den definierten Regeln an die entsprechenden internen Server weiter. Außerdem kann er die Verteilung des eingehenden Netzwerkverkehrs auf eine Gruppe von Backend-Servern steuern, um die Last gleichmäßig zu verteilen und die Verfügbarkeit zu verbessern. Und er kann sich an zentraler Stelle um die SSL/TLS-Zertifikate kümmern. Typische Anwendungsszenarien sind:
- Virtual Hosting: Mit HAProxy ist es möglich, mehrere Websites oder Dienste, die über verschiedene Domains oder Subdomains erreichbar sind, unter derselben öffentlichen IP-Adresse zu hosten. Dies ermöglicht eine effiziente Nutzung der verfügbaren IP-Ressourcen und erleichtert die Verwaltung von mehreren Diensten.
- API-Gateways: HAProxy eignet sich hervorragend als API-Gateway, da es die Anfragen nicht nur gleichmäßig auf verschiedene interne API-Dienste verteilen kann (Load Balancer), sondern bestimmte Anfragen anhand von Regeln auch an unterschiedliche API-Server weiterleitet. Als Kriterien können der Pfad in der Anfrage-URL (und damit der API-Aufruf), aber auch die Client-IP oder dessen Geolokation dienen. Damit vereinfachen sich zum Beispiel API-Updates.
- Sicherheitsverbesserungen: HAProxy bietet zusätzliche Sicherheitsfunktionen wie SSL/TLS-Offloading und Web Application Firewall (WAF). Beim SSL-Offloading endet die verschlüsselte Verbindung am HAProxy in der Firewall, dadurch kann die WAF-Komponente den Datenverkehr zwischen Browser und Server im Klartext analysieren. Sicherheitsfunktionen lassen sich dadurch zentralisiert und effektiv implementieren.
- Erweiterbarkeit und Flexibilität: Durch die Verwendung von HAProxy kann die Infrastruktur flexibler erweitert werden, da bei Bedarf weitere interne Server hinzugefügt werden können, ohne dass zusätzliche öffentliche IP-Adressen erforderlich sind. Dadurch wird es einfach, auch bei außergewöhnlichen Ereignissen (etwa einer Pandemie) rasch neue Systeme zu integrieren, zum Beispiel CoreBiz Teams.
- Kosteneinsparungen: Der Einsatz von HAProxy auf der OPNsense mit nur einer öffentlichen IP-Adresse kann erhebliche Kosten einsparen, insbesondere in Umgebungen, in denen öffentliche IP-Adressen begrenzt oder kostenpflichtig sind.
Zusammenspiel mit ACME-Client
Um eine sichere Kommunikation über HTTPS zu gewährleisten und SSL/TLS-Zertifikate automatisch zu verwalten, kann HAProxy auf der OPNsense mit dem ACME-Client (Automated Certificate Management Environment) zusammenarbeiten. Der ACME-Client ermöglicht die automatische Erstellung, Erneuerung und Verwaltung von SSL/TLS-Zertifikaten von Zertifizierungsstellen wie Let’s Encrypt. Damit ergeben sich eine Reihe von Vorteilen:
- Automatisierte Zertifikatserstellung: Der ACME-Client erlaubt die automatische Erstellung von SSL/TLS-Zertifikaten für die Domains oder Subdomains, die von HAProxy verwaltet werden. Dies eliminiert den manuellen Prozess der Zertifikatserstellung und spart Zeit und Aufwand.
- Automatische Zertifikatserneuerung: Der ACME-Client kann die Zertifikate automatisch erneuern, bevor sie ablaufen. Dies stellt sicher, dass die Dienste auf der OPNsense kontinuierlich mit gültigen und vertrauenswürdigen Zertifikaten arbeiten.
- Nahtlose Integration mit HAProxy: HAProxy kann so konfiguriert werden, dass er die aktualisierten Zertifikate vom ACME-Client automatisch verwendet. Dies gewährleistet einen reibungslosen Betrieb der SSL/TLS-Verschlüsselung auf der OPNsense.
Mit dieser Kombination können Unternehmen eine erweiterbare, flexible und sichere Netzwerkinfrastruktur aufbauen, die den Anforderungen moderner Webanwendungen und Dienste gerecht wird. Die Anwender freut besonders, dass sie mit einfachen Web-Adressen arbeiten können und nichts von der internen Komplexität wissen müssen.