8.2 KiB
title, description, published, date, tags, editor, dateCreated
| title | description | published | date | tags | editor | dateCreated |
|---|---|---|---|---|---|---|
| Wireguard VPN Profice Dokumentation | true | 2026-02-23T09:19:08.176Z | markdown | 2026-02-23T09:18:36.441Z |
🛡️ WireGuard VPN Dokumentation: Zentraler Sicherheits-Gateway
Diese Dokumentation beschreibt die Installation und Verwaltung des WireGuard VPN-Servers, der als exklusiver Zugangspunkt für unsere internen Dienste fungiert. Aktuell sichert dieser den Zugriff auf wiki.profice.de und n8n.profice.de.
1. Funktionsprinzip und Architektur
WireGuard agiert als "Türsteher" für unser Netzwerk. Anstatt Dienste direkt dem öffentlichen Internet auszusetzen, lauscht der WireGuard-Container auf einem einzelnen UDP-Port. Nur Geräte mit einem gültigen kryptografischen Schlüssel können einen Tunnel aufbauen.
- Modus: Docker-basiertes Deployment.
- Zweck: Verschlüsselter Zugriff auf das interne Docker-Netzwerk und IP-Whitelisting für Traefik.
- Abgedeckte Domains: *
wiki.profice.den8n.profice.de
2. Installation (Docker Compose)
Wir nutzen das bewährte Image von linuxserver/wireguard, da es eine einfache Verwaltung von Peers (Clients) über Umgebungsvariablen ermöglicht.
2.1 Docker Compose Konfiguration
Die Datei befindet sich auf dem Server unter /opt/wireguard/docker-compose.yml.
version: "3.8"
services:
wireguard:
image: lscr.io/linuxserver/wireguard:latest
container_name: wireguard
cap_add:
- NET_ADMIN
- SYS_MODULE
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
- SERVERURL=vpn.profice.de # Deine öffentliche IP oder DynDNS
- SERVERPORT=51820
- PEERS=AdminHandy,AdminLaptop,Mitarbeiter1 # Namen der Endgeräte
- PEERDNS=1.1.1.1 # Optionaler DNS
- INTERNAL_SUBNET=10.13.13.0
- ALLOWEDIPS=0.0.0.0/0 # Oder spezifische interne IPs
volumes:
- /opt/wireguard/config:/config
- /lib/modules:/lib/modules
ports:
- 51820:51820/udp
sysctls:
- net.ipv4.conf.all.src_valid_mark=1
restart: always
3. Geräte-Verbindung (Client Setup)
Sobald der Container gestartet ist, erstellt WireGuard automatisch die notwendigen Konfigurationsprofile für alle in der PEERS-Variable definierten Endgeräte.
3.1 Smartphone (iOS / Android)
Die einfachste Methode für mobile Geräte ist die Verwendung des QR-Codes.
- Installieren Sie die WireGuard App aus dem offiziellen App Store oder Google Play Store.
- Öffnen Sie ein Terminal auf dem Server und lassen Sie sich den QR-Code anzeigen:
docker logs -f wireguard
3.1 Mobile Verbindung (Smartphone/Tablet)
Die einfachste Methode für mobile Geräte ist die Verwendung des QR-Codes.
- App installieren: Installieren Sie die offizielle WireGuard App aus dem Google Play Store oder Apple App Store.
- QR-Code anzeigen: Öffnen Sie ein Terminal auf dem Server und lassen Sie sich den Code in den Logs anzeigen:
docker logs wireguard - Hinzufügen: Wählen Sie in der App das "+" Icon -> Scan from QR code.
- Verbindung: Scannen Sie den Code für Ihren Peer (z. B.
peer_AdminHandy) und aktivieren Sie den Tunnel.
3.2 Desktop-Verbindung (Windows / macOS / Linux)
Für Desktop-Rechner verwenden wir die Konfigurationsdateien (.conf).
- Konfiguration finden: Navigieren Sie auf dem Server in den Ordner des jeweiligen Peers:
cd /opt/wireguard/config/peer_<NAME>/ - Download: Kopieren Sie die Datei
peer_<NAME>.confsicher auf Ihren Computer (z. B. via SCP oder SFTP). - Import: * Installieren Sie den Client von wireguard.com.
- Wählen Sie Tunnel aus Datei importieren und wählen Sie die
.conf-Datei aus.
- Wählen Sie Tunnel aus Datei importieren und wählen Sie die
- Aktivieren: Klicken Sie auf Aktivieren, um die gesicherte Verbindung herzustellen.
4. Integration mit Traefik & Domain-Schutz
Der Schutz der Domains wiki.profice.de und n8n.profice.de erfolgt durch eine Kombination aus verschlüsseltem Tunnel und IP-Whitelisting auf Proxy-Ebene.
4.1 IP-Whitelisting in Traefik
Damit nur VPN-Nutzer auf die Weboberflächen zugreifen können, wird eine Middleware definiert. Diese lässt ausschließlich Traffic aus dem WireGuard-Subnetz zu.
Beispiel für die Traefik-Konfiguration (Dynamic File Config):
http:
middlewares:
vpn-only-access:
ipWhiteList:
sourceRange:
- "10.13.13.0/24" # Das interne WireGuard-Subnetz
- "172.18.0.0/16" # Optional: Das interne Docker-Netzwerk
4.2 Zuweisung zu den Diensten
Damit die Sicherheits-Middleware aktiv wird, muss sie in den Docker-Labels der jeweiligen Dienste (n8n und Wiki.js) hinterlegt werden. Dies teilt Traefik mit, dass jede Anfrage an diese Domains zuerst die IP-Whitelist-Prüfung bestehen muss.
Fügen Sie folgende Zeilen zu den entsprechenden Containern in Ihrer docker-compose.yml hinzu:
Für n8n:
labels:
- "traefik.http.routers.n8n.middlewares=vpn-only-access@file"
Für Wiki.js:
labels:
- "traefik.http.routers.wiki.middlewares=vpn-only-access@file"
5. Verwaltung neuer Benutzer (Peers)
Die Verwaltung von Benutzern und Geräten erfolgt zentral über die Konfiguration des WireGuard-Docker-Containers. Der Prozess ist hochgradig automatisiert:
5.1 Einen neuen Peer hinzufügen
Um einen neuen Mitarbeiter oder ein weiteres Gerät (z. B. ein Tablet) hinzuzufügen, gehen Sie wie folgt vor:
- Konfigurationsdatei öffnen: Öffnen Sie die
docker-compose.ymlim WireGuard-Installationsverzeichnis (meist/opt/wireguard/). - Peer-Liste erweitern: Suchen Sie unter
environment:die VariablePEERS=. Fügen Sie den neuen Namen durch ein Komma getrennt hinzu.- Wichtig: Keine Leerzeichen verwenden und nur alphanumerische Zeichen nutzen.
- Beispiel:
PEERS=AdminPC,ChefHandy,Mitarbeiter_A
- Änderungen anwenden: Starten Sie den Stack neu. WireGuard erkennt die Änderung und generiert im Hintergrund automatisch neue Schlüsselpaare und Konfigurationsdateien:
docker-compose up -d
5.2 Zugriff auf die Zugangsdaten
Nach dem Neustart erstellt der Container für jeden Peer einen eigenen Unterordner. Diese finden Sie auf dem Host-Server unter:
/opt/wireguard/config/peer_<Name>/
In diesem Ordner befinden sich:
- peer_.conf: Die Konfigurationsdatei für Desktop-Clients.
- peer_.png: Der QR-Code für die schnelle Einrichtung auf mobilen Endgeräten.
6. Fehlerbehebung (Troubleshooting)
Falls Probleme bei der Verbindung oder beim Zugriff auf die geschützten Domains auftreten, nutzen Sie bitte die folgende Tabelle zur Diagnose:
| Problem | Mögliche Ursache | Lösung |
|---|---|---|
| Kein Handshake möglich | Der UDP-Port 51820 ist durch eine Firewall blockiert. | Stellen Sie sicher, dass Port 51820/UDP am Router und in der Server-Firewall (z.B. UFW) für externe Anfragen geöffnet ist. |
| VPN steht, aber kein Internet | Das IP-Forwarding am Host-System ist deaktiviert. | Prüfen Sie dies mit sysctl net.ipv4.ip_forward. Der Wert muss auf 1 stehen. Aktivieren Sie es ggf. in der /etc/sysctl.conf. |
| Domains nicht auflösbar | Die DNS-Konfiguration im VPN-Profil ist inkorrekt. | Prüfen Sie die PEERDNS-Einstellung in der Docker-Konfiguration. Empfohlen ist ein stabiler DNS wie 1.1.1.1 oder der interne DNS des Netzwerks. |
| Traefik meldet "403 Forbidden" | Die IP-Adresse des VPN-Clients ist nicht in der Whitelist der Traefik-Middleware. | Kontrollieren Sie die Traefik-Konfiguration. Das Subnetz des VPNs (z. B. 10.13.13.0/24) muss explizit in der ipWhiteList-Middleware erlaubt sein. |
| Verbindung bricht häufig ab | Instabile Internetverbindung oder MTU-Probleme. | Testen Sie eine geringere MTU-Größe in der Client-Konfiguration (z. B. MTU = 1280). |
7. Sicherheitsrevisions-Log
Sämtliche Änderungen an der Peer-Liste oder den Firewall-Regeln müssen im Git-Repository des Infrastruktur-Teams dokumentiert werden, um die Nachvollziehbarkeit des Zugriffsmanagements zu gewährleisten.
Dokumentationsstatus: Aktiv ✅
Abteilung: IT-Security / DevOps
Verantwortlich: Systemadministrator
Letzte Aktualisierung: 23.02.2026