chore: update VPN routing configuration and add Grafana VPN documentation

This commit is contained in:
2025-11-02 18:10:04 +01:00
parent 2dd8468d70
commit 7b7f0b41d2
41 changed files with 3727 additions and 11 deletions

View File

@@ -0,0 +1,125 @@
# Grafana VPN - N?chste Schritte
## Aktueller Status ?
**Grafana ist erreichbar** - sowohl mit als auch ohne VPN
- ? Tempor?re L?sung aktiv: ?ffentliche IP (`89.246.96.244`) ist in der IP-Allowlist
- ?? **Sicherheitsrisiko**: Grafana ist ?ffentlich erreichbar
## Ziel ??
Grafana sollte **nur ?ber VPN** erreichbar sein:
- ? Mit VPN: Grafana erreichbar
- ? Ohne VPN: 403-Fehler
## Problem
Der Traffic l?uft **nicht ?ber VPN**, auch wenn VPN verbunden ist:
- Traefik sieht die ?ffentliche Client-IP (`89.246.96.244`) statt der VPN-IP (`10.8.0.7`)
- Ursache: DNS-Aufl?sung verwendet ?ffentliche DNS-Server statt VPN-DNS (`10.8.0.1`)
## L?sung: VPN-Routing fixen
### Option 1: DNS auf VPN-DNS setzen (EMPFOHLEN)
**Pr?fe deine WireGuard-Config:**
```
[Interface]
DNS = 10.8.0.1
```
**Falls nicht gesetzt:**
1. ?ffne deine WireGuard-Config
2. F?ge hinzu: `DNS = 10.8.0.1`
3. Speichere und starte VPN neu
**Test:**
```bash
dig +short grafana.michaelschiemer.de
# Sollte zur?ckgeben: 10.8.0.1 (nicht 94.16.110.151!)
```
**Browser testen:**
1. Browser-Cache leeren (oder Inkognito-Modus)
2. ?ffne: `https://grafana.michaelschiemer.de`
3. Sollte funktionieren, wenn DNS auf `10.8.0.1` zeigt
### Option 2: Hosts-Datei verwenden (TEMPOR?R)
**Linux/Mac:**
```bash
echo "10.8.0.1 grafana.michaelschiemer.de" | sudo tee -a /etc/hosts
```
**Windows:**
```
# C:\Windows\System32\drivers\etc\hosts (als Administrator bearbeiten)
10.8.0.1 grafana.michaelschiemer.de
```
## Pr?fen ob Traffic ?ber VPN l?uft
Nach dem Fix kannst du pr?fen:
```bash
# Auf dem Server
ssh deploy@94.16.110.151
cd ~/deployment/stacks/traefik
tail -5 logs/access.log | grep grafana | grep -oP '"ClientHost":"[^"]*"'
```
**Erwartet:**
- **Mit VPN**: `"ClientHost":"10.8.0.7"` (VPN-IP) ?
- **Ohne VPN**: Keine Logs oder 403-Fehler ?
**Aktuell:**
- **Mit VPN**: `"ClientHost":"89.246.96.244"` (?ffentliche IP) ?
- **Ohne VPN**: `"ClientHost":"89.246.96.244"` (?ffentliche IP) ?
## Tempor?re IP-Erlaubnis entfernen
Sobald das VPN-Routing funktioniert (Traffic kommt ?ber VPN), entferne die tempor?re IP-Erlaubnis:
### Automatisch (via Ansible)
```bash
cd deployment/ansible
ansible-playbook -i inventory/production.yml playbooks/remove-temporary-grafana-ip.yml
```
### Manuell
```bash
# Auf dem Server
ssh deploy@94.16.110.151
cd ~/deployment/stacks/traefik/dynamic
# Entferne tempor?re IP
sed -i '/89.246.96.244\/32/d' middlewares.yml
# Restart Traefik
cd ~/deployment/stacks/traefik
docker compose restart traefik
```
## Test nach Entfernung
1. **Mit VPN**: `https://grafana.michaelschiemer.de` sollte funktionieren ?
2. **Ohne VPN**: `https://grafana.michaelschiemer.de` sollte 403-Fehler geben ?
## Zusammenfassung
**JETZT:**
1. ? Grafana funktioniert (tempor?re IP-Erlaubnis)
2. ?? Funktioniert auch ohne VPN (Sicherheitsrisiko)
**N?CHSTE SCHRITTE:**
1. Fixe VPN-Routing (DNS auf `10.8.0.1` oder Hosts-Datei)
2. Pr?fe dass Traffic ?ber VPN kommt (ClientHost: 10.8.0.7)
3. Entferne tempor?re IP-Erlaubnis (via Playbook oder manuell)
4. Teste: Mit VPN = OK, Ohne VPN = 403
**Dokumentation:**
- `docs/deployment/GRAFANA-VPN-SECURITY-PLAN.md` - Detaillierter Plan
- `docs/deployment/VPN-ROUTING-FIX-DETAILED.md` - VPN-Routing Fix
- `docs/deployment/VPN-ROUTING-CLIENT-CHECK.md` - Client-Side Checks

View File

@@ -0,0 +1,149 @@
# Grafana VPN-Sicherheit - Plan zur Entfernung der tempor?ren IP-Erlaubnis
## Aktueller Status
? **Grafana ist erreichbar** - sowohl mit als auch ohne VPN
?? **Tempor?re L?sung aktiv**: ?ffentliche IP (`89.246.96.244`) ist in der IP-Allowlist
?? **Ziel**: Grafana sollte **nur ?ber VPN** erreichbar sein
## Problem
Der Traffic l?uft **nicht ?ber VPN**, auch wenn VPN verbunden ist:
- Traefik sieht die ?ffentliche IP (`89.246.96.244`) statt der VPN-IP (`10.8.0.7`)
- Deshalb funktioniert Grafana auch ohne VPN (wegen tempor?rer IP-Erlaubnis)
## Warum funktioniert Traffic nicht ?ber VPN?
### Problem: DNS-Aufl?sung
Wenn du `grafana.michaelschiemer.de` aufrufst:
1. **Mit ?ffentlichem DNS**: Wird auf `94.16.110.151` (?ffentliche IP) aufgel?st
2. **Mit VPN-DNS** (`10.8.0.1`): Wird auf `10.8.0.1` (VPN-IP) aufgel?st
**Aktuell:** Dein System verwendet ?ffentliche DNS ? Traffic geht direkt ?ber Internet (nicht ?ber VPN)
### L?sung: DNS auf VPN-DNS setzen
**Schritt 1: Pr?fe deine WireGuard-Config**
?ffne deine WireGuard-Config und pr?fe:
```
[Interface]
DNS = 10.8.0.1
```
**Schritt 2: WireGuard neu starten**
1. Trenne die VPN-Verbindung
2. Starte sie neu
3. Pr?fe ob DNS jetzt `10.8.0.1` ist
**Schritt 3: DNS-Test**
```bash
# Teste DNS-Aufl?sung
dig +short grafana.michaelschiemer.de
# Sollte zur?ckgeben:
# - 10.8.0.1 (wenn VPN-DNS verwendet wird) ?
# - 94.16.110.151 (wenn ?ffentliche DNS verwendet wird) ?
```
**Schritt 4: Browser testen**
1. Browser-Cache leeren (oder Inkognito-Modus)
2. ?ffne: `https://grafana.michaelschiemer.de`
3. Sollte funktionieren, wenn DNS auf `10.8.0.1` zeigt
### Alternative: Hosts-Datei verwenden
Falls DNS nicht automatisch funktioniert:
**Linux/Mac:**
```bash
echo "10.8.0.1 grafana.michaelschiemer.de" | sudo tee -a /etc/hosts
```
**Windows:**
```
# C:\Windows\System32\drivers\etc\hosts (als Administrator)
10.8.0.1 grafana.michaelschiemer.de
```
## Pr?fen ob Traffic ?ber VPN l?uft
Nach dem Fix kannst du pr?fen:
```bash
# Auf dem Server pr?fen
ssh deploy@94.16.110.151
cd ~/deployment/stacks/traefik
tail -5 logs/access.log | grep grafana | grep -oP '"ClientHost":"[^"]*"'
```
**Erwartet:**
- **Mit VPN**: `"ClientHost":"10.8.0.7"` (VPN-IP) ?
- **Ohne VPN**: Keine Logs (weil 403-Fehler) ?
**Aktuell:**
- **Mit VPN**: `"ClientHost":"89.246.96.244"` (?ffentliche IP) ?
- **Ohne VPN**: `"ClientHost":"89.246.96.244"` (?ffentliche IP) ?
## Plan: Tempor?re IP-Erlaubnis entfernen
Sobald das VPN-Routing funktioniert (Traffic kommt ?ber VPN), entferne die tempor?re IP-Erlaubnis:
### Schritt 1: Pr?fe dass Traffic ?ber VPN kommt
```bash
# Auf dem Server pr?fen
ssh deploy@94.16.110.151
cd ~/deployment/stacks/traefik
# Mache einen Zugriff auf Grafana (mit VPN verbunden)
# Dann pr?fe:
tail -5 logs/access.log | grep grafana | grep -oP '"ClientHost":"[^"]*"'
# Sollte zeigen: "ClientHost":"10.8.0.7" (VPN-IP)
```
### Schritt 2: Entferne tempor?re IP-Erlaubnis
```bash
# Auf dem Server
cd ~/deployment/stacks/traefik/dynamic
# Entferne die Zeile: - "89.246.96.244/32"
sed -i '/89.246.96.244\/32/d' middlewares.yml
```
### Schritt 3: Traefik neu starten
```bash
cd ~/deployment/stacks/traefik
docker compose restart traefik
```
### Schritt 4: Test
1. **Mit VPN**: Grafana sollte erreichbar sein ?
2. **Ohne VPN**: Grafana sollte 403-Fehler geben ?
## Zusammenfassung
**JETZT:**
- ? Grafana funktioniert (tempor?re IP-Erlaubnis)
- ?? Funktioniert auch ohne VPN (Sicherheitsrisiko)
**N?CHSTE SCHRITTE:**
1. Fixe VPN-Routing (DNS auf `10.8.0.1` oder Hosts-Datei)
2. Pr?fe dass Traffic ?ber VPN kommt (ClientHost: 10.8.0.7)
3. Entferne tempor?re IP-Erlaubnis
4. Teste: Mit VPN = OK, Ohne VPN = 403
## Script zum Entfernen der tempor?ren IP
Ich kann ein Ansible-Playbook erstellen, das:
1. Pr?ft ob Traffic ?ber VPN kommt
2. Tempor?re IP-Erlaubnis entfernt (wenn Traffic ?ber VPN kommt)
3. Traefik neu startet
Soll ich das Playbook erstellen?

View File

