Files
michaelschiemer/docs/deployment/GRAFANA-VPN-SECURITY-PLAN.md

3.8 KiB

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

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

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:

# 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

# 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

# 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

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?