# VPN Routing - Client-Side Checks ## Problem Grafana gibt 403-Fehler, obwohl VPN verbunden ist. Traefik sieht die ?ffentliche Client-IP statt der VPN-IP. ## Client-Side Diagnose ### 1. VPN-Verbindung pr?fen **Windows:** ```powershell # Pr?fe WireGuard Interface wireguard.exe /show wg0 # Oder in PowerShell (als Administrator) Get-NetAdapter | Where-Object {$_.InterfaceDescription -like "*WireGuard*"} ``` **Linux:** ```bash # Pr?fe WireGuard Interface sudo wg show # Pr?fe Interface-Status ip addr show wg0 # Sollte zeigen: inet 10.8.0.7/24 ``` **Mac:** ```bash # Pr?fe WireGuard Interface sudo wg show # Pr?fe Interface-Status ifconfig utun* | grep -A 5 "inet 10.8.0" # Sollte zeigen: inet 10.8.0.7 ``` ### 2. DNS-Konfiguration pr?fen **Windows:** - ?ffne WireGuard-Client - Pr?fe ob `DNS = 10.8.0.1` in der Config gesetzt ist - Oder in PowerShell: ```powershell Get-DnsClientServerAddress | Select-Object InterfaceAlias, ServerAddresses ``` **Linux:** ```bash # Pr?fe aktive DNS-Server cat /etc/resolv.conf # Oder resolvectl status # Sollte 10.8.0.1 enthalten ``` **Mac:** ```bash # Pr?fe DNS-Server scutil --dns | grep nameserver # Oder networksetup -getdnsservers Wi-Fi ``` ### 3. DNS-Aufl?sung testen ```bash # Teste DNS-Aufl?sung ?ber VPN-DNS dig +short grafana.michaelschiemer.de @10.8.0.1 # Sollte zur?ckgeben: 10.8.0.1 # Teste normale DNS-Aufl?sung dig +short grafana.michaelschiemer.de # Falls das eine andere IP zur?ckgibt (z.B. 94.16.110.151), wird der Traffic ?ber ?ffentliche Route gehen ``` **Windows:** ```powershell # Teste DNS-Aufl?sung Resolve-DnsName grafana.michaelschiemer.de -Server 10.8.0.1 nslookup grafana.michaelschiemer.de 10.8.0.1 ``` ### 4. Routing pr?fen **Linux:** ```bash # Pr?fe Routing-Tabelle ip route show | grep 10.8.0 # Sollte zeigen: 10.8.0.0/24 dev wg0 # Pr?fe Default Route ip route show default ``` **Windows:** ```powershell # Pr?fe Routing-Tabelle route print | findstr "10.8.0" ``` **Mac:** ```bash # Pr?fe Routing-Tabelle netstat -rn | grep 10.8.0 ``` ### 5. AllowedIPs in WireGuard Config pr?fen **Deine WireGuard-Config sollte enthalten:** ``` [Peer] AllowedIPs = 10.8.0.0/24 ``` **Wichtig:** Wenn `AllowedIPs = 0.0.0.0/0` ist, wird ALLER Traffic ?ber VPN geroutet. Das ist OK, aber k?nnte Probleme verursachen. Wenn `AllowedIPs = 10.8.0.0/24` ist, wird nur Traffic f?r das VPN-Netzwerk ?ber VPN geroutet. Der Rest geht ?ber das normale Internet. ### 6. Browser-Zugriff testen **Option A: Direkt ?ber VPN-IP** ``` https://10.8.0.1 ``` (Wenn das funktioniert, ist Traefik erreichbar, aber die Host-Header-Konfiguration k?nnte ein Problem sein) **Option B: Via Domain mit Hosts-Datei** **Linux/Mac:** ```bash # F?ge VPN-IP zur Hosts-Datei hinzu echo "10.8.0.1 grafana.michaelschiemer.de" | sudo tee -a /etc/hosts # Teste dann curl -k -H "Host: grafana.michaelschiemer.de" https://10.8.0.1 ``` **Windows:** ``` # C:\Windows\System32\drivers\etc\hosts (als Administrator bearbeiten) 10.8.0.1 grafana.michaelschiemer.de ``` **Option C: Via VPN-DNS** - Stelle sicher, dass dein System 10.8.0.1 als DNS-Server verwendet - Dann sollte `grafana.michaelschiemer.de` automatisch auf 10.8.0.1 aufgel?st werden ### 7. Traceroute testen ```bash # Pr?fe welchen Weg der Traffic nimmt traceroute 10.8.0.1 # Sollte direkt ?ber wg0 Interface gehen, nicht ?ber Gateway # Teste Domain traceroute grafana.michaelschiemer.de # Wenn das ?ber ?ffentliche IPs geht, l?uft der Traffic nicht ?ber VPN ``` **Windows:** ```powershell tracert 10.8.0.1 tracert grafana.michaelschiemer.de ``` ## H?ufige Probleme ### Problem 1: DNS verwendet ?ffentliche Server **L?sung:** Stelle sicher, dass WireGuard `DNS = 10.8.0.1` setzt, oder setze es manuell im System. ### Problem 2: AllowedIPs nicht korrekt **L?sung:** `AllowedIPs = 10.8.0.0/24` sollte gesetzt sein f?r VPN-Zugriff. ### Problem 3: Routing geht ?ber ?ffentliche IP **L?sung:** Pr?fe ob grafana.michaelschiemer.de ?ber ?ffentliche DNS aufgel?st wird. Falls ja, setze DNS auf 10.8.0.1 oder verwende Hosts-Datei. ### Problem 4: Browser cached alte IP **L?sung:** Browser-Cache leeren oder Inkognito-Modus verwenden. ## Server-Side Diagnose F?hre das Diagnose-Playbook auf dem Server aus: ```bash cd deployment/ansible ansible-playbook -i inventory/production.yml playbooks/diagnose-vpn-routing.yml ``` Das Playbook zeigt: - WireGuard-Status - Routing-Konfiguration - Traefik Access-Logs (welche Client-IPs Traefik sieht) - DNS-Aufl?sungstests - Firewall-Regeln