Zoraxy statt NGINX Proxy Manager: Warum ich meinen Reverse Proxy gewechselt habe

Wer mehrere Dienste im eigenen Homelab betreibt und diese über das Internet erreichbar machen möchte, kommt früher oder später an einem Reverse Proxy kaum vorbei. Bei mir hat diese Aufgabe lange Zeit der NGINX Proxy Manager, kurz NPM, übernommen.

Und grundsätzlich gibt es daran auch wenig auszusetzen: NGINX Proxy Manager bietet eine übersichtliche Weboberfläche, kümmert sich um SSL-Zertifikate und macht das Veröffentlichen interner Webanwendungen angenehm einfach.

Mit der Zeit sind meine Anforderungen allerdings etwas gewachsen. Neben dem eigentlichen Reverse Proxy wollte ich mehr Möglichkeiten bei Zugriffskontrolle, Security, Monitoring und Erweiterbarkeit haben.

Genau an dieser Stelle bin ich auf Zoraxy gestoßen.

Nach einiger Zeit im praktischen Einsatz habe ich meine Reverse-Proxy-Konfiguration inzwischen weitgehend von NGINX Proxy Manager auf Zoraxy umgestellt. In diesem Artikel möchte ich zeigen, warum.

Was ist Zoraxy?

Zoraxy ist ein in Go entwickelter Open-Source-Reverse-Proxy, der sich vor allem an Selfhoster und Homelab-Betreiber richtet.

Die Bedienung erfolgt ähnlich wie bei NGINX Proxy Manager über eine Weboberfläche. Man muss also nicht anfangen, für jeden Dienst irgendwelche NGINX-Konfigurationsdateien zusammenzubauen.

Zoraxy unterstützt unter anderem:

  • HTTP Reverse Proxy
  • HTTP/2
  • automatische WebSocket-Unterstützung
  • benutzerdefinierte HTTP-Header
  • Load Balancing
  • Basic Authentication
  • Redirect-Regeln
  • Let’s Encrypt und ACME
  • DNS Challenges
  • IP- und Country-Blocking
  • TCP- und UDP-Stream-Proxying
  • Forward Authentication
  • OAuth2
  • integriertes Monitoring
  • Traffic-Statistiken
  • ein Plugin-System

Damit versteht sich Zoraxy weniger als reine Verwaltungsoberfläche für einen Reverse Proxy und mehr als eine kleine Gateway- und Networking-Toolbox für das Homelab.

Meine bisherige Lösung: NGINX Proxy Manager

Bei mir lief vorher über längere Zeit NGINX Proxy Manager.

Das Konzept ist angenehm simpel:

Domain eintragen, internes Ziel definieren, SSL-Zertifikat über Let’s Encrypt anfordern und fertig.

Gerade wenn man einige Docker-Dienste wie beispielsweise Jellyfin, Immich, Home Assistant oder andere Webanwendungen veröffentlicht, funktioniert das hervorragend.

ch würde deshalb auch heute nicht behaupten, dass NGINX Proxy Manager eine schlechte Lösung ist.

Im Gegenteil: Wer hauptsächlich einen unkomplizierten grafischen Reverse Proxy sucht, bekommt damit nach wie vor ein sehr verständliches Werkzeug.

Mein Problem war eher, dass ich irgendwann mehr Kontrolle rund um den eigentlichen Proxy haben wollte.

Und genau dort wird Zoraxy interessant.

Warum ich zu Zoraxy gewechselt bin

Der eigentliche Reverse Proxy funktioniert bei beiden Lösungen.

Der entscheidende Unterschied liegt für mich deshalb gar nicht darin, ob Anwendung A unter service.example.de erreichbar gemacht werden kann.

Das können beide.

Zoraxy bietet mir aber deutlich mehr Funktionen direkt rund um den eigentlichen Netzwerkzugriff.

Besonders interessant finde ich das:

Plugin-System

