166 lines
7.3 KiB
Markdown
166 lines
7.3 KiB
Markdown
# Kapitel 4 – WireGuard (VPN) mit WG-Dashboard
|
||
|
||
## Einleitung
|
||
Bisher haben wir unsere Dienste im UCC so aufgebaut, dass öffentliche Anwendungen – wie zum Beispiel die Nextcloud – über den Nginx Proxy Manager (NPM) erreichbar sind.
|
||
Doch nicht jede Oberfläche sollte ins Internet freigegeben werden. Viele Admin-Dashboards, Diagnose-Tools oder Konfigurationen sind **nur für uns selbst gedacht** und würden im Internet ein leichtes Ziel für automatisierte Angriffe oder Bruteforce darstellen.
|
||
|
||
### Zugriff von unterwegs
|
||
Stell dir vor, du bist nicht zuhause und möchtest trotzdem dein UCC nutzen:
|
||
- Das **Pi-hole** soll auch unterwegs Werbung und Tracker blockieren.
|
||
- Eine **Admin-Oberfläche** soll erreichbar sein, ohne sie öffentlich freigeben zu müssen.
|
||
- Du möchtest dich per **SSH oder Terminal** einloggen, um eine schnelle Diagnose durchzuführen.
|
||
|
||
All das funktioniert nicht über den NPM, da er ausschließlich für **öffentliche Dienste** gedacht ist. Wir brauchen also einen sicheren Weg, unser gesamtes internes Netz von außen nutzen zu können.
|
||
|
||
### Lösung: VPN
|
||
Ein **Virtual Private Network (VPN)** erstellt einen verschlüsselten Tunnel zwischen deinem Gerät (z. B. Laptop oder Smartphone) und dem UCC.
|
||
Nach der Verbindung verhält sich dein Gerät so, als wäre es direkt im Heimnetz.
|
||
Das bedeutet:
|
||
- Alle internen IPs und Container sind erreichbar.
|
||
- Der gesamte Datenverkehr kann optional über das UCC laufen.
|
||
- Pi-hole wirkt dadurch auch außerhalb des heimischen WLANs.
|
||
|
||
### WireGuard
|
||
WireGuard ist ein moderner Standard für VPN-Verbindungen. Er ist schlanker, schneller und einfacher aufgebaut als klassische Lösungen wie OpenVPN oder IPSec.
|
||
Mit wenig Ressourcen läuft WireGuard auch in einem kleinen Proxmox-LXC stabil und zuverlässig.
|
||
Die Verbindung ist innerhalb weniger Sekunden aufgebaut und nutzt moderne Kryptografie, ohne komplizierte Konfiguration.
|
||
|
||
### WG-Dashboard
|
||
Die größte Hürde bei WireGuard war bisher die manuelle Einrichtung. Schlüssel erzeugen, Config-Dateien schreiben, Clients verteilen – das war fehleranfällig und unübersichtlich.
|
||
|
||
**WG-Dashboard** löst genau dieses Problem:
|
||
- Der VPN-Server wird über eine **Weboberfläche** eingerichtet.
|
||
- Neue Clients lassen sich mit einem Klick anlegen.
|
||
- Für mobile Geräte werden **QR-Codes** angezeigt, die direkt in die WireGuard-App gescannt werden können.
|
||
- Statistiken und Verbindungsübersichten zeigen, welche Geräte online sind.
|
||
|
||
Damit wird WireGuard für alle nutzbar, die Wert auf Sicherheit legen, aber keine Zeit mit komplizierten Config-Files verschwenden wollen.
|
||
|
||
> [!TIP]
|
||
> Mit WireGuard und WG-Dashboard stellst du eine **sichere Verbindung** ins UCC her.
|
||
> So nutzt du alle Vorteile deines Heimnetzes von überall: Pi-hole blockt Werbung, Admin-Oberflächen bleiben geschützt, und der Zugriff auf interne Tools und Terminals ist jederzeit möglich.
|
||
|
||
---
|
||
|
||
## Voraussetzungen
|
||
|
||
Für den WireGuard-Server mit WG-Dashboard benötigen wir einen eigenen LXC-Container in Proxmox.
|
||
Dieser Container bildet die Grundlage für den VPN-Dienst und stellt die Verwaltungsoberfläche bereit.
|
||
|
||
### Anforderungen an den Container
|
||
- **Betriebssystem:** Ubuntu 24.04 LTS
|
||
- **Ressourcen:**
|
||
- 2 CPU-Kerne
|
||
- 2 GB RAM
|
||
- 16 GB Speicherplatz
|
||
- **Netzwerk:** Eine feste IPv4-Adresse im Heimnetz, z. B. `192.168.1.7`.
|
||
- **Internetverbindung:** Notwendig für das Herunterladen von Paketen und Docker-Images.
|
||
|
||
### Hinweis bei Problemen
|
||
Falls du unsicher bist, wie man in Proxmox einen LXC-Container erstellt, wirf bitte noch einmal einen Blick auf **Kapitel 1**.
|
||
Dort haben wir die grundlegenden Schritte (Template auswählen, Container einrichten, IP vergeben) ausführlich beschrieben.
|
||
|
||
> [!TIP]
|
||
> Trage die feste IP-Adresse des Containers im Router als **DHCP-Reservierung** ein.
|
||
> So stellst du sicher, dass die Adresse immer verfügbar ist und es keine Konflikte mit automatisch vergebenen Adressen gibt.
|
||
|
||
## Schritt für Schritt Anleitung
|
||
|
||
### Installation (Ubuntu 24.04 LTS im LXC)
|
||
|
||
Wir installieren WG-Dashboard nach offizieller Anleitung, erweitern die Schritte aber um Erklärungen und Hinweise.
|
||
Ziel ist es, den WireGuard-Server im UCC mit einer Weboberfläche bereitzustellen.
|
||
|
||
#### 1) System vorbereiten
|
||
Zuerst aktualisieren wir das System und installieren die wichtigsten Pakete für WireGuard und Netzwerkanalyse.
|
||
|
||
```bash
|
||
apt-get update -y
|
||
apt-get upgrade -y
|
||
apt-get install -y wireguard-tools net-tools git
|
||
```
|
||
|
||
- `wireguard-tools`: enthält die Werkzeuge, um WireGuard zu starten und zu verwalten.
|
||
- `net-tools`: nützlich für Befehle wie `ifconfig` oder `netstat` (oft für Diagnose gebraucht).
|
||
- `git`: notwendig, um den Quellcode von WG-Dashboard direkt von GitHub herunterzuladen.
|
||
|
||
> [!NOTE]
|
||
> Mit `apt-get upgrade -y` stellst du sicher, dass der Container auf dem neuesten Stand ist, bevor zusätzliche Software installiert wird.
|
||
|
||
#### 2) WG-Dashboard herunterladen
|
||
Das Projekt liegt auf GitHub. Mit `git clone` laden wir es direkt ins System.
|
||
|
||
```bash
|
||
git clone https://github.com/WGDashboard/WGDashboard.git
|
||
cd ./WGDashboard/src
|
||
```
|
||
|
||
Im Ordner `src` befindet sich das zentrale Script `wgd.sh`, das die komplette Installation und Verwaltung übernimmt.
|
||
|
||
#### 3) Installationsskript ausführen
|
||
Damit das Script lauffähig ist, setzen wir die Berechtigungen und starten die Installation:
|
||
|
||
```bash
|
||
chmod +x ./wgd.sh
|
||
./wgd.sh install
|
||
```
|
||
|
||
- `chmod +x` macht die Datei ausführbar.
|
||
- `./wgd.sh install` startet die eigentliche Einrichtung: Abhängigkeiten, Systemd-Services und Konfiguration für das Dashboard.
|
||
|
||
Während der Installation legt das Script alle benötigten Dateien unter `/etc/wireguard/` und `/etc/wgd/` an.
|
||
|
||
> [!TIP]
|
||
> Du kannst den Fortschritt jederzeit mit `journalctl -u wgd` oder `systemctl status wgd` prüfen.
|
||
|
||
#### 4) IP-Forwarding aktivieren
|
||
Damit Geräte im VPN Zugriff ins Heimnetz haben, muss das System IP-Forwarding erlauben.
|
||
Ohne diese Einstellung könnten sich Clients zwar verbinden, aber keine Daten weiterleiten.
|
||
|
||
```bash
|
||
echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf
|
||
sysctl -p /etc/sysctl.conf
|
||
```
|
||
|
||
Damit wird die Weiterleitung sofort aktiviert und auch nach einem Neustart beibehalten.
|
||
|
||
> [!WARNING]
|
||
> Ohne IP-Forwarding ist dein VPN nutzlos – du könntest dich zwar verbinden, aber keine Dienste im UCC erreichen.
|
||
|
||
#### 5) WG-Dashboard starten
|
||
Zum ersten Mal starten wir das Dashboard mit:
|
||
|
||
```bash
|
||
./wgd.sh start
|
||
```
|
||
|
||
Das Script legt dabei einen Systemd-Service an, der automatisch mit dem Container gestartet wird.
|
||
Der Status kann überprüft werden mit:
|
||
|
||
```bash
|
||
systemctl status wgd
|
||
```
|
||
|
||
---
|
||
|
||
### Erste Anmeldung in der Weboberfläche
|
||
Wenn der Service läuft, öffnen wir im Browser:
|
||
|
||
```
|
||
http://<Container-IP>:10086
|
||
```
|
||
|
||
Standard-Zugangsdaten:
|
||
- **Benutzername:** `admin`
|
||
- **Passwort:** `admin`
|
||
|
||
Nach dem Login fordert dich das Dashboard auf, ein neues Passwort zu vergeben.
|
||
Dieser Schritt ist Pflicht, da die Standarddaten öffentlich bekannt sind.
|
||
|
||
👉 *Screenshot geeignet: Login-Maske von WG-Dashboard nach Erststart.*
|
||
|
||
> [!TIP]
|
||
> Lege das neue Passwort sofort fest und notiere es in deiner Passwortverwaltung (siehe Kapitel Vaultwarden).
|
||
|
||
> [!WARNING]
|
||
> WG-Dashboard verwaltet sensible Daten wie Private Keys deiner VPN-Clients. Sichere Passwörter und ein abgeschotteter Zugriff (nur über NPM oder VPN) sind Pflicht! |