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.
Portfilter
- Legen Sie nun entsprende Regeln an die den Zugriff auf das externe Interface freigibt.
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.
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
- 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.
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.