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 Z
  • srcdomain:
  • srcdom_regex:
  • proto:
  • time:
Utm-reverseproxy4.png
Utm-reverseproxy5.png
Utm-reverseproxy6.png
Utm-reverseproxy7.png