WireGuard ist ein Peer-2-Peer VPN, das durchgehend moderne Kryptografie für Verschlüsselung und Authentifizierung verwendet. Im Unterschied zu OpenVPN und IPsec werden Client-Server Architekturen nicht direkt unterstützt, können aber auch (irgendwie) realisiert werden.
Jeder WireGuard Peer stellt einen IP-Adressbereich zur Verfügung, der transparent mit den Netzen der anderen Peers über eine unsichere Internetverbindung gekoppelt wird.
Einige VPN-Provider vergewaltigen das Konzept und bauen damit individuelle Client-Server ähnliche Infrastrukturen, indem die Client Peers nur die eigene IP-Adresse (ein "/32" Netz) verwenden und auf der Seite des VPN-Servers das gesamte Internet bereitgestellt wird.
Als erstes ist die Wireguard Software zu installieren:
Ubuntu: > sudo apt install wireguardDer am Ende angezeigte öffentliche Schlüssel ist zu kopieren den anderen Peers zur Verfügung zu stellen (beispw. beim VPN-Provider hochladen). Man findet ihn in "/etc/wireguard/publickey".
Den privaten Schlüssel aus der Datei "privatekey" braucht man im nächsten Schritt in der Konfigurationsdatei für die WireGuard Verbindung(en).
Viele VPN-Provider haben individuelle Lösungen entwickelt, um WireGuard für ihre Kunden in eine Client-Server ähnliche Infrastruktur zu pressen und WireGuard VPN-Server anbieten zu können.
Einige VPN-Provider (z.B. ProtonVPN) bieten fertige Konfigurationen für WireGuard inklusive der Schlüssel zum Download an. Bei anderen VPN-Providern muss man seinen selbst erstellten öffentlichen Schlüssel auf der Webseite hochladen und sich den Schlüssel für den WireGuard Server sowie die zugeteilte IP-Adresse für den eigenen Peer und den DNS-Servers von der Webseite holen.
Man erstellt sich eine kleine Konfigurationsdatei "wg0.conf" für die Verbindung zum WireGuard Server. Wenn man zwischen mehreren VPN Servern wechseln möchte, muss man für jeden WireGuard Server eine eigene Konfigurationsdatei "wgX" erstellen. Ein Beispiel:
[Interface]Die Konfigurationsdatei(en) kann man mit einem Kommando im NetworkManager importieren:
> sudo nmcli con import type wireguard file wg0.confStandardmäßig wird die importierte WireGuard VPN Verbindung sofort automatisch aktiviert.
Das kann man in der Konfiguration im NetworkManager nachträglich deaktivieren und außerdem könnte man der VPN Verbindung einen sinnvollen Namen geben:
Zukünftig kann man die WireGuard VPN Verbindung mit einem Klick im NetworkManager Applet aktivieren oder sie auch automatisch bei Verbindung mit einem bestimmten Netzwerk aktivieren.
Wenn man einen WireGuard Server für den Zugang zum privaten Firmen- oder Heimnetz verwenden möchte, braucht man eine Konfigurationsdatei, die als /etc/wireguard/wg0.conf zu speichern ist.
(Die IP-Adressen für das Netzwerk und die Peers sind Beispiele - bitte selbst anpassen an das eigene Netzwerk.)
[Interface]Bei der Firewallkonfiguration des Servers ist darauf zu achten dass Incoming UDP Traffic auf Port 51820 erlaubt ist, damit die Peers eine WireGuard VPN-Verbindung aufbauen können.
Debian: > sudo uwf proto udp allow 51820Den WireGuard VPN-Server startet und stoppt man mit folgenden Kommandos:
> sudo wg-quick up wg0
> sudo wg-quick down wg0
Mit dem Systemd kann man den Start des VPN-Servers beim Booten automatisieren:
> sudo systemctl enable wg-quick@wg0.service
> sudo systemctl daemon-reload
Um den automatischen Start beim Booten wieder zu enfernen sind folgende Komandos nötig:
> sudo systemctl stop wg-quick@wg0
> sudo systemctl disable wg-quick@wg0.service
> sudo rm -i /etc/systemd/system/wg-quick@wg0*
> sudo systemctl daemon-reload
> sudo syytemctl reset-failed
Wenn man als Road Warrior bzw. im Home Office Zugriff auf interne Resourcen in der Firma benötigt oder aus dem Hotel auf das private Heimnetz zugreifen will, kann man sich die Konfiguration für den WireGuard Client im NetworkManager zusammenklicken.
Hinweis für QubesOS Linux: Die Einstellungen werden nicht in der Net-VM vorgenommen sondern in dem Template, das für die Net-VM verwendet wird!
Um zu verhindern, dass die WireGuard Schlüssel in die Arbeits-VMs exponiert werden und die Arbeits-VMs eine WireGuard Verbindung zum VPN-Server aufbauen, die die QubesOS Firewall umgeht, muss man für die Net-VM eine eigene Template-VM erstellen.