@@ -0,0 +1,91 @@
# VPN-Routing Final Fix - Anleitung
## Problem best?tigt
? **Route vorhanden**: `10.8.0.0/24` Route existiert
? **Ping funktioniert**: `ping 10.8.0.1` erfolgreich
? **HTTP/HTTPS-Traffic kommt NICHT ?ber VPN**: Traefik sieht immer noch `ClientHost: 89.246.96.244`
## Ursache
Windows sendet HTTP/HTTPS-Traffic nicht ?ber das WireGuard-Interface, obwohl die Route vorhanden ist und Ping funktioniert. Dies deutet auf eine falsche `AllowedIPs`-Einstellung in der WireGuard-Client-Konfiguration hin.
## L?sung: WireGuard AllowedIPs pr?fen
### Schritt 1: WireGuard-Config ?ffnen
**Option A: ?ber WireGuard GUI**
1. ?ffne WireGuard
2. W?hle "grafana-test" Verbindung
3. Klicke auf "Bearbeiten"
**Option B: Config-Datei direkt**
- ?ffne: `%USERPROFILE%\Downloads\grafana-test.conf`
- Oder: Wo auch immer du die WireGuard-Config gespeichert hast
### Schritt 2: Pr?fe AllowedIPs
**Unter `[Peer]` sollte stehen:**
```ini
[Peer]
PublicKey = ...
Endpoint = 94.16.110.151:51820
AllowedIPs = 10.8.0.0/24 # ? WICHTIG: Gesamtes VPN-Netzwerk!
PersistentKeepalive = 25
```
**Falls nur steht:**
```ini
AllowedIPs = 10.8.0.1/32 # ? Nur Server-IP, nicht das Netzwerk!
```
**Dann ?ndere zu:**
```ini
AllowedIPs = 10.8.0.0/24 # ? Gesamtes VPN-Netzwerk
```
### Schritt 3: WireGuard neu verbinden
1. **Disconnect** WireGuard-Verbindung
2. **Warte 5 Sekunden**
3. **Connect** WireGuard-Verbindung neu
4. **Pr?fe Route**: `route print | findstr "10.8"`
5. **Teste Ping**: `ping 10.8.0.1`
### Schritt 4: Teste Grafana-Zugriff
1. **DNS-Cache leeren**: `ipconfig /flushdns`
2. **Browser ?ffnen** (oder Inkognito-Modus)
3. **?ffne**: `https://grafana.michaelschiemer.de`
4. **Warte 5 Sekunden**
### Schritt 5: Logs pr?fen
Ich pr?fe dann die Traefik-Logs:
- ? Wenn `ClientHost: 10.8.0.7` ? Traffic kommt ?ber VPN!
- ? Wenn `ClientHost: 89.246.96.244` ? Traffic kommt immer noch nicht ?ber VPN
## Alternative: Route manuell optimieren
Falls AllowedIPs korrekt ist, aber es trotzdem nicht funktioniert:
```powershell
# Als Administrator
# Entferne alte Route
route delete 10.8.0.0 MASK 255.255.255.0
# Setze Route explizit mit Gateway 10.8.0.1
route add 10.8.0.0 MASK 255.255.255.0 10.8.0.1 METRIC 1 IF 18
# Pr?fe ob es funktioniert hat
route print | findstr "10.8"
```
Dann teste Grafana erneut.
## N?chste Schritte
Nach erfolgreichem VPN-Routing:
1. ? Traffic kommt ?ber VPN (`ClientHost: 10.8.0.7`)
2. ? Tempor?re IP-Erlaubnis (`89.246.96.244`) entfernen
3. ? Grafana ist nur noch ?ber VPN erreichbar

View File

@@ -0,0 +1,100 @@
# VPN Routing Fix - Detaillierte Anleitung
## Problem best?tigt
Traefik sieht die ?ffentliche Client-IP (`89.246.96.244`) statt der VPN-IP (`10.8.0.7`). Der Traffic kommt **NICHT ?ber VPN**.
## Warum passiert das?
Deine WireGuard-Config hat:
```
[Peer]
AllowedIPs = 10.8.0.0/24
```
Das bedeutet: **Nur Traffic f?r das VPN-Netzwerk** (`10.8.0.0/24`) geht ?ber VPN. Alle anderen Anfragen gehen ?ber das normale Internet.
Wenn du `grafana.michaelschiemer.de` aufrufst:
1. DNS wird ?ber **?ffentliche DNS-Server** aufgel?st ? `94.16.110.151` (?ffentliche IP)
2. Browser sendet Anfrage an `94.16.110.151`
3. Traffic geht **direkt ?ber Internet**, nicht ?ber VPN
4. Traefik sieht deine ?ffentliche IP (`89.246.96.244`)
5. IP-Allowlist blockiert ? 403-Fehler
## L?sungen
### L?sung 1: DNS auf VPN-DNS setzen (EMPFOHLEN)
**Schritt 1: Pr?fe deine WireGuard-Config**
```
[Interface]
DNS = 10.8.0.1
```
**Schritt 2: WireGuard neu starten**
- Trenne und verbinde VPN neu
**Schritt 3: DNS-Test**
```bash
dig +short grafana.michaelschiemer.de
# Sollte zur?ckgeben: 10.8.0.1 (nicht 94.16.110.151!)
```
**Schritt 4: Browser testen**
- Cache leeren oder Inkognito-Modus
- `https://grafana.michaelschiemer.de` ?ffnen
### L?sung 2: AllowedIPs erweitern (WENIGER SICHER)
Wenn `AllowedIPs = 10.8.0.0/24` nicht ausreicht, kannst du tempor?r erweitern:
```
[Peer]
AllowedIPs = 10.8.0.0/24, 94.16.110.151/32
```
**WICHTIG:** Das routet dann ALLE Anfragen f?r `94.16.110.151` ?ber VPN. Das k?nnte andere Dienste beeinflussen.
### L?sung 3: Hosts-Datei verwenden (TEMPOR?R)
**Linux/Mac:**
```bash
echo "10.8.0.1 grafana.michaelschiemer.de" | sudo tee -a /etc/hosts
```
**Windows:**
```
# C:\Windows\System32\drivers\etc\hosts (als Administrator)
10.8.0.1 grafana.michaelschiemer.de
```
Dann wird `grafana.michaelschiemer.de` direkt auf die VPN-IP aufgel?st.
### L?sung 4: Tempor?re IP-Erlaubnis (F?R TESTS)
**ACHTUNG:** Dies ist nur f?r Tests! Ich habe deine ?ffentliche IP (`89.246.96.244`) tempor?r zur Allowlist hinzugef?gt. Das sollte jetzt funktionieren, ist aber **weniger sicher**.
**Nach dem Test:** Diese IP muss wieder entfernt werden, sobald VPN-Routing funktioniert!
## Pr?fen ob es funktioniert
Nach dem Fix solltest du:
1. `https://grafana.michaelschiemer.de` ?ffnen k?nnen (Login-Seite statt 403)
2. In den Traefik-Logs sollte `ClientHost: 10.8.0.7` stehen (VPN-IP)
## Server-Log pr?fen
```bash
ssh deploy@94.16.110.151
cd ~/deployment/stacks/traefik
tail -5 logs/access.log | grep grafana
```
**Erwartet:** `"ClientHost":"10.8.0.7"` (VPN-IP)
**Wenn es noch nicht funktioniert:** `"ClientHost":"89.246.96.244"` (?ffentliche IP)
## N?chste Schritte
1. **JETZT:** Teste ob Grafana mit der tempor?ren IP-Erlaubnis funktioniert
2. **DANN:** Fixe VPN-Routing (DNS auf 10.8.0.1 oder Hosts-Datei)
3. **SP?TER:** Entferne die tempor?re IP-Erlaubnis wieder

View File

@@ -0,0 +1,143 @@
# VPN Routing Fix - Schritt-f?r-Schritt Anleitung
## Problem
Traefik sieht die ?ffentliche Client-IP (`89.246.96.244`) statt der VPN-IP (`10.8.0.7`). Der Traffic l?uft nicht ?ber VPN.
## L?sung: DNS auf VPN-DNS setzen
### Schritt 1: Pr?fe aktuelle DNS-Konfiguration
**Linux/Mac:**
```bash
cat /etc/resolv.conf
# Oder
resolvectl status
```
**Windows:**
```powershell
Get-DnsClientServerAddress | Select-Object InterfaceAlias, ServerAddresses
```
**Was du suchst:**
- Sollte `10.8.0.1` enthalten (VPN-DNS) ?
- Falls nicht ? DNS verwendet ?ffentliche Server ?
### Schritt 2: Teste DNS-Aufl?sung
```bash
# Teste normale DNS-Aufl?sung
dig +short grafana.michaelschiemer.de
# Oder
nslookup grafana.michaelschiemer.de
# Falls das 94.16.110.151 zur?ckgibt ? Problem!
# Sollte 10.8.0.1 zur?ckgeben
```
```bash
# Teste DNS-Aufl?sung ?ber VPN-DNS
dig +short grafana.michaelschiemer.de @10.8.0.1
# Sollte zur?ckgeben: 10.8.0.1 ?
```
### Schritt 3: Pr?fe WireGuard-Config
?ffne deine WireGuard-Config-Datei und pr?fe:
```
[Interface]
PrivateKey = ...
Address = 10.8.0.7/24
DNS = 10.8.0.1 # ? DIESE ZEILE MUSS DA SEIN!
```
**Falls `DNS = 10.8.0.1` NICHT vorhanden ist:**
1. ?ffne deine WireGuard-Config
2. F?ge hinzu: `DNS = 10.8.0.1` unter `[Interface]`
3. Speichere die Datei
4. Starte WireGuard neu (trenne und verbinde VPN neu)
### Schritt 4: WireGuard neu starten
1. **Trenne** die VPN-Verbindung
2. **Starte** sie neu
3. **Pr?fe** ob DNS jetzt `10.8.0.1` ist
**Linux/Mac:**
```bash
# Pr?fe ob DNS jetzt gesetzt ist
cat /etc/resolv.conf | grep 10.8.0.1
```
**Windows:**
```powershell
Get-DnsClientServerAddress | Select-Object InterfaceAlias, ServerAddresses
# Sollte 10.8.0.1 zeigen
```
### Schritt 5: DNS erneut testen
```bash
# Teste DNS-Aufl?sung (ohne @10.8.0.1)
dig +short grafana.michaelschiemer.de
# Sollte jetzt zur?ckgeben: 10.8.0.1 ?
```
### Schritt 6: Browser testen
1. **Browser-Cache leeren** (oder Inkognito-Modus verwenden)
2. ?ffne: `https://grafana.michaelschiemer.de`
3. Sollte funktionieren, wenn DNS auf `10.8.0.1` zeigt
### Schritt 7: Pr?fe ob Traffic ?ber VPN kommt
Nach dem Fix k?nnen wir pr?fen, ob Traffic ?ber VPN kommt:
```bash
# Auf dem Server (ich kann das f?r dich pr?fen)
ssh deploy@94.16.110.151
cd ~/deployment/stacks/traefik
tail -5 logs/access.log | grep grafana | grep -oP '"ClientHost":"[^"]*"'
```
**Erwartet:**
- **Mit VPN**: `"ClientHost":"10.8.0.7"` (VPN-IP) ?
- **Ohne VPN**: Keine Logs oder 403-Fehler ?
## Alternative: Hosts-Datei verwenden (TEMPOR?R)
Falls DNS nicht automatisch funktioniert, kannst du tempor?r die Hosts-Datei verwenden:
**Linux/Mac:**
```bash
echo "10.8.0.1 grafana.michaelschiemer.de" | sudo tee -a /etc/hosts
```
**Windows:**
```
# C:\Windows\System32\drivers\etc\hosts (als Administrator bearbeiten)
10.8.0.1 grafana.michaelschiemer.de
```
**Hinweis:** Das ist nur eine tempor?re L?sung. DNS sollte langfristig funktionieren.
## Nach dem Fix: Tempor?re IP-Erlaubnis entfernen
Sobald der Traffic ?ber VPN l?uft (Traefik sieht `10.8.0.7` statt `89.246.96.244`), k?nnen wir die tempor?re IP-Erlaubnis entfernen:
```bash
cd deployment/ansible
ansible-playbook -i inventory/production.yml playbooks/remove-temporary-grafana-ip.yml
```
## Hilfe
Falls du bei einem Schritt Hilfe brauchst, teile mir mit:
- Welches Betriebssystem verwendest du? (Linux/Mac/Windows)
- Was zeigt `cat /etc/resolv.conf` (Linux/Mac) oder `Get-DnsClientServerAddress` (Windows)?
- Was zeigt `dig +short grafana.michaelschiemer.de`?
Dann kann ich dir gezielt helfen!