Zoraxy lässt sich über Plugins erweitern. Plugins laufen dabei separat vom eigentlichen Zoraxy-Prozess. Ein fehlerhaftes Plugin soll dadurch nicht unmittelbar den kompletten Reverse Proxy mitreißen. Plugins können außerdem eine eigene Oberfläche bereitstellen und gezielt bestimmten Proxy-Regeln zugewiesen werden.

Access Control

Zugriffe können unter anderem anhand von IP-Adressen und Ländern eingeschränkt werden.

Monitoring

Zoraxy bringt bereits Funktionen zur Überwachung von Diensten mit.

TCP und UDP

Neben klassischen HTTP-Anwendungen können auch TCP- und UDP-Verbindungen über Stream-Proxy-Regeln verarbeitet werden.

Forward Authentication

Auch externe Authentifizierungslösungen wie Authelia oder Authentik lassen sich in entsprechende Konzepte integrieren. Forward-Auth-Unterstützung gehört zu den Community-Funktionen von Zoraxy.

Das alles sorgt dafür, dass ich für viele typische Homelab-Aufgaben nicht sofort ein weiteres Werkzeug danebenstellen muss.

Proxy Hosts beziehungsweise HTTP Proxy Rules

Das Grundprinzip bleibt angenehm einfach.

In Zoraxy lege ich eine HTTP Proxy Rule an und definiere beispielsweise:

  • öffentliche Domain
  • Zielserver
  • Zielport
  • HTTP oder HTTPS zum Backend
  • SSL-Konfiguration
  • zusätzliche Header
  • Zugriffsbeschränkungen

Damit lässt sich beispielsweise

photos.example.de

an

192.168.10.50:2283

weiterleiten.

Wer von NGINX Proxy Manager kommt, findet sich deshalb relativ schnell zurecht.

Interessant wird es anschließend bei den zusätzlichen Optionen.

Ein großer Pluspunkt: Access Control

Eine Funktion, die mir besonders gut gefällt, ist die integrierte Zugriffskontrolle.

Zoraxy kann Zugriffe beispielsweise anhand von:

  • einzelnen IP-Adressen
  • IP-Netzen beziehungsweise CIDR-Bereichen
  • Wildcards
  • Ländern

einschränken.

Gerade bei selbst gehosteten Anwendungen finde ich das äußerst praktisch.

Warum sollte beispielsweise eine administrative Oberfläche aus der ganzen Welt erreichbar sein, wenn ich mich ohnehin fast ausschließlich aus Deutschland darauf verbinde?

Natürlich ersetzt Geo-Blocking keine vernünftige Authentifizierung. Es reduziert aber die potenzielle Angriffsfläche.

Für mich besonders interessant: Data-Shield IPv4 Blocklist

Einer der Punkte, die meine Entscheidung für Zoraxy zusätzlich beeinflusst haben, ist das Plugin-Konzept in Verbindung mit extern gepflegten Blocklisten.

Ich verwende hierbei die Data-Shield IPv4 Blocklist.

Data-Shield ist eine gepflegte Sammlung von IPv4-Adressen, die als schädlich beziehungsweise auffällig eingestuft wurden und als zusätzliche Threat-Intelligence-Quelle für Firewalls und Web Application Gateways verwendet werden kann.

Für Zoraxy existieren außerdem Community-Ansätze beziehungsweise Plugins, mit denen größere IP-Blocklisten importiert werden können. Damit lässt sich eine solche externe Liste wesentlich komfortabler mit der Zoraxy-Blacklist kombinieren, als tausende IP-Adressen von Hand einzutragen.

Was bringt mir die Data-Shield-Blocklist?

Das Ziel ist recht simpel:

Bekannte verdächtige beziehungsweise bösartige IP-Adressen sollen meine veröffentlichten Dienste möglichst gar nicht erst erreichen.

Das ist kein Ersatz für:

  • regelmäßige Updates
  • sichere Passwörter
  • MFA
  • Forward Authentication
  • saubere Firewall-Regeln
  • sichere Applikationskonfigurationen

Es stellt aber eine zusätzliche Sicherheitsschicht dar.

