WireGuard VPN auf Raspberry Pi einrichten

In dieser Anleitung zeige ich wie WireGuard mit dem Docker-Image wg-easy auf einem Server mit Debian 11 installiert werden kann.

WireGuard VPN auf Raspberry Pi einrichten

Voraussetzungen

  • Docker Engine bereits installiert (Anleitung siehe Docker)
  • Debian, Raspberry Pi OS oder ähnliches OS installiert
  • Öffentliche IP-Adresse (Dynamisch oder statisch)

Ablauf

  • WireGuard VPN installieren & konfigurieren
  • Port-Weiterleitungen konfigurieren
  • Konfiguration erstellen
  • Verbindung herstellen

WireGuard VPN installieren & konfigurieren

Beginnen wir mit der Installation von wg-easy als Docker Container.

Als erstes erstellen wir ein Verzeichnis für unser Docker Compose File und darin ein Verzeichnis für die Daten unseres Wireguard.

mkdir /app/wireguard && mkdir /app/wireguard/data && cd /app/wireguard

In diesem Verzeichnis erstellen wir nun ein Docker Compose File. Dieses können wir mit folgendem Befehl erstellen

nano docker-compose.yml

Füge folgendes ein und passe die Werte bei YOUR_PUBLIC_IP_ADDRESS und YOUR_SECRET_PASSWORD an.

version: "3.8"
services:
  wg-easy:
    environment:
      - WG_HOST=YOUR_PUBLIC_IP_ADDRESS
      - PASSWORD=YOUR_SECURE_PASSWORD
      - WG_DEFAULT_ADDRESS=10.10.10.x
    image: weejewel/wg-easy
    container_name: wg-easy
    volumes:
      - /home/user/wireguard/data:/etc/wireguard
    ports:
      - "51820:51820/udp"
      - "51821:51821/tcp"
    restart: unless-stopped
    cap_add:
      - NET_ADMIN
      - SYS_MODULE
    sysctls:
      - net.ipv4.ip_forward=1
      - net.ipv4.conf.all.src_valid_mark=1

Bei YOUR_PUBLIC_IP_ADDRESS musst du deine öffentliche IP-Adresse oder deinen DynDNS Domainnamen eintragen. Wenn du noch keinen DynDNS Namen hast, kann ich den Dienst von IPv64 empfehlen. Diesen findest du hier.

Bei YOUR_SECURE_PASSWORD musst du ein sicheres Passwort eintragen. Dieses wird benötigt um auf das Admin Portal von wg-easy zu zugreifen. Du kannst dieses mit folgendem Befehl generieren:

openssl rand -base64 32

Zufälliger String generieren unter MacOS & Linux

Schliesse und speichere das File mit Ctrl + X und dann Y

Starte den Docker Container nun mit folgendem Befehl

sudo docker compose up -d

Nun musst du einige Minuten warten. Nach ca. 3 Min läuft dann der Wireguard VPN Server.

Port-Weiterleitungen konfigurieren

Damit wir von Aussen nun auch eine Verbindung herstellen können, müssen wir eine Port-Weiterleitung auf unserem Router erstellen.

Dazu müssen wir das User-Interface von unserem Router öffnen. Hierzu benötigst du die IP-Adresse deines Routers, wenn du diese nicht angepasst hast findest du sie in folgender Tabelle:

Internet-Anbieter/Hersteller Router Router IP-Adresse
Swisscom 192.168.1.1
Wingo 192.168.0.254
Sunrise 192.168.1.1
UPC 192.168.0.1
Salt 192.168.1.1
Fritzbox 192.168.178.1
Init7 192.168.1.1/2.1
UniFi 192.168.1.1

Suche auf dem Interface von deinem Router nach “Portweiterleitung”, dies ist bei der Swisscom Internet-Box unter Netzwerk zu finden.

Portweiterleitungen auf der Swisscom Internet-Box

Erstelle eine neue Portweiterleitung mit dem UDP-Port 51820 als Ziel-/Eingangsport und deinem Pi/Server als Zielgerät.

Beispiel Portweiterleitung

Speichere die Änderungen. Nun ist dein VPN bereit und wir können im nächsten Schritt die Verbindungen erstellen.

Konfiguration erstellen

Um eine Konfiguration zu erstellen, besuche das Admin Panel von wg-easy indem du die IP-Adresse deines Pi/Server gefolgt vom Port 51821 im Browser eingibst.

Es erscheint eine Anmeldemaske. Melde dich mit dem im Docker Compose File definierten Passwort an.

Anmeldemaske wg-easy

Nun erscheint eine Liste mit all deinen Konfigurationen. Diese sollte bei dir leer sein, da du noch keine Konfigurationen erstellt hast.

Klicke auf “New” um eine neue Konfiguration zu erstellen.

Anschliessend wirst du nach einem Namen für die Konfiguration gefragt. Trage hier etwas ein, womit du die Konfiguration später erkennst.

Nach einem Klick auf “Create” ist die Konfiguration erstellt. Sie wird nun in der Liste angezeigt.

Verbindung herstellen

Nachdem du die Konfiguration erstellt hast, kannst du dich mit einem Client damit verbinden. Auf einem Smartphone benötigst du die WireGuard App. Diese kannst du im Store deines Smartphones einfach herunterladen. Die weiteren Client-Apps sind auf der offiziellen Website von WireGuard zu finden.

Am Smartphone musst du auf das Plus klicken und dann “Aus QR-Code erstellen” auswählen. Anschliessend musst du am PC bei der gewünschten Konfiguration auf das QR-Code Icon klicken und dann mit dem Smartphone den QR-Code einscannen. Anschliessend kannst du mit dem Smartphone eine Verbindung zum VPN-Server herstellen.

QR-Code anzeigen

Auf einem Computer kannst du die Konfigurationsdatei mit dem “Download-Knopf” herunterladen und in der Client-Anwendung importieren.

Konfiguration herunterladen

Das wars nun mit der Installation von WireGuard auf deinem Raspberry Pi oder Debian Server. Ich hoffe ich konnte dir weiterhelfen. Wenn du noch Fragen hast, kannst du diese gerne in den Kommentaren stellen.

Links

Den Artikel habe ich in ähnlicher Form auch auf Medium veröffentlicht.