View File

@@ -0,0 +1,120 @@
# VPN-Routing Problem - Analyse
## Problem
? **Hosts-Datei funktioniert**: `grafana.michaelschiemer.de` wird auf `10.8.0.1` aufgel?st
? **Traffic l?uft NICHT ?ber VPN**: Traefik-Logs zeigen `ClientHost: 89.246.96.244` (?ffentliche IP) statt `10.8.0.7` (VPN-IP)
## Was passiert
1. Browser fragt: "Wo ist grafana.michaelschiemer.de?"
2. Hosts-Datei antwortet: "10.8.0.1"
3. Browser sendet Request an `10.8.0.1`
4. **Problem**: Windows sendet Traffic NICHT ?ber WireGuard-Interface, sondern ?ber Standard-Route
5. Resultat: Traffic kommt mit ?ffentlicher IP (`89.246.96.244`) am Server an
## M?gliche Ursachen
### 1. WireGuard AllowedIPs nicht korrekt
Die WireGuard-Client-Konfiguration muss sicherstellen, dass Traffic f?r `10.8.0.0/24` ?ber VPN geht.
**Aktuell m?glicherweise:**
```ini
[Peer]
AllowedIPs = 10.8.0.1/32 # Nur Server-IP, nicht das ganze Netzwerk
```
**Sollte sein:**
```ini
[Peer]
AllowedIPs = 10.8.0.0/24 # Gesamtes VPN-Netzwerk
```
### 2. Windows Route-Tabelle
Windows k?nnte die Route f?r `10.8.0.0/24` nicht korrekt setzen. Pr?fe mit:
```powershell
# Als Administrator
route print | findstr "10.8"
```
Sollte zeigen:
```
10.8.0.0 255.255.255.0 10.8.0.1 18 # 18 = Interface-Index von WireGuard
```
### 3. Interface-Metrik zu hoch
Obwohl WireGuard Interface-Metrik 5 hat (niedrigste), k?nnte Windows trotzdem das Standard-Interface bevorzugen.
## L?sungen
### L?sung 1: WireGuard AllowedIPs pr?fen und korrigieren
**Auf Windows, pr?fe deine WireGuard-Konfiguration:**
1. ?ffne WireGuard
2. W?hle `grafana-test` Verbindung
3. Klicke auf "Bearbeiten"
4. Pr?fe `[Peer]` Sektion
5. `AllowedIPs` sollte sein: `10.8.0.0/24` (nicht nur `10.8.0.1/32`)
**Beispiel korrekter Konfiguration:**
```ini
[Interface]
PrivateKey = ...
Address = 10.8.0.7/24
DNS = 10.8.0.1
[Peer]
PublicKey = ...
Endpoint = 94.16.110.151:51820
AllowedIPs = 10.8.0.0/24 # ? WICHTIG: Gesamtes Netzwerk!
```
### L?sung 2: Route manuell setzen (falls AllowedIPs nicht hilft)
**Auf Windows (als Administrator):**
```powershell
# Pr?fe aktuelle Route
route print | findstr "10.8"
# Setze Route manuell (falls nicht vorhanden)
route add 10.8.0.0 MASK 255.255.255.0 10.8.0.1 METRIC 1 IF 18
# Pr?fe ob es funktioniert hat
route print | findstr "10.8"
```
### L?sung 3: WireGuard neu verbinden
Nach ?nderung der Konfiguration:
1. **Disconnect** WireGuard-Verbindung
2. **Connect** WireGuard-Verbindung neu
3. Pr?fe Route-Tabelle: `route print | findstr "10.8"`
## Testen
Nach der Korrektur:
1. **Pr?fe Route:**
```powershell
route print | findstr "10.8"
```
2. **Ping Server:**
```powershell
ping 10.8.0.1
```
3. **Teste Grafana-Zugriff:**
- ?ffne `https://grafana.michaelschiemer.de` im Browser
- Pr?fe Traefik-Logs: `ClientHost` sollte `10.8.0.7` sein (nicht `89.246.96.244`)
## N?chste Schritte
1. ? Pr?fe WireGuard-Client-Konfiguration (`AllowedIPs = 10.8.0.0/24`)
2. ? Pr?fe Windows Route-Tabelle (`route print | findstr "10.8"`)
3. ? Falls Route fehlt: Setze manuell
4. ? WireGuard neu verbinden
5. ? Teste Grafana-Zugriff
6. ? Wenn `ClientHost: 10.8.0.7` ? Tempor?re IP-Erlaubnis entfernen

View File

@@ -0,0 +1,123 @@
# WireGuard neue Config ist fertig!
## Status
? **WireGuard-Client wurde neu generiert**
? **Neue Keys wurden erstellt**
? **WireGuard-Service l?uft**
?? **DNS-Zeile wurde manuell korrigiert** (`DNS = 10.8.0.1`)
## Neue Config-Datei
**Pfad**: `deployment/ansible/wireguard-clients/grafana-test.conf`
**Wichtige Daten:**
- **Client-IP**: `10.8.0.7` (gleich wie vorher)
- **PrivateKey**: Neu generiert
- **PublicKey**: Neu generiert (auf Server registriert)
- **Endpoint**: `94.16.110.151:51820`
- **AllowedIPs**: `10.8.0.0/24` ?
- **DNS**: `10.8.0.1` ?
## N?chste Schritte
### 1. Config-Datei auf Windows kopieren
**Option A: Von Windows aus:**
```powershell
# In PowerShell (von deinem Windows-PC)
scp deploy@94.16.110.151:/home/deploy/deployment/ansible/wireguard-clients/grafana-test.conf C:\Users\Mike\Downloads\grafana-test.conf
```
**Option B: Von Linux (dein PC):**
```bash
# Wenn du von deinem Linux-PC aus arbeitest
scp deploy@94.16.110.151:~/deployment/ansible/wireguard-clients/grafana-test.conf ~/Downloads/grafana-test.conf
```
**Option C: Datei direkt ?ffnen:**
```
deployment/ansible/wireguard-clients/grafana-test.conf
```
### 2. Neue Config in WireGuard importieren
1. **?ffne WireGuard auf Windows**
2. **Entferne alte "grafana-test" Verbindung** (falls vorhanden)
3. **Klicke auf "Importieren aus Datei"**
4. **W?hle die neue `grafana-test.conf`**
5. **Pr?fe die Config:**
- ? Address: `10.8.0.7/24`
- ? DNS: `10.8.0.1`
- ? AllowedIPs: `10.8.0.0/24`
- ? Endpoint: `94.16.110.151:51820`
### 3. VPN verbinden
1. **W?hle "grafana-test"** in WireGuard
2. **Klicke auf "Verbinden"**
3. **Warte 5 Sekunden**
### 4. Teste VPN-Verbindung
```powershell
# Pr?fe Route
route print | findstr "10.8"
# Teste Ping
ping 10.8.0.1
# Teste DNS (falls CoreDNS l?uft)
nslookup grafana.michaelschiemer.de
```
### 5. Teste Grafana-Zugriff
1. **DNS-Cache leeren**: `ipconfig /flushdns`
2. **Browser ?ffnen** (oder Inkognito-Modus)
3. **?ffne**: `https://grafana.michaelschiemer.de`
4. **Warte 5 Sekunden**
### 6. Logs pr?fen
Ich pr?fe dann die Traefik-Logs:
- ? Wenn `ClientHost: 10.8.0.7` ? Traffic kommt ?ber VPN!
- ? Wenn `ClientHost: 89.246.96.244` ? Traffic kommt NICHT ?ber VPN
## Wichtige Hinweise
### Alte Config gesichert
Die alte Config wurde gesichert als:
```
/etc/wireguard/clients/grafana-test.conf.backup-{timestamp}
```
Falls du zur?ckrollen musst, kannst du die alte Config wiederherstellen.
### VPN-Server funktioniert ?
Der Test-Container hat gezeigt:
- ? VPN-Server funktioniert korrekt
- ? Container kann sich verbinden (`10.8.0.7`)
- ? Ping funktioniert
- ? WireGuard-Verbindung ist aktiv
Das bedeutet: **Das Problem liegt bei Windows**, nicht beim VPN-Server!
### Falls es immer noch nicht funktioniert
1. **Pr?fe Windows Firewall** (k?nnte VPN-Traffic blockieren)
2. **Pr?fe Windows Route-Tabelle** (`route print | findstr "10.8"`)
3. **Pr?fe WireGuard auf Windows** (Transfer sollte > 0 sein, wenn verbunden)
4. **Eventuell WireGuard auf Windows neu installieren**
## Test-Container entfernen
Falls du den Test-Container noch nicht entfernt hast:
```bash
# Auf dem Server
docker stop wireguard-test-client
docker rm wireguard-test-client
```

View File

