# 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?