Servicemanagement in Netzen - Leischner

Praktikumsblatt 5 - Reverse Proxy

Hinweis:

In den nachfolgenden Aufgaben erstellen Sie auf Ihrem Server serv-ws21 Services, die von außen über eine genau bestimmte IPv6-Adresse aus Ihrem IPv6-Subnetz erreichbar sind. Bitte lassen Sie diese Services durchgehend auf Ihrem Server  laufen.

Dass Ihre Services auch wirklich laufen, können Sie mit dem taskchecker (LEA: https://lea.hochschule-bonn-rhein-sieg.de/goto.php?target=webr_1141942&client_id=db_040811 ) überprüfen.

Die laufenden Services sind Teil der Prüfungsvorleistung (H-BRS) bzw. des ULP (TH-Köln).

 

In diesem Aufgabenblatt erstellen wir einen IPv6-Reverse-Proxy für lokale IPv6-Services.

 

 Aufgabe 1 - Nginx

In dieser Aufgabe erstellen wir zunächst einen "normalen" Webserver, den wir dann in Aufgabe 3 zu einem Reverse-Proxy ausbauen. Für die DNS-Auflösung verwenden wir in dieser Aufgabe "reines" DNS ohne CDN-Proxyfunktionen.

  1. Ihr Webserver soll folgende IPv6-Adresse aus Ihrem IPv6-Netz my_ipv6 besitzen: 2001:638:408:200:fd??:cafe::7777/64
  2. Erstellen Sie einen Docker-Compose-File (zusammen mit den notwendigen Konfigurationsfiles) für einen nginx-Server reverse-proxy, der folgende Eigenschaften besitzt:
    • Der Server liefert eine responsive Webseite, die mit bootstrap erstellt ist und mindestens ein Bild enthält.
      (Bitte kopieren Sie nicht einfach meine Lösung, sondern machen selbst etwas Nettes mit bootstrap.)
    • Der Server besitzt die oben angegebene globale IPv6-Adresse.
    • Der Server ist - zusätzlich zu seiner Anbindung nach außen - auch an das lokale Netz loc_ipv6 angebunden.
    • Der Server ist von außen über Ihre URL www.yourDomain.xy erreichbar.
    • Wird der Server über seine IPv6-Adresse direkt aufgerufen, so erscheint eine Fehlermeldung  "Error 444 - Undefined Server Name / Access only allowed via www.yourDomain.xy"
    • Frage: Warum ist es in vielen Fällen sinnvoll, den Zugriff auf Webserver mittels IP-Adresse zu blockieren?
  3. Geben Sie Ihr Docker-Compose-File und Ihre Konfigurationsdatei /etc/nginx/nginx.conf an. Erläutern Sie beide Dateien im Detail.
  4. Starten und testen Sie Ihren Server.

Meine Lösung:

 

Übergeben Sie - falls noch nicht geschehen - Ihre URL zur Verwaltung einem CDN-Provider, der als zusätzlichen CDN-Service den Zugriff über https anbietet.
(Ein möglicher CDN-Provider mit einem kostenlosen Basisangebot ist Cloudflare).

 

Aufgabe 2 - HTTPS Server

  1. Aktivieren Sie für Ihren Server mit der URL www.yourDomain.xy die CDN-Proxyfunktionen, so dass Ihr Server mit http erreichbar ist. Über welche IPv6-Adresse wird Ihr Server nun über www.yourDomain.xy von außen erreicht.
  2. Richten Sie den CDN-Proxy so ein, dass der Zugriff auf Ihren Nginx-Server mit https unterstützt wird.
  3. Wie beurteilen Sie die Sicherheit Ihres https-Webservers?

Meine Lösung:

 

Aufgabe 3 - Reverse Proxy

  1. Erstellen Sie einen Docker-Compose-File, der im Netz  loc_ipv6 zwei miniwhoami-Services miniwhoami-loc1 und miniwhoami-loc2 startet. Richten Sie nun Ihren Webserver als Reverse-Proxy für diese beiden miniwhoami-Services ein. Geben Sie die von Ihnen verwendete Konfigurationsdatei /etc/nginx/nginx.conf an und erläutern Sie diese Datei im Detail.
  2. Richten Sie zwei URLs miniwhoami-loc1.yourDomain.xy und miniwhoami-loc2.yourDomain.xy ein, die auf Ihren Reverse Proxy zeigen. Testen Sie den Zugriff auf die Services miniwhoami-loc1 und miniwhoami-loc2.
  3. Ein http-Echoservice ist ein Webserver, der beim Aufruf durch einem Webbrowser die http-Header des Aufrufs ausgibt. Finden Sie ein geeignetes Image für einen http-Echoservice echo.
  4. Lassen Sie den http-Echoservice echo auf Ihrem Server serv-ws21 hinter Ihrem Reverse-Proxy laufen, so dass Sie den Service echo über den Reverse-Proxy in folgender Weise aufrufen können:
    • http://echo.yourDomain.xy bzw.
    • https://echo.yourDomain.xy.
    Vergleichen und analysieren Sie die verschiedenen Aufruf.

Anmerkung: Ich habe in der Aufgabe heute (28.11.21) die URL von miniwhoami_loc1 auf miniwhoami-loc1 geändert, da der Underscore von manchen Providern in der URL nicht akzeptiert wird. Der Taskchecker passt sich autmatisch auf dash/underscore an.

Meine Lösung:

 

Aufgabe 4 - HTTPS Redirection

  1. Richten Sie einen Server mit der URL www2.yourDomain.xy ein. Aktivieren Sie die CDN-Proxyfunktionen, so dass Ihr Server für einen User sowohl mit http als auch mit https erreichbar ist.
  2. Unabhängig davon, ob der User mit http oder https auf Ihren Server zugreift, erfolgt der Zugriff vom CDN-Provider aus immer mit http. Passen Sie Ihr Konfiguration von nginx.conf so an, dass ein User-Zugriff auf auf www2.yourDomain.xy immer auf https umgeleitet wird.
    Wie gehen Sie dabei vor? Geben Sie Ihre nginx.conf Datei an. Testen Sie den Zugriff auf Ihren Server www2.yourDomain.xy.
  3. Hinweis: Beim CDN-Provider Cloudflare können Sie einstellen, dass in Ihrer Domäne yourDomain.xy jeder http-Zugriff für alle Server automatisch auf https umgeleitet wird. Wo finden Sie diese Einstellung bei Cloudflare? Bitte diese Einstellung nicht aktivieren.
  4. Analysieren Sie für Ihren Webserver www2.yourDomain.xy die TLS-Sicherheit des https-Zugriffs mit einem geeigneten Analysetool.
    Fragen:
    • Welches Tool haben Sie verwendet?
    • Welches Ergebnis haben Sie erzielt? Welche TLS-Versionen werden unterstützt? Welche TLS-Versionen werden nicht unterstützt?

Meine Lösung für Teil a) der Aufgabe:

 

 

 

 

 

Impressum | Datenschutz | leischner.inf.h-brs.de, last modification: 12.09.2022-10.46