@@ -0,0 +1,176 @@
# WireGuard Client neu erstellen und testen
## Problem
Trotz korrekter Config (`AllowedIPs = 10.8.0.0/24`) kommt Traffic von Windows NICHT ?ber VPN. Die Route ist vorhanden, Ping funktioniert, aber HTTP/HTTPS-Traffic verwendet die ?ffentliche IP.
## Strategie
1. **Neue WireGuard-Client-Config generieren** (frische Keys, gleiche IP)
2. **Test-Container erstellen** um zu pr?fen, ob VPN grunds?tzlich funktioniert
3. **Windows-Client mit neuer Config testen**
## Schritt 1: WireGuard-Client neu generieren
### Alte Config sichern
Die alte Config wird automatisch gesichert als `.backup-{timestamp}`.
### Neue Config generieren
```bash
cd deployment/ansible
# Grafana-Test Client neu generieren (gleiche IP: 10.8.0.7)
ansible-playbook -i inventory/production.yml playbooks/regenerate-wireguard-client.yml \
-e "client_name=grafana-test" \
-e "client_ip=10.8.0.7"
```
**Was passiert:**
- Alte Config wird gesichert
- Alte Client-Keys werden aus Server-Config entfernt
- Neue Client-Keys werden generiert
- Neuer Client wird zu Server-Config hinzugef?gt
- WireGuard-Service wird neu gestartet
- Neue Config-Datei wird lokal gespeichert: `deployment/ansible/wireguard-clients/grafana-test.conf`
### Neue Config auf Windows verwenden
1. **Lade neue Config herunter** von:
```
deployment/ansible/wireguard-clients/grafana-test.conf
```
2. **Importiere in WireGuard:**
- ?ffne WireGuard
- Entferne alte "grafana-test" Verbindung
- Klicke auf "Importieren aus Datei"
- W?hle die neue `grafana-test.conf`
3. **Verbinde mit VPN**
4. **Teste:**
```powershell
ping 10.8.0.1
```
5. **Teste Grafana:**
- ?ffne `https://grafana.michaelschiemer.de`
- Warte 5 Sekunden
## Schritt 2: Test mit Docker-Container
Um zu pr?fen, ob VPN grunds?tzlich funktioniert (unabh?ngig von Windows):
```bash
cd deployment/ansible
# Teste WireGuard-Verbindung aus Docker-Container
ansible-playbook -i inventory/production.yml playbooks/test-wireguard-docker-container.yml \
-e "client_name=grafana-test"
```
**Was passiert:**
- Docker-Container mit WireGuard wird gestartet
- Client-Config wird in Container geladen
- Container verbindet sich mit VPN
- Container testet:
- Ping zu `10.8.0.1`
- Curl zu `https://grafana.michaelschiemer.de`
- DNS-Aufl?sung
- Traefik-Logs werden gepr?ft, ob Container-IP sichtbar ist
**Erwartetes Ergebnis:**
- ? Container kann `10.8.0.1` pingen
- ? Container kann Grafana erreichen (Status: 200 oder 403, aber Verbindung funktioniert)
- ? Traefik sieht Container-VPN-IP (`10.8.0.x`)
**Falls Test-Container funktioniert:**
? VPN-Server funktioniert korrekt
? Problem liegt an Windows-Client oder Windows-Routing
**Falls Test-Container nicht funktioniert:**
? VPN-Server-Konfiguration k?nnte Problem haben
? Weiter debuggen
## Schritt 3: Container nach Test entfernen
```bash
# Auf dem Server
docker stop wireguard-test-client
docker rm wireguard-test-client
```
## N?chste Schritte
### Wenn Container-Test erfolgreich ist:
1. **Windows-Client mit neuer Config testen**
- Importiere neue Config
- Verbinde mit VPN
- Teste Grafana-Zugriff
2. **Traefik-Logs pr?fen:**
- Wenn `ClientHost: 10.8.0.7` ? ? Traffic kommt ?ber VPN!
- Wenn `ClientHost: 89.246.96.244` ? ? Problem liegt an Windows
3. **Wenn Windows immer noch nicht funktioniert:**
- Windows Firewall pr?fen
- Windows Route-Tabelle erneut pr?fen
- WireGuard auf Windows neu installieren
- Eventuell anderen Windows-Client verwenden
### Wenn Container-Test fehlschl?gt:
1. **WireGuard-Server-Config pr?fen:**
```bash
sudo cat /etc/wireguard/wg0.conf
```
2. **WireGuard-Service-Logs pr?fen:**
```bash
sudo journalctl -u wg-quick@wg0 -f
```
3. **Firewall pr?fen:**
```bash
sudo ufw status | grep 51820
```
## Troubleshooting
### Neue Config generiert, aber Windows-Client funktioniert nicht
1. **Pr?fe neue Config:**
```powershell
# ?ffne neue Config-Datei
type grafana-test.conf
# Pr?fe: AllowedIPs = 10.8.0.0/24
```
2. **Pr?fe Windows Route:**
```powershell
route print | findstr "10.8"
```
3. **Pr?fe WireGuard-Status:**
- ?ffne WireGuard
- W?hle "grafana-test"
- Pr?fe Transfer (sollte > 0 sein, wenn VPN verbunden ist)
### Container-Test schl?gt fehl
1. **Container-Logs pr?fen:**
```bash
docker logs wireguard-test-client
```
2. **Container startet nicht:**
- Pr?fe ob WireGuard-Config korrekt ist
- Pr?fe ob Container-Rechte korrekt sind (`--cap-add=NET_ADMIN`)
3. **Container verbindet nicht:**
- Pr?fe Server Firewall
- Pr?fe WireGuard-Server-Config
- Pr?fe ob Client in Server-Config enthalten ist

View File

@@ -0,0 +1,48 @@
# WireGuard Windows Config - Beispiel
## Aktuelle Config (OHNE DNS)
```ini
[Interface]
PrivateKey = sE81MBr64fP8YBDlhRWngwHHmlrVzIhs9NT7Dh7XbVs=
Address = 10.8.0.7/24
DNS = 10.8.0.1 # ← DIESE ZEILE FEHLT WARSCHHEINLICH!
[Peer]
PublicKey = hT3OCWZ6ElX79YdAdexSsZnbWLzRM/5zk+XNEBUaS8=
AllowedIPs = 10.8.0.0/24
Endpoint = 94.16.110.151:51820
PersistentKeepalive = 25
```
## Korrekte Config (MIT DNS)
```ini
[Interface]
PrivateKey = sE81MBr64fP8YBDlhRWngwHHmlrVzIhs9NT7Dh7XbVs=
Address = 10.8.0.7/24
DNS = 10.8.0.1 # ← DIESE ZEILE MUSS DA SEIN!
[Peer]
PublicKey = hT3OCWZ6ElX79YdAdexSsZnbWLzRM/5zk+XNEBUaS8=
AllowedIPs = 10.8.0.0/24
Endpoint = 94.16.110.151:51820
PersistentKeepalive = 25
```
## Was zu tun ist
1. **Öffne deine WireGuard-Config-Datei**
2. **Füge unter `[Interface]` hinzu:** `DNS = 10.8.0.1`
3. **Speichere** die Datei
4. **Starte WireGuard neu** (trenne und verbinde VPN neu)
## Schnell-Check
Falls du nicht sicher bist, ob DNS bereits gesetzt ist:
1. Öffne WireGuard GUI
2. Rechtsklick auf deine Verbindung → "Edit"
3. Prüfe ob `DNS = 10.8.0.1` unter `[Interface]` steht
4. Falls nicht → hinzufügen
5. Speichern und neu verbinden

View File

@@ -0,0 +1,141 @@
# WireGuard Windows - DNS auf VPN-DNS setzen
## Problem
Traffic l?uft nicht ?ber VPN, weil DNS die ?ffentliche IP verwendet statt der VPN-IP.
## L?sung: DNS in WireGuard-Config setzen
### Schritt 1: WireGuard Config-Datei finden
**Methode 1: Via WireGuard GUI**
1. ?ffne **WireGuard** (Windows-Startmen?)
2. Rechtsklick auf deine **VPN-Verbindung**
3. Klicke auf **"Edit"** oder **"Bearbeiten"**
**Methode 2: Via Datei-Explorer**
1. ?ffne Datei-Explorer
2. Gehe zu: `C:\Users\<dein-benutzername>\AppData\Local\Packages\Microsoft.WindowsTerminal_8wekyb3d8bbwe\LocalState\settings.json`
3. Oder direkt: Dr?cke `Win+R`, tippe: `%LOCALAPPDATA%\WireGuard` und Enter
4. Suche nach deiner Config-Datei (meistens `.conf` Datei)
**Methode 3: Via Registry/Config-Pfad**
- Die Config-Dateien sind normalerweise in: `C:\Users\<benutzername>\Documents\WireGuard` oder ?hnlich
- Oder siehe in WireGuard GUI: Rechtsklick auf Verbindung ? "Open configuration file location"
### Schritt 2: Config-Datei bearbeiten
1. **Schlie?e die WireGuard-Verbindung** (falls aktiv)
2. **?ffne die Config-Datei** im Editor (Notepad, Notepad++, oder dein bevorzugter Editor)
3. **Suche nach `[Interface]`** Abschnitt
4. **F?ge hinzu oder ?ndere:**
```
[Interface]
PrivateKey = sE81MBr64fP8YBDlhRWngwHHmlrVzIhs9NT7Dh7XbVs=
Address = 10.8.0.7/24
DNS = 10.8.0.1 # ? DIESE ZEILE HINZUF?GEN ODER ?NDERN!
```
### Schritt 3: Config-Datei speichern
1. **Speichere** die Config-Datei (Strg+S)
2. **Schlie?e** den Editor
### Schritt 4: WireGuard neu starten
**Methode 1: Via WireGuard GUI**
1. ?ffne **WireGuard**
2. Rechtsklick auf deine **VPN-Verbindung**
3. Klicke auf **"Disconnect"** (falls verbunden)
4. Klicke auf **"Connect"** (neu verbinden)
**Methode 2: Via System**
1. ?ffne **Dienste** (Win+R ? `services.msc`)
2. Suche nach **"WireGuard Tunnel Service"**
3. Rechtsklick ? **"Neu starten"**
### Schritt 5: DNS-Test (PowerShell als Administrator)
1. ?ffne **PowerShell als Administrator**
2. F?hre aus:
```powershell
# Pr?fe aktive DNS-Server
Get-DnsClientServerAddress | Select-Object InterfaceAlias, ServerAddresses
# Sollte 10.8.0.1 zeigen f?r WireGuard Interface
```
3. Teste DNS-Aufl?sung:
```powershell
# Teste DNS-Aufl?sung
Resolve-DnsName grafana.michaelschiemer.de | Select-Object Name, IPAddress
# Sollte zur?ckgeben: 10.8.0.1 (nicht 94.16.110.151!)
```
### Schritt 6: Browser testen
1. **Browser-Cache leeren** (oder Inkognito-Modus verwenden)
2. ?ffne: `https://grafana.michaelschiemer.de`
3. Sollte funktionieren, wenn DNS auf `10.8.0.1` zeigt
## Alternative: Hosts-Datei verwenden (TEMPOR?R)
Falls DNS ?ber WireGuard nicht automatisch funktioniert:
1. ?ffne **Notepad als Administrator**
2. ?ffne: `C:\Windows\System32\drivers\etc\hosts`
3. F?ge hinzu:
```
10.8.0.1 grafana.michaelschiemer.de
```
4. **Speichere** die Datei
5. **Teste** Browser: `https://grafana.michaelschiemer.de`
**Hinweis:** Das ist nur eine tempor?re L?sung. DNS sollte langfristig ?ber WireGuard funktionieren.
## Pr?fen ob es funktioniert
Nach dem Fix k?nnen wir pr?fen, ob Traffic ?ber VPN kommt:
Ich kann f?r dich auf dem Server pr?fen:
```bash
# Auf dem Server
tail -5 logs/access.log | grep grafana | grep -oP '"ClientHost":"[^"]*"'
```
**Erwartet:**
- **Mit VPN**: `"ClientHost":"10.8.0.7"` (VPN-IP) ?
- **Ohne VPN**: Keine Logs oder 403-Fehler ?
## Troubleshooting
### Problem: DNS wird nicht gesetzt
**L?sung 1:** Stelle sicher, dass `DNS = 10.8.0.1` in der Config-Datei steht
**L?sung 2:** Verwende Hosts-Datei als tempor?re L?sung
**L?sung 3:** Pr?fe ob WireGuard als Administrator l?uft
### Problem: Config-Datei kann nicht gespeichert werden
**L?sung:**
1. Schlie?e WireGuard komplett
2. Bearbeite die Config-Datei
3. Speichere die Datei
4. Starte WireGuard neu
### Problem: DNS wird gesetzt, aber Browser cached alte IP
**L?sung:**
1. Browser-Cache leeren (Strg+Shift+Del)
2. Oder Inkognito-Modus verwenden
3. Oder Browser neu starten
## Hilfe
Falls du bei einem Schritt Hilfe brauchst:
1. Teile mir mit, wo du stecken bleibst
2. Oder teile mir die Config-Datei mit (ohne PrivateKey!)
3. Oder teile mir die PowerShell-Ergebnisse mit
Dann kann ich dir gezielt helfen!