Und genau diese Kombination finde ich bei Zoraxy spannend.

Der Reverse Proxy ist hier nicht nur dafür zuständig, Requests von A nach B weiterzureichen. Er kann gleichzeitig eine aktivere Rolle bei der Zugriffskontrolle übernehmen.

Das Plugin-System macht für mich den Unterschied

Der wahrscheinlich wichtigste Unterschied zu meinem bisherigen Setup ist das Plugin-System von Zoraxy.

Zoraxy besitzt eine eigene Plugin-Architektur, über die zusätzliche Funktionen in die Oberfläche und den Proxy-Workflow integriert werden können.

Plugins können sogar eigene Weboberflächen bereitstellen, die direkt innerhalb der Zoraxy-Oberfläche angezeigt werden.

Interessant ist außerdem, dass Plugins über Tags gezielt bestimmten HTTP Proxy Rules zugeordnet werden können.

Damit muss eine Erweiterung nicht zwangsläufig für sämtliche veröffentlichten Anwendungen aktiviert werden.

Man könnte beispielsweise unterschiedliche Proxy-Regeln mit Tags wie

external

protected

internal

oder

debug

versehen und Plugins anschließend gezielt darauf anwenden.

Das eröffnet langfristig wesentlich mehr Möglichkeiten als eine weitgehend statische Reverse-Proxy-Verwaltung.

Das Konzept gefällt mir trotzdem ausgesprochen gut.

Integrierte Statistiken und Monitoring

Eine weitere nette Funktion sind die integrierten Statistiken.

Zoraxy kann Traffic und Besucher direkt innerhalb der Oberfläche darstellen und bietet zudem einen integrierten Uptime Monitor.

Natürlich ersetzt das keine vollständige Monitoring-Lösung wie Checkmk, Zabbix oder Prometheus.

Für den schnellen Blick ist es aber praktisch.

Ich kann direkt im Reverse Proxy erkennen:

  • welche Dienste genutzt werden,
  • wie viel Traffic entsteht,
  • ob ein Backend erreichbar ist,
  • und was aktuell über das Gateway passiert.

Gerade im Homelab ist das angenehm, weil man nicht für jede kleine Information sofort den nächsten Container betreiben muss.

SSL und Let’s Encrypt

Selbstverständlich kümmert sich auch Zoraxy um TLS-Zertifikate.

Unterstützt werden ACME-basierte Zertifikate inklusive automatischer Erneuerung. Ebenfalls vorhanden sind SNI, SAN-Zertifikate und DNS Challenges für verschiedene DNS-Provider.

Damit ändert sich gegenüber meinem vorherigen NGINX-Proxy-Manager-Setup grundsätzlich wenig.

Meine öffentlichen Dienste bekommen weiterhin automatisch gültige Zertifikate.

Zoraxy oder NGINX Proxy Manager?

Für mich gibt es keinen pauschalen Gewinner.

NGINX Proxy Manager würde ich weiterhin einsetzen, wenn …

ich möglichst schnell einen klassischen Reverse Proxy mit komfortabler Oberfläche brauche.

Für einfache Anforderungen ist NPM hervorragend:

Domain → Backend → SSL → fertig.

Die Oberfläche ist verständlich und das Konzept hat sich über Jahre bewährt.

Zoraxy würde ich einsetzen, wenn …

der Reverse Proxy gleichzeitig ein zentraleres Gateway für mein Homelab werden soll.

Für mich sprechen insbesondere folgende Punkte dafür:

  • integriertes IP- und Geo-Blocking
  • Traffic-Statistiken
  • Uptime Monitoring
  • TCP- und UDP-Proxying
  • Forward Authentication
  • OAuth2-Funktionen
  • Load Balancing
  • umfangreiche Netzwerk-Utilities
  • Plugin-System
  • Erweiterbarkeit durch Community-Projekte
  • Kombination mit externen Security-Blocklisten

Damit bietet mir Zoraxy schlicht mehr Möglichkeiten, mein Setup weiterzuentwickeln.

Schreibe einen Kommentar