Raspberry Pi mit WireGuard als VPN Server

Aufbau und Setup

  • Raspberry Pi 3 mit Raspbian Stretch Lite
  • der Pi hängt im LAN hinter dem Hauptrouter
  • LAN: 192.168.150.0/24 (Pi: 192.168.150.200)
  • VPN Netz: 10.10.10.0/24 (VPN Server: 10.10.10.1, VPN Client1: 10.10.10.2, VPN Client2: 10.10.10.3)
  • Clients als Road Warrior (Smartphone und Notebook)

Installation

WireGuard auf dem Raspberry Pi installieren. (Zur Vereinfachung alles als root.)

Aktivieren von IPv4 forwarding in der /etc/sysctl.conf

Den Pi neu starten und die Änderungen nochmal überprüfen.

Keys generieren

Die Erstellung der keys wird im Verzeichnis /etc/wireguard durchgeführt.
Um sicherzustellen dass alle Dateien die richtigen Berechtigungen haben, muss die umask auf 077 gesetzt sein.

Server Key generieren

private und public key für den Server

Client Keys generieren

private und public key für die Clients

Server Konfiguration

Dazu wird die Datei /etc/wireguard/wg0.conf erstellt. (Die neue VPN Schnittstelle ist wg0.)

Client Konfiguration

Für jeden Client erstelle ich eine eigene Konfigurationsdatei.

/etc/wireguard/client1.conf

/etc/wireguard/client2.conf

Als DNS Server nutze ich meinen eigenen im lokalen LAN und mit 0.0.0.0/0 wird alles (der komplette traffic) durch das VPN geroutet.
Da ich mich hinter einem NAT befinde, wird mit PersistentKeepalive = 25 versucht die Verbindung aufrecht zu halten.

WireGuard starten

WireGuard beim Systemstart automatisch laden.

WireGuard Status

Status der aktiven wg0 Schnittstelle.

Firewall Konfiguration

Der UDP Port 51820 muss an den internen VPN Server weitergeleitet werden. (hier für meinen MikroTik Router)

Road Warrior – Android Client

Für Android nehme ich die offizielle WireGuard App aus dem Google Play Store.

Die Einstellungen der App kann mittels einer Datei, QR-Code oder manuell erfolgen. Auf dem Server wird ein QR-Code für den Client1 erstellt.

QR-Code für den Client1 erstellen.

Abscannen und fertig. Ohne die mühselige tipperei auf dem Smartphone.

Road Warrior – Windows Client

Ein Windows Client (aktuell noch pre-alpha) ist jetzt verfügbar https://www.wireguard.com/install/

Nach der Installation die (auf dem Server erzeugte) client2.conf importieren

und die VPN Verbindung aktivieren.

Der pre-alpha Windows Client macht jetzt schon einen guten Eindruck und läuft problemlos.

Road Warrior – Linux Client

… kommt …

Fazit

Im Vergleich zu OpenVPN ist die Einrichtung und Konfiguration, trotz der langen Anleitung, in wenigen Minuten erledigt.
Der Tunnelaufbau und das Routing funktionierten auf Anhieb reibungslos und schnell.

17.05.2019 – Nach ca. 6 Wochen bin ich immer noch mehr als zufrieden! Schneller Tunnelaufbau und immer eine stabile Verbindung!

Links

 

4 Gedanken zu “Raspberry Pi mit WireGuard als VPN Server”

  1. unter Debian BUSTER musste ich noch im ersten Schritt die PGP Keys installieren:

    apt-key adv –keyserver keyserver.ubuntu.com –recv-keys 04EE7237B7D453EC
    apt-key adv –keyserver keyserver.ubuntu.com –recv-keys 7638D0442B90D010

    • Da kann ich momentan leider nichts zu schreiben.
      – Habe keinen IPv6 Anschluss.
      – Bisher keine Erfahrung mit IPv6.

Schreibe einen Kommentar