View File

@@ -0,0 +1,108 @@
# WireGuard Windows - DNS-Priorit?t fixen
## Problem
WireGuard Interface (`grafana-test`) hat DNS `10.8.0.1` korrekt gesetzt, aber Windows verwendet trotzdem ?ffentliche DNS-Server.
**Aktueller Status:**
- ? WireGuard Interface: DNS = 10.8.0.1
- ? Windows verwendet trotzdem: 94.16.110.151 (?ffentliche IP)
**Ursache:** Windows priorisiert DNS-Server nach Interface-Metriken. Das Ethernet-Interface hat h?here Priorit?t als WireGuard.
## L?sung: DNS-Reihenfolge pr?fen und anpassen
### Schritt 1: Pr?fe welche DNS-Server Windows tats?chlich verwendet
```powershell
# Pr?fe DNS-Reihenfolge
Get-DnsClientServerAddress | Sort-Object InterfaceMetric | Select-Object InterfaceAlias, ServerAddresses, InterfaceMetric
# Pr?fe aktive DNS-Server f?r alle Interfaces
Get-DnsClientServerAddress -InterfaceIndex (Get-NetAdapter | Where-Object {$_.Status -eq 'Up'}).ifIndex | Format-Table InterfaceAlias, ServerAddresses
```
### Schritt 2: Pr?fe Interface-Metriken
```powershell
# Pr?fe Interface-Metriken (niedrigere Metrik = h?here Priorit?t)
Get-NetIPInterface | Sort-Object InterfaceMetric | Select-Object InterfaceAlias, InterfaceMetric, ConnectionState
# WireGuard Interface sollte niedrigste Metrik haben
```
### Schritt 3: WireGuard Interface Metrik anpassen (EMPFOHLEN)
Setze die WireGuard Interface-Metrik auf niedrigsten Wert (h?chste Priorit?t):
```powershell
# Als Administrator ausf?hren!
# 1. Finde Interface-Index von WireGuard
$wgInterface = Get-NetAdapter | Where-Object {$_.Name -like "*grafana-test*" -or $_.Name -like "*WireGuard*"}
$wgInterfaceIndex = $wgInterface.ifIndex
# 2. Setze niedrigste Metrik (h?chste Priorit?t)
Set-NetIPInterface -InterfaceIndex $wgInterfaceIndex -InterfaceMetric 1
# 3. Pr?fe ob es funktioniert hat
Get-NetIPInterface -InterfaceIndex $wgInterfaceIndex | Select-Object InterfaceAlias, InterfaceMetric
```
### Schritt 4: DNS-Reihenfolge testen
Nach dem Anpassen der Metrik:
```powershell
# Teste DNS-Aufl?sung
Resolve-DnsName grafana.michaelschiemer.de | Select-Object Name, IPAddress
# Sollte jetzt zur?ckgeben: 10.8.0.1 (nicht 94.16.110.151!)
```
### Schritt 5: WireGuard neu verbinden
1. **Disconnect** WireGuard-Verbindung
2. **Connect** WireGuard-Verbindung neu
3. **Teste DNS** erneut
## Alternative: Hosts-Datei verwenden (TEMPOR?R & EINFACH)
Falls die Metrik-Anpassung nicht funktioniert oder zu komplex ist:
1. **?ffne Notepad als Administrator**
2. ?ffne: `C:\Windows\System32\drivers\etc\hosts`
3. F?ge hinzu:
```
10.8.0.1 grafana.michaelschiemer.de
```
4. **Speichere** die Datei
5. **Teste**: `https://grafana.michaelschiemer.de`
**Vorteil:** Funktioniert sofort, keine Interface-Metrik-Anpassung n?tig
**Nachteil:** Nur tempor?re L?sung, muss f?r jede Domain manuell hinzugef?gt werden
## Pr?fen ob es funktioniert
Nach dem Fix:
```powershell
# DNS-Test
Resolve-DnsName grafana.michaelschiemer.de | Select-Object Name, IPAddress
# Sollte zur?ckgeben: 10.8.0.1 ?
```
Dann kann ich auf dem Server pr?fen, ob Traffic ?ber VPN kommt:
```bash
# Auf dem Server (ich pr?fe das f?r dich)
tail -5 logs/access.log | grep grafana | grep -oP '"ClientHost":"[^"]*"'
# Sollte zeigen: "ClientHost":"10.8.0.7" (VPN-IP) ?
```
## Hilfe
Falls du bei einem Schritt Hilfe brauchst:
1. Teile mir die PowerShell-Ergebnisse mit
2. Oder teile mir mit, wo du stecken bleibst
3. Dann kann ich dir gezielt helfen!

View File

