Wechseln zu:Navigation, Suche
Wiki
Lauritzl verschob die Seite UTM/APP/Reverse Proxy nach UTM/APP/Reverse Proxy v11.7
Markierung: Neue Weiterleitung
 
K Weiterleitung auf UTM/APP/Reverse Proxy v11.7 entfernt
Markierung: Weiterleitung entfernt
Zeile 1: Zeile 1:
#WEITERLEITUNG [[UTM/APP/Reverse Proxy v11.7]]
{{Set_lang}}
 
 
 
{{#vardefine:headerIcon|spicon-utm}}
{{:UTM/APP/Reverse_Proxy.lang}}
 
</div>{{DISPLAYTITLE:{{#var:display}}}}{{TOC2}}
'''{{#var:head}}'''
 
{{#var:ver}} '''12.1'''
<br>
 
{{cl|{{#var:neu}}|
* {{#var:Allgemeine Aktualisierung}}
}}
 
 
<br>
{{#var:prev}} [[UTM/APP/Reverse_Proxy v11.7 | '''11.7''']]
<br>
 
 
 
=== {{#var:Webinar}} ===
<!-- {{#ev:youtube|https://www.youtube.com/watch?v=qYLUkJY8sAI|900|center|Securepoint Rebinding Prevention HTTPS}}-->
{{#ev:youtube|https://www.youtube.com/watch?v=AJBrDO7v5K0|900|center|{{#var:Webinar--cap}} }}
 
=== {{#var:Verwendungszweck}} ===
<div class="Einrücken">
{{#var:Verwendungszweck--desc}}
</div>
 
 
=== {{#var:Voraussetzungen}} ===
<div class="Einrücken">
{{#var:Voraussetzungen--desc}}
</div>
 
 
=== {{#var:Vorbereitungen}} ===
<div class="Einrücken">
* {{#var:Vorbereitungen--desc}}
<div class="Einrücken">
{{Einblenden|{{#var:User Webinterface Port ändern}}|{{#var:hide}}|dezent|true|id=Webinterfaceport}}{{pt3|{{#var:User Webinterface Port ändern--Bild}} }}<br>{{#var:User Webinterface Port ändern--desc}}<li class="list--element__alert list--element__warning">{{#var:User Webinterface Port--Regelhinweis}}</li>{{Button|{{#var:Speichern}} }}</div></span>
</div></div>
{{#var:Zertifikat--desc}}
</div>
 
 
----
 
=== {{#var:Einrichtung}} ===
<div class="Einrücken">
{{#var:Einrichtung--desc}}
</div>
 
 
==== {{#var:Assistent}} ====
{| class="sptable2 pd5 zh1"
|-
! {{#var:cap}} !! {{#var:val}} !! {{#var:desc}}
|- class="Leerzeile"
| colspan="3" |
===== {{#var:Schritt 1}} =====
|-
| {{b|{{#var:Zielserver}} }} || {{Button|www.ttt-point.de|dr}} || {{#var:Schritt 1--Zielserver--Netzwerkobjekt bereits angelegt--desc}} || class="Bild" rowspan="4" | {{Bild|{{#var:Schritt 1 Netzwerkobjekt bereits angelegt--Bild}} |{{#var:Schritt 1 Netzwerkobjekt bereits angelegt--cap}} }}
|-
| {{b|{{#var:Port}} }} || {{ic|443|c}} || {{#var:Port--desc}}
|-
| {{b|{{#var:SSL benutzen}} }} || {{ButtonAn|{{#var:ein}} }} || {{#var:SSL benutzen--desc}}
|- class="Leerzeile"
|
|-
| {{b|{{#var:Zielserver}} }} || {{Button|{{#var:Server anlegen}}|dr}} || {{#var:Zielserver--Server anlegen--desc}} || class="Bild" rowspan="7" | {{Bild|{{#var:Schritt 1 Netzwerkobjekt anlegen--Bild}} |{{#var:Schritt 1 Netzwerkobjekt anlegen--cap}} }}
|-
| {{b|{{#var:Servername}} }} || {{ic|www.ttt-point.de}} || {{#var:Servername--desc}}
|-
| {{b|{{#var:IP-Adresse}} }} || {{ic| 10.1.0.150}} || {{#var:IP-Adresse--desc}}
|-
| {{b|{{#var:Zone}} }} || {{Button|dmz1|dr}} || {{#var:Zone--desc}}<br><li class="list--element__alert list--element__hint">{{#var:Zone--Hinweis}}</li>
|-
| {{b|{{#var:Port}} }} || {{ic|443|c}} || {{#var:Port--desc}}
|-
| {{b|{{#var:SSL benutzen}} }} || {{ButtonAn|{{#var:ein}} }} || {{#var:SSL benutzen--desc}}
|- class="Leerzeile"
| || || class="right" | {{Button|{{#var:Weiter}} }}
|- class="Leerzeile"
| colspan="3" |
===== {{#var:Schritt 2}} =====
'''{{#var:Schritt 2--desc}}'''
|-
| {{b|{{#var:Externer Domainname}} }} || {{ic|www.ttt-point.de}} || {{#var:Externer Domainname--desc}}{{a|5}}<li class="list--element__alert list--element__hint">{{#var:Externer Domainname--Hinweis-IP}}</li> || class="Bild" rowspan="5" | {{Bild|{{#var:Schritt 2--Bild}} |{{#var:Schritt 2--cap}} }}
|-
| {{b|{{#var:Modus}} }} || {{Button|HTTPS|dr}} || {{#var:Modus--desc}}
|-
| {{b|{{#var:SSL-Proxy Port}} }} || {{ic|443|c}} || {{#var:SSL-Proxy Port--desc}}
|-
| {{b|{{#var:SSL-Zertifikat}} }} || {{Button|<nowiki>*.ttt-point.de</nowiki>|dr}} || {{#var:SSL-Zertifikat--desc}}
|- class="Leerzeile"
| || || class="right" | {{Button|{{#var:Weiter}} }}
|- class="Leerzeile"
| colspan="3" |
===== {{#var:Schritt 3}} =====
|-
| {{b|{{#var:Authentifizierung weiterleiten}} }} || style="min-width:13.1em;" | {{Button|{{#var:Authentifizierung weiterleiten--val}}|dr}} || {{#var:Authentifizierung weiterleiten--desc}} || class="Bild" rowspan="5" | {{Bild|{{#var:Schritt 3--Bild}} |{{#var:Schritt 3--cap}} }}
|-
| {{b|{{#var:Anmeldename}} }} || {{ic| | w=5em}} || {{#var:Anmeldename--desc}}
|-
| {{b|{{#var:Passwort}} }} || {{ic| | w=5em}} || {{#var:Passwort--desc}}
|-
| {{b|{{#var:Authentifizierung}} }} || {{Button| {{#var:aus}}|dr|w=5em}} || {{#var:Authentifizierung--desc}}
|- class="Leerzeile"
| | || || class="right" | {{Button|{{#var:Fertig}} }}
|- class="Leerzeile"
| colspan="3" |
{{h4| {{#var:Servergruppen}} | {{Reiter| {{#var:Servergruppen}} }} }}
|-
| colspan="3" class="Leerzeile"| {{#var:Servergruppen--desc}}
<li class="list--element__alert list--element__hint">{{#var:Servergruppen--Hinweis--desc}}</li>
{{#var:Servergruppen bearbeiten--Schaltfläche}}
| class="Bild" rowspan="2" | {{Bild|{{#var:Servergruppen--Bild}} |{{#var:Servergruppen--cap}} }}
|- class="Leerzeile"
|
|-
| colspan="3" class="Leerzeile" | {{#var:Servergruppen bearbeiten--desc}} ||class="Bild" rowspan="2" | {{Bild|{{#var:Servergruppen bearbeiten--Bild}} |{{#var:Servergruppen bearbeiten--cap}} }}
|- class="Leerzeile"
|
|- class="Leerzeile"
|<br>{{h4|{{#var:ACL Sets}} | {{Reiter|{{#var:ACL Sets}} }} }}
|-
| colspan="3" | {{#var:ACL Sets--desc}} || class="Bild" rowspan="11" | {{Bild|{{#var:ACL Sets--Bild}} |{{#var:ACL Sets--cap}} }}
|-
| {{Button|req_header|dr}} || || {{#var:req_header--desc}}
|-
| {{Button|src|dr}} || || {{#var:src--desc}}
|-
| {{Button|dstdomain|dr}} || || {{#var:dstdomain--desc}}
|-
| {{Button|dstdom_regex|dr}} || || {{#var:dstdom_regex--desc}}
|-
| {{Button|srcdomain|dr}} || || {{#var:srcdomain--desc}}
|-
| {{Button|srcdom_regex|dr}} || || {{#var:srcdom_regex--desc}}
|-
| {{Button|urlpath_regex|dr}} || || {{#var:urlpath_regex--desc}}
|-
| {{Button|proto|dr}} || || proto{{#var:proto--desc}}
|-
| {{Button|time|dr}} || || {{#var:time--desc}}{{Einblenden|{{#var:Days of the Week}}|{{#var:hide}}|dezent|true}}{{#var:Days of the Week--desc}}</div></span>
|- class="Leerzeile"
|
|- class="Leerzeile"
|<br>{{h4|{{#var:Sites}} | {{Reiter|{{#var:Sites}} }} }}
|-
| colspan="3" class="Leerzeile" | {{#var:Sites--desc}}
<li class="list--element__alert list--element__hint">{{#var:Sites-Reihenfolgehinweis}}</li>
| class="Bild" rowspan="2" | {{Bild|{{#var:Sites--Bild}} |{{#var:Sites--cap}} }}
|- class="Leerzeile"
|
|-
|- class="Leerzeile"
|<br>{{h4|{{#var:Einstellungen}} | {{Reiter|{{#var:Einstellungen}} }} }}
|-
| colspan="3" class="Leerzeile"| {{#var:Einstellungen--desc}}
| class="Bild" rowspan="2" | {{Bild|{{#var:Einstellungen--Bild}} |{{#var:Einstellungen--cap}} }}
|- class="Leerzeile"
|
|}

Version vom 16. April 2021, 12:35 Uhr





























Ziel dieser Anleitung ist es, über den Reverse-Proxy auf einen internen Webserver zuzugreifen

Letzte Anpassung zur Version: 12.1

Neu:



Vorherige Versionen: 11.7


Verwendungszweck

Mit einem Reverse-Proxy kann man aus dem Internet heraus, den Zugriff auf die "internen" Webserver steuern. Im Gegensatz zu einer Portweiterleitung, können über den Reverse-Proxy dedizierte Filterregeln erstellt werden. Zudem können, bei nur einer öffentlichen IP-Adresse, 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.


Voraussetzungen

Für die Beispielkonfiguration werden folgende Werte angenommen:

  • Webserver mit der privaten IP: 10.1.0.150
  • Domäne: www.ttt-point.de


Vorbereitungen

  • Achtung:
    Soll der Zugriff auch auf den Webserver über https erfolgen, so muss zuerst der Port des Userinterfaces umgelegt werden.

In der Werkseinstellung ist der Port 443 für https schon vom User-Webinterface der UTM belegt. Dieser muss dann auf einen anderen Port umgelegt werden.
Die Einstellungen dazu befinden sich im Menü Netzwerk Servereinstellungen  Bereich Servereinstellungen im Abschnitt
Webserver
  • Ggf. müssen Paketfilterregeln, die den Zugriff auf das User Webinterface erlauben angepasst werden.
  • Speichern
    • Für https benötigt der Reverse-Proxy ein Zertifikat damit er die verschlüsselte Verbindung entgegen nehmen kann
    • Hierzu wird unter Authentifizierung Zertifikate ein Zertifikat benötigt



    Unter Anwendungen Reverse-Proxy kann über die Schaltfläche Reverse-Proxy Assistent im Header der Assistent geöffnet werden.


    Assistent

    Beschriftung Wert Beschreibung
    Schritt 1 - Intern
    Zielserver www.ttt-point.de Ist der Host schon als Netzwerkobjekt angelegt, kann dieser im Dropdown Menü direkt ausgewählt werden. [[Datei: ]]
    Zielserver existiert bereits als Netzwerkobjekt
    443 Der Webserver soll über eine Verschlüsselte Verbindung angesprochen werden.
    SSL benutzen Ein Legt fest, ob SSL verwendet werden kann
    Zielserver Server anlegen Sollte der Exchange Server noch nicht als Netzwerkobjekt existieren, kann er über den Auswahlpunkt Server anlegen im Assistenten angelegt werden.
    Zielserver existiert noch nicht als Netzwerkobjekt
    Servername www.ttt-point.de Name des Netzwerkobjektes.
    Der Servername des Netzwerkobjekts kann bei der Neuanlage frei gewählt werden, darf jedoch noch nicht bei anderen Objekten in Verwendung sein. Eine sinnvolle Namenskonventionen sollte berücksichtigt und eingehalten werden. Da hier für den Webserver mit der Homepage die Verbindung konfiguriert und das Ziel später auch als "www.ttt-pint.de" zu erreichen sein soll, wird diese Bezeichnung auch für das Netzwerkobjekt verwendet.
    IP-Adresse 10.1.0.150 IP-Adresse des Webservers
    dmz1 Zone des Netzwerkobjektes.
    Die Zone wird automatisch eingetragen, wenn die IP-Range der UTM bekannt ist.
  • Wir empfehlen grundsätzlich Systeme, die von außen erreichbar sind, in einem eigenen Netzwerk mit eigener Zone aufzustellen.
  • 443 Der Webserver soll über eine Verschlüsselte Verbindung angesprochen werden.
    SSL benutzen Ein Legt fest, ob SSL verwendet werden kann
    Weiter
    Schritt 2 - Extern

    Eingehende Verbindung definieren

    Externer Domainname: www.ttt-point.de Hier wird eingetragen, wie der Server hinter der UTM angesprochen wird.

  • Es kann hier auch die öffentliche IP-Adresse eingetragen werden, die der Client aus dem Internet aufruft. Allerdings ist es dann nicht möglich über zusätzliche Subdomains weitere einzelne Server zu unterscheiden.
  • [[Datei: ]]
    Konfiguration des externen Zugriffs, damit der Reverse-Proxy auf Anfragen reagiert
    Modus HTTPS Zu nutzender Modus
    443 Port für den SSL-Proxy des entsprechenden Servers
    SSL-Zertifikat *.ttt-point.de Das zuvor angelegte Wildcard-Zertifikat (siehe Abschnitt: Vorbereitungen)
    Weiter
    Schritt 3 - Extern (Global)
    Authentifizierung weiterleiten: Leitet fixe Zugangsdaten (hier: Keine) an den Reverse Proxy weiter.
    Der Proxy soll keine Authentifizierung durchführen
    [[Datei: ]]
    Anmeldename    
    Passwort    
    Authentifizierung aus Authentifizierung ist bei einem Webserver, der die öffentliche Homepage vorhält nicht sinnvoll.
    Fertig

    Die Anordnung in Servergruppen ermöglicht es, verschiedene Beziehungen im Reverse Proxy darzustellen:
  • Automatisch angelegte Servergruppe
    Mit der Schaltfläche Server hinzufügen lässt sich die Servergruppe erweitern notempty
    Neu ab v12.7.0
    und unter Server lassen sich die einzelnen Server mit der Schaltfläche bearbeiten.
    [[Datei: ]]

    Über ACLs lassen sich Zugriffsrechte zuweisen.
    ACL-Set time
    req_header Filter auf den Header des Clients
    Es muss der Name des Headers und der Regex, der auf den Wert des Headers matcht übergeben werden
    src Gibt die Quell IP des Clients in CIDR Notierung an
    dstdomain Gibt die Domäne/IP des Ziel-Servers an
    dstdom_regex Regex auf die Ziel-Domäne
    srcdomain Gibt die Domäne des Absenders an
    srcdom_regex Regex auf die Quell-Domäne.
    Die Quell-Domäne wird über einen Reverse IP Lookup ermittelt (via IP-Adresse des Clients)
    urlpath_regex Ein Regex Ausdruck, der auf die URL hinter der Ziel-Domäne matcht
    proto protoProtokoll
    time Definiert einen Zeitraum, zu dem die Webseite aufgerufen werden muss
    S - Sonntag

    M - Montag
    T - Dienstag
    W - Mittwoch
    H - Donnerstag
    F - Freitag
    A - Samstag

    D - jeden Werktag

    Bei einer vorhandenen Servergruppe kann über die Schaltfläche ein Site hinzugefügt werden. notempty
    Neu ab v14.1.1

    Falls ungültige Konfigurationen vorliegen, werden diese mit einer Warnung () versehen. Beim Hovern über diese Warnung wird außerdem eine kurze Beschreibung des Problems gezeigt.
    Alle Sites müssen ein dst_dom*-ACL aktiv haben, andernfalls werden sie ignoriert.

  • [[Datei: ]]

    Einstellungen

    Einstellungen
    Hier kann festgelegt werden ob HTTP/HTTPS oder beides verwendet werden soll, die Ports sowie das Zertifikat für den entsprechenden Server.
    Einstellungen unter Verwendung der nginx-Engine