From feaa5069c492755f62d00a6cb32de92a2628bad2 Mon Sep 17 00:00:00 2001 From: Administrator Date: Mon, 23 Feb 2026 09:18:38 +0000 Subject: [PATCH] docs: create IT_Abteilung/Wireguard --- IT_Abteilung/Wireguard.md | 186 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 186 insertions(+) create mode 100644 IT_Abteilung/Wireguard.md diff --git a/IT_Abteilung/Wireguard.md b/IT_Abteilung/Wireguard.md new file mode 100644 index 0000000..b21fa5c --- /dev/null +++ b/IT_Abteilung/Wireguard.md @@ -0,0 +1,186 @@ +--- +title: Wireguard VPN Profice +description: +published: true +date: 2026-02-23T09:18:36.441Z +tags: +editor: markdown +dateCreated: 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.de` + * `n8n.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`. + +```yaml +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. +1. Installieren Sie die **WireGuard App** aus dem offiziellen App Store oder Google Play Store. +2. Öffnen Sie ein Terminal auf dem Server und lassen Sie sich den QR-Code anzeigen: + ```bash + docker logs -f wireguard +### 3.1 Mobile Verbindung (Smartphone/Tablet) +Die einfachste Methode für mobile Geräte ist die Verwendung des QR-Codes. + +1. **App installieren:** Installieren Sie die offizielle **WireGuard App** aus dem Google Play Store oder Apple App Store. +2. **QR-Code anzeigen:** Öffnen Sie ein Terminal auf dem Server und lassen Sie sich den Code in den Logs anzeigen: + ```bash + docker logs wireguard + ``` +3. **Hinzufügen:** Wählen Sie in der App das **"+" Icon** -> **Scan from QR code**. +4. **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`). + +1. **Konfiguration finden:** Navigieren Sie auf dem Server in den Ordner des jeweiligen Peers: + ```bash + cd /opt/wireguard/config/peer_/ + ``` +2. **Download:** Kopieren Sie die Datei `peer_.conf` sicher auf Ihren Computer (z. B. via SCP oder SFTP). +3. **Import:** * Installieren Sie den Client von [wireguard.com](https://www.wireguard.com). + * Wählen Sie **Tunnel aus Datei importieren** und wählen Sie die `.conf`-Datei aus. +4. **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):** +```yaml +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:** +```yaml +labels: + - "traefik.http.routers.n8n.middlewares=vpn-only-access@file" +``` +**Für Wiki.js:** +```yaml +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: + +1. **Konfigurationsdatei öffnen:** Öffnen Sie die `docker-compose.yml` im WireGuard-Installationsverzeichnis (meist `/opt/wireguard/`). +2. **Peer-Liste erweitern:** Suchen Sie unter `environment:` die Variable `PEERS=`. 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` +3. **Änderungen anwenden:** Starten Sie den Stack neu. WireGuard erkennt die Änderung und generiert im Hintergrund automatisch neue Schlüsselpaare und Konfigurationsdateien: + ```bash + 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_/` + +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 + + +