@@ -0,0 +1,186 @@
# WireGuard Windows Firewall - Pr?fung und Fix
## Problem
Traffic kommt NICHT ?ber VPN, obwohl WireGuard verbunden ist. Windows Firewall k?nnte VPN-Traffic blockieren.
## Schritt 1: Aktuelle Firewall-Regeln pr?fen
**Als Administrator in PowerShell:**
```powershell
# Pr?fe ob WireGuard-Regeln vorhanden sind
Get-NetFirewallRule | Where-Object {$_.DisplayName -like "*WireGuard*" -or $_.DisplayName -like "*VPN*"} | Select-Object DisplayName, Enabled, Direction, Action
# Pr?fe alle ausgehenden Regeln
Get-NetFirewallRule -Direction Outbound | Where-Object {$_.Enabled -eq $true} | Select-Object DisplayName, Direction, Action | Format-Table -AutoSize
# Pr?fe Firewall-Status
Get-NetFirewallProfile | Select-Object Name, Enabled
```
## Schritt 2: Pr?fe ob WireGuard-Programm-Regeln vorhanden sind
```powershell
# Suche nach WireGuard-Programm-Regeln
Get-NetFirewallApplicationFilter | Where-Object {$_.Program -like "*WireGuard*"} | Select-Object Program
# Oder pr?fe alle Programm-Regeln
Get-NetFirewallRule | Where-Object {$_.Program -like "*WireGuard*"} | Select-Object DisplayName, Enabled, Direction, Action, Program
```
## Schritt 3: Erstelle Firewall-Regeln f?r WireGuard
**Falls keine Regeln vorhanden sind:**
```powershell
# Als Administrator
# Erlaube WireGuard-Programm (TCP und UDP)
$wgPath = "C:\Program Files\WireGuard\wireguard.exe"
if (Test-Path $wgPath) {
New-NetFirewallRule -DisplayName "WireGuard VPN - Allow TCP" -Direction Outbound -Program $wgPath -Protocol TCP -Action Allow -Enabled True
New-NetFirewallRule -DisplayName "WireGuard VPN - Allow UDP" -Direction Outbound -Program $wgPath -Protocol UDP -Action Allow -Enabled True
New-NetFirewallRule -DisplayName "WireGuard VPN - Allow Inbound TCP" -Direction Inbound -Program $wgPath -Protocol TCP -Action Allow -Enabled True
New-NetFirewallRule -DisplayName "WireGuard VPN - Allow Inbound UDP" -Direction Inbound -Program $wgPath -Protocol UDP -Action Allow -Enabled True
Write-Host "WireGuard Firewall-Regeln erstellt"
} else {
Write-Host "WireGuard-Programm nicht gefunden in: $wgPath"
Write-Host "Bitte pr?fe den Pfad und passe ihn an"
}
# Alternative: Erlaube WireGuard-Interface (falls bekannt)
# Get-NetAdapter | Where-Object {$_.Name -like "*WireGuard*" -or $_.Name -like "*grafana-test*"} | ForEach-Object {
# $ifIndex = $_.InterfaceIndex
# New-NetFirewallRule -DisplayName "WireGuard Interface $($_.Name) - Allow Outbound" -Direction Outbound -InterfaceIndex $ifIndex -Action Allow -Enabled True
# New-NetFirewallRule -DisplayName "WireGuard Interface $($_.Name) - Allow Inbound" -Direction Inbound -InterfaceIndex $ifIndex -Action Allow -Enabled True
# }
```
## Schritt 4: Pr?fe Interface-basierte Regeln
```powershell
# Finde WireGuard Interface
$wgInterface = Get-NetAdapter | Where-Object {$_.Name -like "*grafana-test*" -or $_.Name -like "*WireGuard*"}
if ($wgInterface) {
Write-Host "WireGuard Interface gefunden: $($wgInterface.Name), Index: $($wgInterface.InterfaceIndex)"
# Pr?fe Interface-basierte Firewall-Regeln
Get-NetFirewallRule | Where-Object {$_.InterfaceIndex -eq $wgInterface.InterfaceIndex} | Select-Object DisplayName, Enabled, Direction, Action
}
```
## Schritt 5: Erlaube Traffic f?r VPN-Netzwerk
```powershell
# Als Administrator
# Erlaube ausgehenden Traffic zu VPN-Netzwerk (10.8.0.0/24)
New-NetFirewallRule -DisplayName "WireGuard VPN Network - Allow Outbound" `
-Direction Outbound `
-RemoteAddress "10.8.0.0/24" `
-Protocol TCP `
-Action Allow `
-Enabled True
New-NetFirewallRule -DisplayName "WireGuard VPN Network - Allow Outbound UDP" `
-Direction Outbound `
-RemoteAddress "10.8.0.0/24" `
-Protocol UDP `
-Action Allow `
-Enabled True
New-NetFirewallRule -DisplayName "WireGuard VPN Network - Allow Inbound" `
-Direction Inbound `
-RemoteAddress "10.8.0.0/24" `
-Protocol TCP `
-Action Allow `
-Enabled True
New-NetFirewallRule -DisplayName "WireGuard VPN Network - Allow Inbound UDP" `
-Direction Inbound `
-RemoteAddress "10.8.0.0/24" `
-Protocol UDP `
-Action Allow `
-Enabled True
Write-Host "VPN-Netzwerk Firewall-Regeln erstellt"
```
## Schritt 6: Teste nach Firewall-?nderungen
```powershell
# Pr?fe Route
route print | findstr "10.8"
# Teste Ping
ping 10.8.0.1
# Teste Grafana (im Browser)
# https://grafana.michaelschiemer.de
```
## Schritt 7: Pr?fe Logs
Nach den ?nderungen:
1. **WireGuard neu verbinden** (Disconnect ? Connect)
2. **Teste Grafana**: `https://grafana.michaelschiemer.de`
3. **Warte 5 Sekunden**
4. Dann pr?fe ich die Traefik-Logs, ob `ClientHost: 10.8.0.7` erscheint
## Troubleshooting
### Firewall-Regeln werden nicht angewendet
```powershell
# Pr?fe ob Firewall aktiv ist
Get-NetFirewallProfile | Select-Object Name, Enabled
# Falls Firewall deaktiviert ist, aktiviere sie (falls gew?nscht)
# Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True
```
### WireGuard-Programm-Pfad ist anders
```powershell
# Finde WireGuard-Installationspfad
Get-ChildItem "C:\Program Files" -Recurse -Filter "wireguard.exe" -ErrorAction SilentlyContinue
Get-ChildItem "C:\Program Files (x86)" -Recurse -Filter "wireguard.exe" -ErrorAction SilentlyContinue
# Oder suche in allen Programmen
Get-ChildItem "C:\" -Recurse -Filter "wireguard.exe" -ErrorAction SilentlyContinue | Select-Object FullName
```
### Tempor?re Firewall-Regeln zum Testen
Falls du schnell testen m?chtest, ohne spezifische Regeln:
```powershell
# Als Administrator - ERLAUBE ALLEN AUSGEHENDEN TRAFFIC TEMPOR?R (NUR ZUM TESTEN!)
# WARNUNG: Diese Regel erlaubt ALLEN ausgehenden Traffic - nur zum Testen verwenden!
New-NetFirewallRule -DisplayName "TEST - Allow All Outbound (TEMPORARY)" `
-Direction Outbound `
-Action Allow `
-Enabled True
# Teste dann Grafana
# Falls es funktioniert: L?sche diese Regel und erstelle spezifische Regeln
# Remove-NetFirewallRule -DisplayName "TEST - Allow All Outbound (TEMPORARY)"
```
## N?chste Schritte
Nach dem Erstellen der Firewall-Regeln:
1. ? Firewall-Regeln erstellt
2. ? WireGuard neu verbinden
3. ? Teste Grafana-Zugriff
4. ? Pr?fe Traefik-Logs (ich pr?fe dann, ob `ClientHost: 10.8.0.7` erscheint)
## Wichtige Hinweise
- **Firewall-Regeln sollten spezifisch sein** (nicht "Allow All")
- **Programm-Regeln sind sicherer** als allgemeine Regeln
- **Interface-Regeln k?nnen helfen**, wenn Programm-Regeln nicht funktionieren
- **VPN-Netzwerk-Regeln** sind am spezifischsten

View File

@@ -0,0 +1,139 @@
# WireGuard Windows Firewall - Pr?fung und Fix Script
# Als Administrator ausf?hren!
Write-Host "=== WireGuard Windows Firewall - Pr?fung ===" -ForegroundColor Cyan
Write-Host ""
# Pr?fe ob als Administrator ausgef?hrt
$isAdmin = ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
if (-not $isAdmin) {
Write-Host "FEHLER: Script muss als Administrator ausgef?hrt werden!" -ForegroundColor Red
Write-Host "Rechtsklick auf PowerShell -> 'Als Administrator ausf?hren'" -ForegroundColor Yellow
exit 1
}
Write-Host "1. Pr?fe Firewall-Status..." -ForegroundColor Green
Get-NetFirewallProfile | Select-Object Name, Enabled | Format-Table -AutoSize
Write-Host ""
Write-Host "2. Pr?fe vorhandene WireGuard Firewall-Regeln..." -ForegroundColor Green
$existingRules = Get-NetFirewallRule | Where-Object {$_.DisplayName -like "*WireGuard*" -or $_.DisplayName -like "*VPN*"}
if ($existingRules) {
$existingRules | Select-Object DisplayName, Enabled, Direction, Action | Format-Table -AutoSize
} else {
Write-Host "Keine WireGuard Firewall-Regeln gefunden" -ForegroundColor Yellow
}
Write-Host ""
Write-Host "3. Suche WireGuard-Installationspfad..." -ForegroundColor Green
$wgPath = "C:\Program Files\WireGuard\wireguard.exe"
if (-not (Test-Path $wgPath)) {
$wgPath = "C:\Program Files (x86)\WireGuard\wireguard.exe"
}
if (-not (Test-Path $wgPath)) {
Write-Host "WireGuard-Programm nicht gefunden in Standardpfaden" -ForegroundColor Yellow
Write-Host "Suche in anderen Pfaden..." -ForegroundColor Yellow
$found = Get-ChildItem "C:\Program Files" -Recurse -Filter "wireguard.exe" -ErrorAction SilentlyContinue | Select-Object -First 1
if ($found) {
$wgPath = $found.FullName
Write-Host "Gefunden: $wgPath" -ForegroundColor Green
} else {
Write-Host "WireGuard-Programm nicht gefunden. Bitte Pfad manuell angeben." -ForegroundColor Red
$wgPath = Read-Host "WireGuard-Programm-Pfad (oder Enter zum ?berspringen)"
}
} else {
Write-Host "Gefunden: $wgPath" -ForegroundColor Green
}
Write-Host ""
Write-Host "4. Finde WireGuard Interface..." -ForegroundColor Green
$wgInterface = Get-NetAdapter | Where-Object {$_.Name -like "*grafana-test*" -or $_.Name -like "*WireGuard*"}
if ($wgInterface) {
Write-Host "Gefunden: $($wgInterface.Name), Index: $($wgInterface.InterfaceIndex)" -ForegroundColor Green
Get-NetFirewallRule | Where-Object {$_.InterfaceIndex -eq $wgInterface.InterfaceIndex} | Select-Object DisplayName, Enabled, Direction, Action | Format-Table -AutoSize
} else {
Write-Host "Kein WireGuard Interface gefunden" -ForegroundColor Yellow
}
Write-Host ""
Write-Host "=== M?chtest du Firewall-Regeln erstellen? ===" -ForegroundColor Cyan
Write-Host "1. Programm-Regeln (wenn WireGuard-Pfad gefunden)"
Write-Host "2. Interface-Regeln (wenn WireGuard Interface gefunden)"
Write-Host "3. VPN-Netzwerk-Regeln (10.8.0.0/24)"
Write-Host "4. Alle oben genannten"
Write-Host "5. ?berspringen (nur pr?fen)"
Write-Host ""
$choice = Read-Host "W?hle Option (1-5)"
switch ($choice) {
"1" {
if ($wgPath -and (Test-Path $wgPath)) {
Write-Host "Erstelle Programm-Regeln..." -ForegroundColor Green
New-NetFirewallRule -DisplayName "WireGuard VPN - Allow TCP" -Direction Outbound -Program $wgPath -Protocol TCP -Action Allow -Enabled True -ErrorAction SilentlyContinue
New-NetFirewallRule -DisplayName "WireGuard VPN - Allow UDP" -Direction Outbound -Program $wgPath -Protocol UDP -Action Allow -Enabled True -ErrorAction SilentlyContinue
New-NetFirewallRule -DisplayName "WireGuard VPN - Allow Inbound TCP" -Direction Inbound -Program $wgPath -Protocol TCP -Action Allow -Enabled True -ErrorAction SilentlyContinue
New-NetFirewallRule -DisplayName "WireGuard VPN - Allow Inbound UDP" -Direction Inbound -Program $wgPath -Protocol UDP -Action Allow -Enabled True -ErrorAction SilentlyContinue
Write-Host "Programm-Regeln erstellt" -ForegroundColor Green
} else {
Write-Host "Kann Programm-Regeln nicht erstellen: WireGuard-Pfad nicht gefunden" -ForegroundColor Red
}
}
"2" {
if ($wgInterface) {
Write-Host "Erstelle Interface-Regeln..." -ForegroundColor Green
$ifIndex = $wgInterface.InterfaceIndex
New-NetFirewallRule -DisplayName "WireGuard Interface $($wgInterface.Name) - Allow Outbound" -Direction Outbound -InterfaceIndex $ifIndex -Action Allow -Enabled True -ErrorAction SilentlyContinue
New-NetFirewallRule -DisplayName "WireGuard Interface $($wgInterface.Name) - Allow Inbound" -Direction Inbound -InterfaceIndex $ifIndex -Action Allow -Enabled True -ErrorAction SilentlyContinue
Write-Host "Interface-Regeln erstellt" -ForegroundColor Green
} else {
Write-Host "Kann Interface-Regeln nicht erstellen: WireGuard Interface nicht gefunden" -ForegroundColor Red
}
}
"3" {
Write-Host "Erstelle VPN-Netzwerk-Regeln..." -ForegroundColor Green
New-NetFirewallRule -DisplayName "WireGuard VPN Network - Allow Outbound TCP" -Direction Outbound -RemoteAddress "10.8.0.0/24" -Protocol TCP -Action Allow -Enabled True -ErrorAction SilentlyContinue
New-NetFirewallRule -DisplayName "WireGuard VPN Network - Allow Outbound UDP" -Direction Outbound -RemoteAddress "10.8.0.0/24" -Protocol UDP -Action Allow -Enabled True -ErrorAction SilentlyContinue
New-NetFirewallRule -DisplayName "WireGuard VPN Network - Allow Inbound TCP" -Direction Inbound -RemoteAddress "10.8.0.0/24" -Protocol TCP -Action Allow -Enabled True -ErrorAction SilentlyContinue
New-NetFirewallRule -DisplayName "WireGuard VPN Network - Allow Inbound UDP" -Direction Inbound -RemoteAddress "10.8.0.0/24" -Protocol UDP -Action Allow -Enabled True -ErrorAction SilentlyContinue
Write-Host "VPN-Netzwerk-Regeln erstellt" -ForegroundColor Green
}
"4" {
Write-Host "Erstelle alle Regeln..." -ForegroundColor Green
if ($wgPath -and (Test-Path $wgPath)) {
New-NetFirewallRule -DisplayName "WireGuard VPN - Allow TCP" -Direction Outbound -Program $wgPath -Protocol TCP -Action Allow -Enabled True -ErrorAction SilentlyContinue
New-NetFirewallRule -DisplayName "WireGuard VPN - Allow UDP" -Direction Outbound -Program $wgPath -Protocol UDP -Action Allow -Enabled True -ErrorAction SilentlyContinue
New-NetFirewallRule -DisplayName "WireGuard VPN - Allow Inbound TCP" -Direction Inbound -Program $wgPath -Protocol TCP -Action Allow -Enabled True -ErrorAction SilentlyContinue
New-NetFirewallRule -DisplayName "WireGuard VPN - Allow Inbound UDP" -Direction Inbound -Program $wgPath -Protocol UDP -Action Allow -Enabled True -ErrorAction SilentlyContinue
Write-Host "Programm-Regeln erstellt" -ForegroundColor Green
}
if ($wgInterface) {
$ifIndex = $wgInterface.InterfaceIndex
New-NetFirewallRule -DisplayName "WireGuard Interface $($wgInterface.Name) - Allow Outbound" -Direction Outbound -InterfaceIndex $ifIndex -Action Allow -Enabled True -ErrorAction SilentlyContinue
New-NetFirewallRule -DisplayName "WireGuard Interface $($wgInterface.Name) - Allow Inbound" -Direction Inbound -InterfaceIndex $ifIndex -Action Allow -Enabled True -ErrorAction SilentlyContinue
Write-Host "Interface-Regeln erstellt" -ForegroundColor Green
}
New-NetFirewallRule -DisplayName "WireGuard VPN Network - Allow Outbound TCP" -Direction Outbound -RemoteAddress "10.8.0.0/24" -Protocol TCP -Action Allow -Enabled True -ErrorAction SilentlyContinue
New-NetFirewallRule -DisplayName "WireGuard VPN Network - Allow Outbound UDP" -Direction Outbound -RemoteAddress "10.8.0.0/24" -Protocol UDP -Action Allow -Enabled True -ErrorAction SilentlyContinue
New-NetFirewallRule -DisplayName "WireGuard VPN Network - Allow Inbound TCP" -Direction Inbound -RemoteAddress "10.8.0.0/24" -Protocol TCP -Action Allow -Enabled True -ErrorAction SilentlyContinue
New-NetFirewallRule -DisplayName "WireGuard VPN Network - Allow Inbound UDP" -Direction Inbound -RemoteAddress "10.8.0.0/24" -Protocol UDP -Action Allow -Enabled True -ErrorAction SilentlyContinue
Write-Host "VPN-Netzwerk-Regeln erstellt" -ForegroundColor Green
}
"5" {
Write-Host "?berspringe Regel-Erstellung" -ForegroundColor Yellow
}
default {
Write-Host "Ung?ltige Option" -ForegroundColor Red
}
}
Write-Host ""
Write-Host "=== Zusammenfassung ===" -ForegroundColor Cyan
Write-Host "Firewall-Regeln:"
Get-NetFirewallRule | Where-Object {$_.DisplayName -like "*WireGuard*" -or $_.DisplayName -like "*VPN*"} | Select-Object DisplayName, Enabled, Direction, Action | Format-Table -AutoSize
Write-Host ""
Write-Host "=== N?chste Schritte ===" -ForegroundColor Cyan
Write-Host "1. WireGuard neu verbinden (Disconnect ? Connect)"
Write-Host "2. Teste: ping 10.8.0.1"
Write-Host "3. Teste: https://grafana.michaelschiemer.de im Browser"
Write-Host "4. Sag mir Bescheid, dann pr?fe ich die Traefik-Logs!"

View File

@@ -0,0 +1,63 @@
# WireGuard Windows - Interface-Metrik optimieren
## Status
? **L?sung 1 (Hosts-Datei) funktioniert bereits!**
Die Interface-Metrik zeigt:
- WireGuard Interface (`grafana-test`): Metrik 5 (bereits niedrigste)
- Andere Interfaces: Metrik 25 oder h?her
## Optional: Metrik noch weiter optimieren
Falls du L?sung 2 (Interface-Metrik) noch weiter optimieren m?chtest:
### Schritt 1: Setze WireGuard Interface-Metrik auf 1
```powershell
# Als Administrator ausf?hren!
# Setze Metrik auf 1 (h?chste Priorit?t)
Set-NetIPInterface -InterfaceIndex 18 -InterfaceMetric 1
# Pr?fe ob es funktioniert hat
Get-NetIPInterface -InterfaceIndex 18 | Select-Object InterfaceAlias, InterfaceMetric
# Sollte zeigen: InterfaceMetric = 1
```
### Schritt 2: DNS-Reihenfolge testen
Nach dem Setzen der Metrik auf 1:
```powershell
# Teste DNS-Aufl?sung
Resolve-DnsName grafana.michaelschiemer.de | Select-Object Name, IPAddress
# Falls das jetzt 10.8.0.1 zur?ckgibt ? Erfolg!
# Falls nicht ? Hosts-Datei ist die bessere L?sung
```
### Schritt 3: WireGuard neu verbinden
1. **Disconnect** WireGuard-Verbindung
2. **Connect** WireGuard-Verbindung neu
3. **Teste DNS** erneut
## Empfehlung
**L?sung 1 (Hosts-Datei) ist einfacher und funktioniert zuverl?ssig:**
- ? Funktioniert sofort
- ? Keine PowerShell-Befehle n?tig
- ? Keine Administratorrechte n?tig (au?er f?r Hosts-Datei)
- ? Keine Interface-Metrik-Anpassung n?tig
**L?sung 2 (Interface-Metrik) ist optional:**
- Kann funktionieren, aber ist komplexer
- Muss m?glicherweise nach jedem System-Neustart neu gesetzt werden
- Hosts-Datei ist einfacher und zuverl?ssiger
## N?chste Schritte
1. ? Hosts-Datei funktioniert bereits
2. ? Pr?fe ob Traffic ?ber VPN kommt (ClientHost: 10.8.0.7)
3. ? Entferne tempor?re IP-Erlaubnis, wenn Traffic ?ber VPN kommt

View File

@@ -0,0 +1,103 @@
# WireGuard Windows - Route-Tabelle pr?fen und fixen
## Status
? **Route vorhanden**: `10.8.0.0/24` Route existiert in Windows Route-Tabelle
? **Ping funktioniert**: `ping 10.8.0.1` funktioniert ? VPN-Verbindung ist OK
?? **Route zeigt "Auf Verbindung"**: Gateway ist `10.8.0.7` (Client-IP), nicht `10.8.0.1` (Server-IP)
## Route-Interpretation
```
10.8.0.0 255.255.255.0 Auf Verbindung 10.8.0.7 5
```
**Bedeutung:**
- **Ziel**: `10.8.0.0/24` (ganzes VPN-Netzwerk)
- **Typ**: "Auf Verbindung" (On-link) = direkt verbundenes Netzwerk
- **Gateway**: `10.8.0.7` (deine Client-IP)
- **Metrik**: 5 (niedrig = bevorzugt)
**Das ist normal f?r WireGuard!** Das Interface ist als direkt verbunden markiert, daher ist der Gateway die Client-IP selbst.
## Test-Schritte
### Schritt 1: Browser DNS-Cache leeren
Falls der Browser noch alte DNS-Eintr?ge cached:
```powershell
# Flush DNS-Cache
ipconfig /flushdns
# Pr?fe DNS-Aufl?sung
nslookup grafana.michaelschiemer.de
```
**Mit Hosts-Datei sollte zeigen:**
```
Name: grafana.michaelschiemer.de
Address: 10.8.0.1
```
### Schritt 2: Teste Grafana-Zugriff
1. **Stelle sicher, dass VPN verbunden ist**
2. **?ffne Browser** (Chrome/Edge/Firefox)
3. **Leere Browser-Cache** oder nutze **Inkognito-Modus**
4. **?ffne**: `https://grafana.michaelschiemer.de`
5. **Warte 5 Sekunden**
### Schritt 3: Pr?fe Traefik-Logs
Ich pr?fe dann die Logs auf dem Server, ob:
- ? `ClientHost: 10.8.0.7` (VPN-IP) ? Traffic kommt ?ber VPN!
- ? `ClientHost: 89.246.96.244` (?ffentliche IP) ? Traffic kommt NICHT ?ber VPN
## Falls Traffic immer noch nicht ?ber VPN kommt
### Option A: Route explizit setzen
Falls die Route nicht richtig funktioniert:
```powershell
# Als Administrator
# Interface-Index 18 (WireGuard Interface)
route delete 10.8.0.0 MASK 255.255.255.0
route add 10.8.0.0 MASK 255.255.255.0 10.8.0.1 METRIC 1 IF 18
# Pr?fe ob es funktioniert hat
route print | findstr "10.8"
```
### Option B: WireGuard neu verbinden
1. **Disconnect** WireGuard-Verbindung
2. **Warte 5 Sekunden**
3. **Connect** WireGuard-Verbindung neu
4. **Pr?fe Route erneut**: `route print | findstr "10.8"`
5. **Teste Ping**: `ping 10.8.0.1`
6. **Teste Grafana**: `https://grafana.michaelschiemer.de`
### Option C: Pr?fe AllowedIPs in WireGuard-Config
**?ffne WireGuard ? W?hle "grafana-test" ? "Bearbeiten":**
```ini
[Peer]
AllowedIPs = 10.8.0.0/24 # ? Muss das gesamte VPN-Netzwerk sein
```
**Falls nur `10.8.0.1/32` oder ?hnliches steht:**
- ?ndere zu `10.8.0.0/24`
- Speichere
- WireGuard neu verbinden
## Erwartetes Ergebnis
Nach korrektem VPN-Routing sollte Traefik sehen:
```
ClientHost: 10.8.0.7 ? Deine VPN-Client-IP
```
Dann k?nnen wir die tempor?re IP-Erlaubnis (`89.246.96.244`) entfernen!

