196 lines
4.4 KiB
Markdown
196 lines
4.4 KiB
Markdown
# 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
|