Servicemanagement in Netzen - Leischner

Praktikumsblatt 5 - Reverse Proxy

Hinweis:

In den nachfolgenden Aufgaben erstellen Sie auf Ihrem Server serv-ws22 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_1305668&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.

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

 

 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:ff??: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 IPv6-Netz loc_ipv6 angebunden, damit er einfach zu einem Reverse-Proxy ausgebaut werden kann. Im lokale IPv6-Netz loc_ipv6 sollen in Aufgabe 3 Services bereitgestellt werden, die über den Reverse-Proxy erreichbar sind.
    • Der Server ist von außen über Ihre URL www.yourDomain.xy erreichbar. Stellen Sie die URL-Adressauflösung bei Ihrem CDN-Provider auf DNS ein, so dass Ihre URL www.yourDomain.xy nach 2001:638:408:200:ff??:cafe::7777/64 auflöst.
    • Wird der Server über seine IPv6-Adresse 2001:638:408:200:ff??:cafe::7777/64 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:

 

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 sowohl mit http (= ungesichert) als auch 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-ws22 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.

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 sowohl mit http (ungesichert) als auch mit https erreichbar ist.
  2. Passen Sie Ihre Konfiguration von nginx.conf so an, dass ein User-Zugriff mit http 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.
    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. Bitte diese Einstellung nicht aktivieren (bzw. deaktivieren), sonst ist die Aufgabe wenig sinnvoll.
  3. Wie beurteilen Sie die Sicherheit Ihres Webservers www2.yourDomain.xy?
  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 b) der Aufgabe:

 

 

 

 

 

Impressum | Datenschutz | leischner.inf.h-brs.de, last modification: 31.10.2022-17.58