Gedächtnisstützen – virtuell und schnell

Wireguard VPN und Ubuntu 20.04

Ursprünglich habe ich diese Anleitung für Ubuntu 18.04 geschrieben, seit 20.04 ist der Ablauf kürzer.
Vermutlich wird 18.04 noch bei vielen länger im Einsatz sein, daher lasse ich die Hinweise noch stehen.

Achtung: Für LAN Games ist Wireguard nur dann hilfreich, wenn man direkt im Spiel die Zieladresse/IP angeben kann. Ich vermute, dass aufgrund der Layer 3 Verbindung kein Broadcast übertragen wird.

Ubuntu 20.04 Nutzer können direkt bei Schritt 2 starten.

Schritt 1: Image und Header – nur für Ubuntu 18.04

#eventuell notwendige Voraussetzungen im Kernel bereitstellen
apt install linux-image-virtual
apt install linux-headers-$(uname -r)
apt install software-properties-common

#Wireguard PPA hinzufügen, entfällt spätestens ab Ubuntu 20.04
add-apt-repository ppa:wireguard/wireguard

#Reboot nur notwendig, wenn Kernelveränderung durchgeführt wurde
reboot

Schritt 2: Wireguard installieren, serverkey generieren

#Pakete installieren
apt install wireguard-dkms wireguard-tools

#Dateiberechtigungen einstellen 
umask 077

#Schlüssel erzeugen
wg genkey | tee privatekey | wg pubkey > publickey
wg genpsk > preshared

#Alternative Schlüsselerzeugung, zunächst wird ein privatekey erstellt
wg genkey > privatekey
#nun aus dem privatekey der publickey
wg pubkey < privatekey > publickey

#Erstellen eines Preshared Keys für zusätzliche Absicherung der Verbindung:
wg genpsk > psk1
wg genpsk > psk2
[...]

Nun existieren die Dateien privatekey mit dem Privaten Schlüssel und die Datei publickey mit dem öffentlichen Schlüssel.
In den Dateien psk1,psk2,psk3 … findet sich der jeweilige Pre-Shared-Key, am Besten für jeden Teilnehmer einen neuen erzeugen.

Schritt 3: Serverkonfiguration erstellen


Gegenüber dem Verbindungspartner identifizieren sich die Teilnehmer mit dem publickey – dem öffentlichen Schlüssel. Daher landet dieser Schlüssel jeweils im Bereich [Peer].
Um die Verbindung zusätzlich abzusichern wird für jeden Peer ein eigener Pre-Shared-Key (PSK) erzeugt (siehe oben)

Es müssen mindestens anstatt der Begriffe „serverprivatekey„, „peerOnepublickey„, „peerOnepresharedkey“ usw. die Werte aus den Dateien eingefügt werden.
Sollte das Interface nicht „eth0“ benannt sein muss auch dieses geändert werden.

nano /etc/wireguard/wg0.conf

[Interface]
Address = 192.168.11.1/24
Address = fd86:ea04:1115::1/64
SaveConfig = true
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 54321
PrivateKey = serverprivatekey

#Teilnehmer 1
[Peer]
PublicKey = peerOnepublickey
PresharedKey = peerOnepresharedkey
AllowedIPs = 192.168.11.2/32, fd86:ea04:1115::2/128

#Teilnehmer 2
[Peer]
PublicKey = peerTwopublickey
PresharedKey = peerTwopresharedkey
AllowedIPs = 192.168.11.3/32, fd86:ea04:1115::3/128

Schritt 4: Firewall konfigurieren, falls ssh nicht den Standartport nutzt dieses hier anpassen

ufw allow 54321
ufw allow ssh
ufw default allow forward
ufw enable

Schritt 5: Keys für den Client (Peer) generieren, Config erstellen

wg genkey | tee peeroneprivatekey | wg pubkey > peeronepublickey

nano peerone.conf

[Interface]
Address = 192.168.11.2/24
Privatekey = peerOneprivatekey
DNS = 192.168.11.1

#Der Wireguard Server, anstatt einer festen ip kann 
# auch ein DNS Name angegeben werden ( wireguard.example.com )
[Peer]
PublicKey = serverpublickey
PresharedKey = peerOnepresharedkey
AllowedIPs = 0.0.0.0/0
Endpoint = serverip:54321

Schritt 6 -optional- : QR Code aus der Client Config erzeugen und mit der Wireguard APP auf dem Smartphone scannen

apt install qrencode
qrencode -t ansiutf8 < peerone.conf

Das Ganze läuft seit einigen Monaten im Dauer-On Modus auf dem Telefon und frisst ca. 20% mehr Akku über den ganzen Tag, der Wechsel zwischen Mobilfunk und Wlan ist nahtlos und sehr schnell – Ich bin jetzt schon begeistert!
P.s: im Vergleich zu OpenVPN ist der Akkuverbrauch etwas niedriger.

Update 05/2020 – leichte Anpassungen zur Lesbarkeit, kurze Info zu Ubuntu 20.04

Schreibe einen Kommentar zu cardes Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

6 Gedanken zu “Wireguard VPN und Ubuntu 20.04”