79a13f0919
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>
133 lines
3.1 KiB
Markdown
133 lines
3.1 KiB
Markdown
# Wireshark Hint Card (optional)
|
|
|
|
Diese Hinweise helfen bei der Bonus-Challenge mit Paketmitschnitt.
|
|
|
|
## 1) Installation
|
|
|
|
Fedora:
|
|
|
|
```bash
|
|
sudo dnf install -y wireshark wireshark-cli
|
|
```
|
|
|
|
Ubuntu/WSL:
|
|
|
|
```bash
|
|
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:
|
|
|
|
```bash
|
|
# 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:
|
|
|
|
```bash
|
|
curl http://localhost:8080/service/a
|
|
```
|
|
|
|
3. 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:
|
|
|
|
```bash
|
|
sudo cp certs/easyrsa/pki/ca.crt /etc/pki/ca-trust/source/anchors/htl-workshop-root-ca.crt
|
|
sudo update-ca-trust
|
|
```
|
|
|
|
Ubuntu/Debian:
|
|
|
|
```bash
|
|
sudo cp certs/easyrsa/pki/ca.crt /usr/local/share/ca-certificates/htl-workshop-root-ca.crt
|
|
sudo update-ca-certificates
|
|
```
|
|
|
|
Test:
|
|
|
|
```bash
|
|
curl https://localhost:8443/service/a
|
|
```
|
|
|
|
## 5) HTTPS danach mitschneiden (verschluesselt)
|
|
|
|
Filter:
|
|
|
|
```text
|
|
tcp.port == 8443
|
|
```
|
|
|
|
oder
|
|
|
|
```text
|
|
tls
|
|
```
|
|
|
|
Handshake schnell finden:
|
|
|
|
```text
|
|
tls.handshake
|
|
```
|
|
|
|
Nur Zertifikats-Nachrichten:
|
|
|
|
```text
|
|
tls.handshake.type == 11
|
|
```
|
|
|
|
## 6) Optional: TLS in Wireshark entschluesseln
|
|
|
|
1. Vor Browser-Start setzen (WSL/bash):
|
|
|
|
```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.
|
|
|
|
2. Browser aus derselben Shell starten und HTTPS-Request erzeugen.
|
|
3. In Wireshark unter TLS-Preferences `sslkeys.log` als Key Log File setzen.
|
|
4. Mitschnitt erneut laden.
|
|
|
|
CLI-Alternative mit tshark (optional):
|
|
|
|
```bash
|
|
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
|