View File

@@ -0,0 +1,176 @@
# WireGuard Windows - Route explizit mit Gateway setzen
## Problem best?tigt
Trotz Firewall-Regeln kommt Traffic **NICHT ?ber VPN**:
- Traefik sieht: `ClientHost: 89.246.96.244` (?ffentliche IP) ?
- Erwartet: `ClientHost: 10.8.0.7` (VPN-IP) ?
## Was wir bereits probiert haben
? **WireGuard verbunden**: Aktive Verbindung
? **Route vorhanden**: `10.8.0.0/24` Route in Windows Route-Tabelle
? **Ping funktioniert**: `ping 10.8.0.1` erfolgreich
? **AllowedIPs korrekt**: `10.8.0.0/24` in Client-Config
? **Interface-Metrik angepasst**: Metrik 1 (h?chste Priorit?t)
? **Firewall-Regeln erstellt**: VPN-Netzwerk-Regeln f?r 10.8.0.0/24
? **HTTP/HTTPS-Traffic kommt NICHT ?ber VPN**: Windows sendet Traffic ?ber Standard-Interface
## L?sung: Route explizit mit Gateway setzen
Windows k?nnte die Route nicht korrekt nutzen, weil sie als "Auf Verbindung" (On-link) markiert ist. Setzen wir die Route explizit mit Gateway.
### Schritt 1: Finde WireGuard Interface-Index
```powershell
# Als Administrator
Get-NetAdapter | Where-Object {$_.Name -like "*grafana-test*" -or $_.Name -like "*WireGuard*"} | Select-Object Name, InterfaceIndex
```
**Beispiel-Output:**
```
Name InterfaceIndex
---- --------------
grafana-test 18
```
### Schritt 2: Entferne alte Route
```powershell
# Als Administrator
route delete 10.8.0.0 MASK 255.255.255.0
```
**Falls Fehler:** Das ist OK, die Route existiert vielleicht nicht mehr oder hat eine andere Form.
### Schritt 3: Setze Route explizit mit Gateway
```powershell
# Als Administrator
# Ersetze 18 mit dem Interface-Index aus Schritt 1
route add 10.8.0.0 MASK 255.255.255.0 10.8.0.1 METRIC 1 IF 18
```
**Erkl?rung:**
- `10.8.0.0` = Ziel-Netzwerk (VPN-Netzwerk)
- `MASK 255.255.255.0` = Subnetzmaske (/24)
- `10.8.0.1` = Gateway (VPN-Server-IP)
- `METRIC 1` = H?chste Priorit?t (niedrigste Zahl = h?chste Priorit?t)
- `IF 18` = Interface-Index von WireGuard
### Schritt 4: Pr?fe ob Route korrekt gesetzt wurde
```powershell
# Als Administrator
route print | findstr "10.8"
```
**Erwartetes Ergebnis:**
```
10.8.0.0 255.255.255.0 10.8.0.1 18 1
```
**Wichtig:** Gateway sollte `10.8.0.1` sein (nicht "Auf Verbindung" oder deine Client-IP `10.8.0.7`).
### Schritt 5: WireGuard neu verbinden
1. **Disconnect** WireGuard-Verbindung
2. **Warte 5 Sekunden**
3. **Connect** WireGuard-Verbindung neu
4. **Pr?fe Route erneut**: `route print | findstr "10.8"`
### Schritt 6: Teste
```powershell
# Pr?fe Route
route print | findstr "10.8"
# Teste Ping
ping 10.8.0.1
# Teste Grafana im Browser
# https://grafana.michaelschiemer.de
```
### Schritt 7: Logs pr?fen
Nach dem Test sage mir Bescheid, dann pr?fe ich die Traefik-Logs:
- ? Wenn `ClientHost: 10.8.0.7` ? Traffic kommt ?ber VPN!
- ? Wenn `ClientHost: 89.246.96.244` ? Traffic kommt NICHT ?ber VPN
## Falls Route nicht korrekt bleibt
Die Route k?nnte nach dem Disconnect/Connect wieder auf "Auf Verbindung" wechseln. In diesem Fall:
### Option A: Route persistieren
```powershell
# Als Administrator
# Entferne alte Route
route delete 10.8.0.0 MASK 255.255.255.0
# Setze Route mit -p Flag (persistent)
route add 10.8.0.0 MASK 255.255.255.0 10.8.0.1 METRIC 1 IF 18 -p
```
Das `-p` Flag macht die Route persistent ?ber System-Neustarts.
### Option B: Route ?ber WireGuard selbst setzen
Manchmal setzt WireGuard die Route automatisch auf "Auf Verbindung". Versuche die Route nach dem Verbinden erneut zu setzen:
```powershell
# Nachdem WireGuard verbunden ist, erneut ausf?hren:
route delete 10.8.0.0 MASK 255.255.255.0
route add 10.8.0.0 MASK 255.255.255.0 10.8.0.1 METRIC 1 IF 18
```
## Troubleshooting
### Route wird nicht gesetzt
```powershell
# Pr?fe ob Interface-Index korrekt ist
Get-NetAdapter | Where-Object {$_.Name -like "*grafana-test*"}
# Pr?fe ob Gateway erreichbar ist
ping 10.8.0.1
```
### Route wird wieder gel?scht
Windows k?nnte die Route automatisch zur?cksetzen. In diesem Fall:
1. Setze Route nach jedem WireGuard-Connect neu
2. Oder erstelle ein Script, das die Route automatisch setzt
## Alternative: PowerShell-Script f?r automatische Route-Setzung
```powershell
# Als Administrator
# Finde Interface-Index
$wgInterface = Get-NetAdapter | Where-Object {$_.Name -like "*grafana-test*" -or $_.Name -like "*WireGuard*"}
if ($wgInterface) {
$ifIndex = $wgInterface.InterfaceIndex
Write-Host "WireGuard Interface gefunden: $($wgInterface.Name), Index: $ifIndex"
# Entferne alte Route
route delete 10.8.0.0 MASK 255.255.255.0 2>&1 | Out-Null
# Setze Route explizit mit Gateway
route add 10.8.0.0 MASK 255.255.255.0 10.8.0.1 METRIC 1 IF $ifIndex
# Pr?fe ob es funktioniert hat
route print | findstr "10.8"
} else {
Write-Host "WireGuard Interface nicht gefunden"
}
```
## N?chste Schritte
Nach dem Setzen der Route:
1. ? Route explizit mit Gateway gesetzt
2. ? WireGuard neu verbinden
3. ? Route erneut pr?fen (sollte Gateway `10.8.0.1` zeigen)
4. ? Teste Grafana-Zugriff
5. ? Pr?fe Traefik-Logs (ich pr?fe dann, ob `ClientHost: 10.8.0.7` erscheint)

