Installation
Die Installation von Wireguard beschränkt sich auf ein (noch out of tree) Kernelmodul und den wireguard-tools.
yaourt --noconfirm -S wireguard-dkms wireguard-tools linux-headers
Es müssen die Kernel Headers in der passenden Version zum laufenden Kernel installiert sein. Unter Manjaro Linux wird ein einfaches Schema dafür verwendet. Der Paketname lautet: linuxYYY-headers. YYY steht für die Kernelversion. Zum Beispiel: linux418-headers ist ein Paketname. Das Paket linux-headers zeigt immer auf den letzten Kernel.
Scenario
Es sollen 3 Rechner über ein privates Netzwerk 10.0.0.0/24 über das Wireguard VPN miteinander verbunden werden. Der Server am Standort A ist über eine DynDNS Adresse server.dyndns.com über das Internet erreichbar. Der Server bekommt die Adresse 10.0.0.1 im VPN. Am Standort B sollen 2 Clients mit den Adressen 10.0.0.2 und 10.0.0.3 mit dem Server verbunden werden.
Als Port wird hier in dem Beispiel 33333 verwendet. Der Port ist frei wählbar. Der Port muss bei NAT am Router auf die entsprechende IP Adresse im internen Netz zeigen. Wireguard verwendet das zustandslose Protokoll UDP.
Schlüssel anlegen
1. Schritt
Als Root die Dateien publickey und wg0.conf anlegen. Diese werden auf allen Maschinen benötigt und bilden die gemeinsame Basis für die Konfiguration von Wireguard.
cd /etc/wireguard
umask 077
printf "[Interface]\nPrivateKey = " > wg0.conf
wg genkey | tee -a wg0.conf | wg pubkey > publickey
mcedit /etc/wireguard/wg0.conf
2. Schritt
Konfiguration Server
[Interface]
PrivateKey = DiesesIstDerGeneriertePrivateKey=
ListenPort = 33333
Address = 10.0.0.1/24
[Peer]
PublicKey = DiesesIstDerPublicKeyDesClients1=
AllowedIPs = 10.0.0.2/32
[Peer]
PublicKey = DiesesIstDerPublicKeyDesClients2=
AllowedIPs = 10.0.0.3/32
Konfiguration Clients
Client 1
[Interface]
PrivateKey = DiesesIstDerGeneriertePrivateKey=
ListenPort = 33333
Address = 10.0.0.3/24
[Peer]
PublicKey = DiesesIstDerPublicKeyDesClients1=
AllowedIPs = 10.0.0.1/24
EndPoint = server.dyndns.com:33333
Client 2
[Interface]
PrivateKey = DiesesIstDerGeneriertePrivateKey=
ListenPort = 33333
Address = 10.0.0.3/24
[Peer]
PublicKey = DiesesIstDerPublicKeyDesClients2=
AllowedIPs = 10.0.0.1/24
EndPoint = server.dyndns.com:33333
Service aktivieren
sudo systemctl enable wg-quick@wg0
Service neustarten
sudo wg-quick down wg0; sudo wg-quick up wg0
Achtung: Wenn man Änderung auf einem entfernten PC durchführt und für die Verbindung Wireguard verwendet, so sollte man auf jeden Fall die Konfiguration doppelt prüfen. Kommt es zu einem Fehler, dann sperrt man sich selbst aus.
IPv4 Forwarding
Ich bevorzuge die Aktivierung des Forwarding nur für das wg0 Interface freizuschalten.
-
Für alle Interfaces
sysctl net.ipv4.ip_forward=1
-
Nur für Wireguard IPv4-forwarding erlauben
sysctl net.ipv4.conf.wg0.forwarding=1
Persistierung der Einstellung Forwarding
Die Datei /etc/sysctl.d/30-ipforward.conf mit folgenden Inhalt anlegen:
net.ipv4.ip_forward=1
Überprüfung Einstellung
Nach einem Neustart kann die Verarbeitung der Datei mit sysctl -a überprüft werden.
sudo sysctl -a | grep net.ipv4.conf.wg0.forwarding