Files
hkoeck 79a13f0919 Verbessere Challenge-Angaben, TLS-Fixes und Windows-Tauglichkeit
Fachliche Fixes:
- Easy-RSA: explizites --subject-alt-name (SAN) ergaenzt, sonst
  scheitert curl trotz CA-Import
- HSTS: max-age auf 3600 reduziert, includeSubDomains erklaert,
  Warnung zur host-weiten Browser-Falle + Reset-Weg
- Challenge 9: Backup-/Restore-Schritte fuer nginx.conf
- Compose-Portwechsel: redeploy statt proxy-reload klargestellt
- log_format-Platzierung (http-Block) dokumentiert
- add_header-Vererbungsfalle erklaert (Ch. 4 + Abgrenzung Ch. 8)

Angabe-Struktur (alle 13 Challenges):
- Einheitliches Schema: Ausgangszustand, Schritte (Muss),
  Zielzustand/Akzeptanz, erwartete Done-Check-Ausgaben
- Arbeitsweise global geklaert (additiv, Ausnahme Ch. 9, Reset)

Robustheit/Kosmetik:
- Load-Balancing: eindeutiger INSTANCE-Marker statt fragilem grep
- Challenge-3-Titel auf "Alias-Route" korrigiert
- HTTPS_PORT in .env.example parametrisiert
- Umlaut-Konsistenz (ASCII)

Windows-Tauglichkeit:
- Klargestellt: Test-Kommandos laufen in WSL bash, nicht PowerShell
  (curl-Alias-Falle), Stack-Steuerung per Wrapper oder WSL
- Wireshark: empfohlener Capture-Weg in WSL (tshark), npcap-Hinweis
- CA-Import: Linux-Trust-Store (WSL) vs Windows-Browser (certutil)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-31 22:08:41 +02:00

3.1 KiB

Wireshark Hint Card (optional)

Diese Hinweise helfen bei der Bonus-Challenge mit Paketmitschnitt.

1) Installation

Fedora:

sudo dnf install -y wireshark wireshark-cli

Ubuntu/WSL:

sudo apt update
sudo apt install -y wireshark tshark

2) Interface waehlen

  • Linux lokal: meist lo (Loopback) fuer localhost
  • Docker-Welt: ggf. docker0 bzw. Bridge-Interface

Windows (Docker Desktop + WSL) - empfohlener Weg:

  • Capture innerhalb WSL machen, dort verhaelt sich lo wie unter Linux. Sowohl der curl-Request als auch der Mitschnitt laufen im WSL-Terminal:
# Terminal 1 (WSL): Mitschnitt starten
sudo tshark -i lo -f "tcp port 8080"
# Terminal 2 (WSL): Request senden
curl http://localhost:8080/service/a
  • Natives Windows-Wireshark kann localhost nur ueber den npcap-Adapter "Adapter for loopback traffic capture" mitschneiden, und Docker-Desktop-Portforwarding macht das unzuverlaessig. Fuer den Workshop daher in WSL bleiben.
  • Wireshark-GUI unter WSL braucht WSLg (Windows 11) oder ein X-Server; einfacher ist tshark (CLI) plus spaeter .pcap in der Wireshark-GUI oeffnen (tshark -w mitschnitt.pcap ...).

3) HTTP zuerst (Klartext)

  1. Mitschnitt starten
  2. Request senden:
curl http://localhost:8080/service/a
  1. In Wireshark nach http oder tcp.port == 8080 filtern

4) Root-CA importieren und HTTPS ohne -k testen

Voraussetzung: HTTPS-Challenge umgesetzt (Port 8443 aktiv).

Fedora:

sudo cp certs/easyrsa/pki/ca.crt /etc/pki/ca-trust/source/anchors/htl-workshop-root-ca.crt
sudo update-ca-trust

Ubuntu/Debian:

sudo cp certs/easyrsa/pki/ca.crt /usr/local/share/ca-certificates/htl-workshop-root-ca.crt
sudo update-ca-certificates

Test:

curl https://localhost:8443/service/a

5) HTTPS danach mitschneiden (verschluesselt)

Filter:

tcp.port == 8443

oder

tls

Handshake schnell finden:

tls.handshake

Nur Zertifikats-Nachrichten:

tls.handshake.type == 11

6) Optional: TLS in Wireshark entschluesseln

  1. Vor Browser-Start setzen (WSL/bash):
export SSLKEYLOGFILE="$HOME/sslkeys.log"

In PowerShell waere es stattdessen $env:SSLKEYLOGFILE = "$HOME\sslkeys.log" - der einfachste Weg ist aber, alles in WSL zu machen.

  1. Browser aus derselben Shell starten und HTTPS-Request erzeugen.
  2. In Wireshark unter TLS-Preferences sslkeys.log als Key Log File setzen.
  3. Mitschnitt erneut laden.

CLI-Alternative mit tshark (optional):

tshark -i lo -f "tcp port 8443"

7) Was ihr zeigen sollt

  • HTTP-Mitschnitt: URL/Headers lesbar
  • HTTPS-Mitschnitt: TLS Handshake sichtbar, Nutzdaten nicht im Klartext
  • Nach CA-Import funktioniert curl https://localhost:8443/... ohne -k
  • Optional: Mit Key Log koennen HTTP-Details im TLS-Stream sichtbar werden

8) Erwartete Abgabe (kurz)

  • Screenshot 1: HTTP-Request mit lesbaren Daten
  • Screenshot 2: HTTPS-Request mit TLS-Handshake
  • Screenshot 3 (optional): entschluesselter TLS-Stream via Key Log
  • 3 Bulletpoints: Unterschied HTTP vs HTTPS in euren eigenen Worten