View File

@@ -0,0 +1,109 @@
# WireGuard Windows Routing - Finale Analyse
## Problem best?tigt
Trotz aller Ma?nahmen kommt Traffic von Windows **NICHT ?ber VPN**:
- Traefik sieht: `ClientHost: 89.246.96.244` (?ffentliche IP) ?
- Erwartet: `ClientHost: 10.8.0.7` (VPN-IP) ?
## Was funktioniert
? **WireGuard verbunden**: Aktive Verbindung mit latest handshake
? **Route vorhanden**: `10.8.0.0/24` Route in Windows Route-Tabelle
? **Ping funktioniert**: `ping 10.8.0.1` erfolgreich
? **AllowedIPs korrekt**: `10.8.0.0/24` in Client-Config
? **VPN-Server funktioniert**: Test-Container erfolgreich verbunden
## Was nicht funktioniert
? **HTTP/HTTPS-Traffic kommt NICHT ?ber VPN**: Windows sendet Traffic ?ber Standard-Interface
## Ursache
**Windows-spezifisches Routing-Problem**: Windows priorisiert die Standard-Route ?ber das WireGuard-Interface f?r HTTP/HTTPS-Traffic, obwohl:
- Die Route vorhanden ist
- Ping funktioniert
- WireGuard verbunden ist
## M?gliche L?sungen
### Option 1: Windows Interface-Metrik anpassen
```powershell
# Als Administrator
# WireGuard Interface-Index finden
Get-NetAdapter | Where-Object {$_.Name -like "*grafana-test*" -or $_.Name -like "*WireGuard*"} | Select-Object Name, InterfaceIndex
# Interface-Metrik auf 1 setzen (h?chste Priorit?t)
Set-NetIPInterface -InterfaceIndex 18 -InterfaceMetric 1
# Pr?fen ob es funktioniert hat
Get-NetIPInterface -InterfaceIndex 18 | Select-Object InterfaceAlias, InterfaceMetric
```
### Option 2: Route explizit mit Gateway setzen
```powershell
# Als Administrator
# Entferne alte Route
route delete 10.8.0.0 MASK 255.255.255.0
# Setze Route explizit mit Gateway 10.8.0.1 (nicht "Auf Verbindung")
route add 10.8.0.0 MASK 255.255.255.0 10.8.0.1 METRIC 1 IF 18
# Pr?fe ob es funktioniert hat
route print | findstr "10.8"
```
### Option 3: Windows Firewall pr?fen
Windows Firewall k?nnte VPN-Traffic blockieren:
```powershell
# Als Administrator
# Pr?fe Firewall-Regeln
Get-NetFirewallRule | Where-Object {$_.DisplayName -like "*WireGuard*"}
# Falls keine Regeln vorhanden: Erlaube WireGuard-Traffic
New-NetFirewallRule -DisplayName "WireGuard VPN" -Direction Outbound -LocalPort Any -Protocol TCP -Action Allow
New-NetFirewallRule -DisplayName "WireGuard VPN" -Direction Outbound -LocalPort Any -Protocol UDP -Action Allow
```
### Option 4: WireGuard auf Windows neu installieren
1. **WireGuard deinstallieren**
2. **Neu installieren**: https://www.wireguard.com/install/
3. **Config neu importieren**
4. **Verbinden und testen**
### Option 5: Alternativer VPN-Client (tempor?r)
Falls WireGuard auf Windows weiterhin Probleme macht, k?nntest du tempor?r einen anderen VPN-Client verwenden, um zu pr?fen, ob das Problem Windows-spezifisch ist.
## Empfehlung
**Option 1 (Interface-Metrik)** ist am einfachsten und sollte zuerst probiert werden.
**Option 2 (Route mit Gateway)** ist robuster, k?nnte aber zu Problemen f?hren, falls das Gateway nicht korrekt ist.
**Option 3 (Firewall)** sollte auch gepr?ft werden, falls die anderen Optionen nicht helfen.
## Testen
Nach jeder ?nderung:
1. **Pr?fe Route**: `route print | findstr "10.8"`
2. **Teste Ping**: `ping 10.8.0.1`
3. **Teste Grafana**: `https://grafana.michaelschiemer.de`
4. **Pr?fe Logs**: Ich pr?fe dann die Traefik-Logs, ob `ClientHost: 10.8.0.7` erscheint
## N?chste Schritte
Wenn eine der Optionen funktioniert:
1. ? Traffic kommt ?ber VPN (`ClientHost: 10.8.0.7`)
2. ? Tempor?re IP-Erlaubnis entfernen (`89.246.96.244`)
3. ? Grafana ist nur noch ?ber VPN erreichbar
## Dokumentation
Alle ?nderungen sollten dokumentiert werden, damit andere Windows-Clients das gleiche Problem l?sen k?nnen.