Remove WireGuard integration from production deployment to simplify infrastructure: - Remove docker-compose-direct-access.yml (VPN-bound services) - Remove VPN-only middlewares from Grafana, Prometheus, Portainer - Remove WireGuard middleware definitions from Traefik - Remove WireGuard IPs (10.8.0.0/24) from Traefik forwarded headers All monitoring services now publicly accessible via subdomains: - grafana.michaelschiemer.de (with Grafana native auth) - prometheus.michaelschiemer.de (with Basic Auth) - portainer.michaelschiemer.de (with Portainer native auth) All services use Let's Encrypt SSL certificates via Traefik.
7.9 KiB
WireGuard Client Import & Connection Guide
Anleitung zum Importieren und Verbinden der generierten WireGuard Client-Konfiguration.
Generierte Konfiguration
Client Name: michael-pc
Config File: /home/michael/dev/michaelschiemer/deployment/ansible/wireguard/configs/michael-pc.conf
Client IP: 10.8.0.2/32
Server Endpoint: 94.16.110.151:51820
VPN Network: 10.8.0.0/24
Import auf verschiedenen Plattformen
Linux (Ubuntu/Debian)
# 1. Konfiguration nach /etc/wireguard/ kopieren
sudo cp /home/michael/dev/michaelschiemer/deployment/ansible/wireguard/configs/michael-pc.conf /etc/wireguard/
# 2. Berechtigungen setzen
sudo chmod 600 /etc/wireguard/michael-pc.conf
# 3. VPN-Verbindung starten
sudo wg-quick up michael-pc
# 4. Status prüfen
sudo wg show michael-pc
# 5. Bei Boot automatisch starten (optional)
sudo systemctl enable wg-quick@michael-pc
Verbindung trennen:
sudo wg-quick down michael-pc
macOS
# 1. WireGuard installieren (falls nicht vorhanden)
brew install wireguard-tools
# 2. Konfiguration importieren
sudo cp /home/michael/dev/michaelschiemer/deployment/ansible/wireguard/configs/michael-pc.conf /etc/wireguard/
# 3. VPN starten
sudo wg-quick up michael-pc
# 4. Status prüfen
sudo wg show michael-pc
Alternative: WireGuard GUI App für macOS verwenden
- Download: https://apps.apple.com/app/wireguard/id1451685025
- "Add Tunnel from File" →
michael-pc.confauswählen - Verbindung aktivieren
Windows
Via WireGuard GUI (empfohlen):
-
WireGuard GUI installieren:
- Download: https://www.wireguard.com/install/
- Installer ausführen
-
Konfiguration importieren:
- WireGuard GUI öffnen
- "Import tunnel(s) from file"
michael-pc.confauswählen
-
Verbindung aktivieren:
- Tunnel "michael-pc" in der Liste anklicken
- "Activate" Button drücken
-
Status prüfen:
- Status sollte "Active" zeigen
- Transfer-Statistiken werden angezeigt
Android
Via WireGuard App:
-
WireGuard App installieren:
- Google Play Store: "WireGuard"
-
Konfiguration importieren:
- Option 1:
michael-pc.confauf Gerät übertragen und importieren - Option 2: QR Code scannen (falls generiert)
- Option 1:
-
Verbindung aktivieren:
- Tunnel antippen
- Toggle aktivieren
iOS
Via WireGuard App:
-
WireGuard App installieren:
- App Store: "WireGuard"
-
Konfiguration importieren:
- Option 1:
michael-pc.confvia AirDrop/iCloud übertragen - Option 2: QR Code scannen (falls generiert)
- Option 1:
-
Verbindung aktivieren:
- Tunnel antippen
- Toggle aktivieren
Konnektivitätstest
Nach erfolgreicher Verbindung:
1. VPN Gateway Ping
ping 10.8.0.1
Erwartete Ausgabe:
PING 10.8.0.1 (10.8.0.1) 56(84) bytes of data.
64 bytes from 10.8.0.1: icmp_seq=1 ttl=64 time=1.23 ms
64 bytes from 10.8.0.1: icmp_seq=2 ttl=64 time=1.15 ms
✅ Erfolg: VPN-Verbindung funktioniert
2. Admin Services Zugriff
Traefik Dashboard (HTTPS):
curl -k https://10.8.0.1:8080
Prometheus (HTTP):
curl http://10.8.0.1:9090
Grafana (HTTPS):
curl -k https://10.8.0.1:3001
Portainer (HTTP):
curl http://10.8.0.1:9000
Redis Insight (HTTP):
curl http://10.8.0.1:8001
Browser-Zugriff:
- Traefik: https://10.8.0.1:8080
- Prometheus: http://10.8.0.1:9090
- Grafana: https://10.8.0.1:3001
- Portainer: http://10.8.0.1:9000
- Redis Insight: http://10.8.0.1:8001
Troubleshooting
Problem: Keine Verbindung zum Server
Symptome:
ping 10.8.0.1timeout- WireGuard Status zeigt "Handshake failed"
Lösungen:
-
Server Endpoint prüfen:
# Prüfe ob Server erreichbar ist ping 94.16.110.151 # Prüfe ob Port 51820 offen ist nc -zvu 94.16.110.151 51820 -
Firewall auf Server prüfen:
# Auf Server ausführen sudo nft list ruleset | grep 51820 -
WireGuard Server Status prüfen:
# Auf Server ausführen sudo systemctl status wg-quick@wg0 sudo wg show wg0
Problem: VPN verbindet, aber kein Zugriff auf Admin Services
Symptome:
ping 10.8.0.1funktioniertcurl http://10.8.0.1:9090timeout
Lösungen:
-
Routing prüfen:
# Auf Client ip route | grep 10.8.0 -
Firewall-Rules auf Server prüfen:
# Auf Server sudo nft list table inet wireguard_firewall -
Service-Status prüfen:
# Auf Server - Services sollten laufen docker ps | grep prometheus docker ps | grep grafana
Problem: DNS funktioniert nicht
Symptome:
- Kann keine Domains auflösen
Lösung:
# DNS-Server in Client-Config prüfen
grep DNS /etc/wireguard/michael-pc.conf
# Sollte sein: DNS = 1.1.1.1, 8.8.8.8
# DNS-Resolver testen
nslookup google.com 1.1.1.1
Problem: Verbindung bricht ständig ab
Symptome:
- Verbindung disconnected nach einigen Minuten
Lösungen:
-
PersistentKeepalive prüfen:
grep PersistentKeepalive /etc/wireguard/michael-pc.conf # Sollte sein: PersistentKeepalive = 25 -
NAT/Router-Timeout:
- PersistentKeepalive verhindert NAT-Timeout
- Wert auf 25 Sekunden gesetzt
Firewall-Validierung
Public Access sollte blockiert sein
Von außerhalb des VPNs testen (z.B. vom Internet):
# Diese Requests sollten FEHLSCHLAGEN (timeout oder connection refused):
curl --max-time 5 http://94.16.110.151:9090 # Prometheus
curl --max-time 5 http://94.16.110.151:8080 # Traefik Dashboard
curl --max-time 5 http://94.16.110.151:9000 # Portainer
# Nur Public Services sollten erreichbar sein:
curl http://94.16.110.151:80 # HTTP (funktioniert)
curl https://94.16.110.151:443 # HTTPS (funktioniert)
Erwartetes Ergebnis:
- ❌ Admin-Ports (8080, 9090, 3001, 9000, 8001): Timeout oder Connection Refused
- ✅ Public-Ports (80, 443): Erreichbar
Firewall-Logs prüfen
Auf Server:
# Geblockte Zugriffe auf Admin-Services loggen
sudo journalctl -k | grep "BLOCKED_ADMIN_SERVICE"
# Beispiel-Ausgabe:
# [ 123.456] BLOCKED_ADMIN_SERVICE: IN=eth0 OUT= SRC=203.0.113.42 DST=94.16.110.151 PROTO=TCP DPT=8080
Sicherheitshinweise
✅ Best Practices
-
Private Keys schützen:
- Niemals Private Keys committen oder teilen
- Berechtigungen:
chmod 600für .conf Dateien
-
Regelmäßige Key-Rotation:
- Empfohlen: Jährlich neue Keys generieren
- Bei Kompromittierung: Sofort neue Keys erstellen
-
Client-Zugriff widerrufen:
# Auf Server: Peer aus Konfiguration entfernen sudo nano /etc/wireguard/wg0.conf # [Peer]-Block für michael-pc entfernen # WireGuard neu laden sudo wg syncconf wg0 <(wg-quick strip wg0) -
VPN-Monitoring:
# Aktive Verbindungen prüfen sudo wg show wg0 # Letzte Handshake-Zeit prüfen sudo wg show wg0 latest-handshakes
Nächste Schritte
Nach erfolgreicher VPN-Verbindung:
-
✅ VPN-Zugriff verifizieren: Gateway ping + Admin Services Zugriff
-
✅ Firewall-Rules validieren: Public Access blockiert, VPN Access erlaubt
-
⏭️ Weitere Clients hinzufügen (optional):
ansible-playbook playbooks/generate-wireguard-client.yml -e "client_name=laptop" ansible-playbook playbooks/generate-wireguard-client.yml -e "client_name=phone" -
⏭️ Backup der Client-Configs:
# Configs sind in .gitignore - manuelles Backup notwendig tar -czf wireguard-client-configs-backup-$(date +%Y%m%d).tar.gz \ /home/michael/dev/michaelschiemer/deployment/ansible/wireguard/configs/
Erstellt: 2025-11-05 Client Config: michael-pc (10.8.0.2/32) Server Endpoint: 94.16.110.151:51820 VPN Network: 10.8.0.0/24