Aktualisierungen gibt es im Changelog, als RSS-Feed
oder im [matrix] Raum #prhdb-changes:nitro.chat

Privacy-Handbuch

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 unter­stützt, können aber auch (irgendwie) realisiert werden.

Vorbereitung des eigenen Rechners

  1. Als erstes ist die Wireguard Software zu installieren:

    Ubuntu: > sudo apt install wireguard
    Fedora: > sudo dnf install wireguard-tools
  2. Idealerweise erzeugt jeder Peer seine Schlüssel selbst. Dann müssen nur die öffentliche Schlüssel ausgetauscht werden, was auch über einen unsicheren Kanal erfolgen kann: > sudo su
    # cd /etc/wireguard
    # umask 077
    # wg genkey | tee privatekey | wg pubkey | tee publickey
    bjqCt8IJ20zbfn3kLxvJ3mYGjTF+oe7Dg5vgyKqG4gU=

    Der am Ende angezeigte öffentliche Schlüssel ist zu kopieren den anderen Peers zur Verfügung zu stellen (beispw. beim VPN-Provider hoch­laden). 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).

WireGuard Server von VPN-Providern nutzen

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.

  1. 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]
    PrivateKey = <privater Schlüssel>
    Address = <IP-Addr. für den eigenen Peer>/32
    DNS = <IP-Addr. vom DNS Server>

    [Peer]
    PublicKey = <öffentlicher Schlüssel des Servers>
    Endpoint = <IP-Addr. vom Server>:<Port>
    AllowedIPs = 0.0.0.0/0,::/0
  2. Die Konfigurationsdatei(en) kann man mit einem Kommando im NetworkManager importieren:

    > sudo nmcli con import type wireguard file wg0.conf
  3. Standardmäß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:

  4. 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.

WireGuard Server für ein kleines Firmmennetz oder privates Heimnetz

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]
PrivateKey = <privater Schlüssel des Servers>
Address = 172.22.22.1/25
ListenPort = 51820

[Peer]
PublicKey = <öffentlicher Schlüssel des ersten Peer>
AllowedIPs = 172.22.22.211/32

[Peer]
PublicKey = <öffentlicher Schlüssel des zweiten Peer>
AllowedIPs = 172.22.22.212/32

[Peer]
PublicKey = <öffentlicher Schlüssel des dritten Peer>
AllowedIPs = 172.22.22.213/32
...

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 51820
Fedora: > sudo firewall-cmd --add-port=51820/udp --permanent --zone=public

Den 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

WireGuard Client für ein Firmen- oder privates Heimnetz (Roadwarrior)

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.

Besonderheiten für QubesOS

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.