Wechseln zu:Navigation, Suche
Wiki

Reverse Proxy

Einleitung

Mit einem Reverse-Proxy können Sie aus dem Internet heraus, den Zugriff auf die "internen" Webserver steuern. Im Gegensatz zu einer Portweiterleitung, könne über den Reverse-Proxy dedizierte Filterregeln erstellt werden. Zudem kann bei nur einer öffentlich IP, mehrere interne Webserver anhand der Domäne angesprochen werden.

Ein weiteres Highlight bietet das Load-Balancing. Server können zu Gruppen zusammen gefasst werden, auf die die Anfragen dann mit dem gewählten Algorithmus (z.B. Round-Robin) verteilt werden.

Ziel

Ziel dieses Howtos ist es über den Reverse-Proxy auf einen internen Webserver zuzugreifen.

  • Webserver-IP: 172.16.0.91
  • Externe-IP: 192.168.6.19
  • Domäne: web.test.local -> 192.168.6.19

Vorüberlegungen

Achtung: Planen Sie auch https an einen Webserver über den Revers-Proxy weiterzuleiten, so müssen Sie zuerst den Port des Webinterfaces umlegen. Gehen Sie dazu auf "Extras -> Erweiterte Einstellungen" und ändern den Port auf z.B: 4443 ab.

  • Damit Sie danach noch auf das Userinterface zugreifen können, benötigen Sie dann natürlich eine entsprechende Regel.

Für https benötogt der Reverse-Proxy natürlich ein Zertifikat damit er die verschlüsselte Verbindung entgegen nehmen kann.

  • Gehen Sie dazu auf "Authentifizierung -> Zertifikate" und erstellen ein neues Zertifikat. Wichtig: der Name des Zertifikates muss so benannt werden wie die Domäne, bei uns also web.test.local.


Einrichtung

Netzwerkobjekte

Als ersten benötigen wir ein Netzwerkobjekt mit der IP des Webservers:

  • Melden Sie sich an der Appliance an
  • Gehen Sie auf Firewall -> Portfilter -> Netzwerkobjekte
  • Klicken Sie auf "Hinzufügen" und füllen Sie die Felder entsprechend aus.


Utm-reverseproxy1.png

Portfilter

  • Legen Sie nun entsprende Regeln an die den Zugriff auf das externe Interface freigibt.


Utm-reverseproxy2.png

Reverse Proxy

Einleitung

Nun ist es an der Zeit mit der Konfiguration des Reverse-Proxys zu beginnen! Damit Sie verstehen warum das in Gruppen aufgeteilt ist, möchte ich noch mal das Prinzip erläutern.

Ein Portforwarding ermöglicht nur eine 1:1 Beziehung, der Port wird immer an den einen Server durchgeschleift. Bei einem Reverse-Proxy ist das anders, hier gibt es die Beziehungen:

  • 1:1 - Eine Domäne/IP : Einem Server
  • 1:N - Eine Domäne/IP : Mehreren Servern (Load Balancing)
  • N:1 - Mehrere Domänen/IPs : Einem Server
  • N:M - Mehrere Domänen/IPs : Mehreren Servern (Load Balancing)

Nun ist auch klar warum sich die Server in Gruppen befinden, Sie können, müssen aber nicht mehrer Objekte in diese Gruppen legen.

Servergruppen

  • Gehen Sie dazu auf "Anwendungen -> Reverse-Proxy".
  • Fügen Sie ein Servergruppe hinzu.
  • In dieser Gruppe fügen wir nun unseren Server ein. Der Anmeldename und das Passwort sind Optional und dienen zur Authentifizierung am Zielserver, wenn dies aktiv sein sollte.
Utm-reverseproxy3.png

ACLs - Zugriffsrechte

Über ACLs lassen sich die Zugriffsrechte dediziert zuweisen. Die folgenden Optionen stehen zur Auswahl:

  • req_header: Filter auf den Header des Clients (Es könnte z.B. der Browser bestimmt werden)
  • src: Gibt die Quell IP des Clients an (87.139.55.127/255.255.255.255)
  • dstdomain: Gibt die Domäne/IP des Ziel-Servers an (web.test.local oder 192.168.6.19)
  • srcdomain: Gibt die Domäne des Absenders an (securepoint.de)
  • srcdom_regex: Regex auf die Domäen (securepoint)
  • proto: Protokoll (http, https, ftp)
  • time: Zeitangabe (M T W H F 9:00-17:00)


Days of the Week

S - Sunday M - Monday T - Tuesday W - Wednesday H - Thursday F - Friday A - Saturday D - All weekdays

Utm-reverseproxy4.png


  • Wir wollen das der Server sowohl über die IP, als auch den Namen erreichbar ist.
  • Dazu fügen wir 2 Einträge hinzu, beide vom Typ "dstdomain" mit den entsprechenden Werten.


Utm-reverseproxy5.png

SITES

Hier können nun die Zuweisungen von den ACLs, der Aktion "Allow/Deny", die Reihenfolge, der Verteilungsalgorithmus sowie die Badbreite zu dem Server zugeteilt werden.

Utm-reverseproxy6.png
Utm-reverseproxy7.png