Wireguard installieren

Wireguard installieren – Noch eine Anleitung …?

Wireguard Installations-Anleitungen gibt es doch schon einige; aber irgendwie war für mich manchmal zu viel SchniggSchnagg oder zu wenig Präzise. Deswegen tippe ich hier mal meine Zeilen nieder und vielleicht hilft es ja den einen oder anderen – auf jeden Fall aber mir 😉

Voraussetzung

Ich gehe davon aus, dass der Raspberry schon einsatzbereit ist. Also werde ich hier nicht darauf eingehen, wie man die SD-Karte mit einem Image beschreibt, oder wie der Zugriff auf diesen erfolgt. Sollten da noch Unklarheiten vorhanden sein, kann man gern an mir gern schreiben und wir gucken, ob wir das Kind geschaukelt bekommen.

Des Weiteren nutze ich den Port 47111 und der Pi ist über ein LAN-Kabel angeschlossen.

Wireguad (nun endlich ) installieren – Variante 1 PiVPN

Hier zeige ich Variante 1, die Installation mittels dem PiVPN Installations-Scriptes.

curl -L https://install.pivpn.io | bash

Dann klickt man sich durch die Installation, welche eigentlich sehr selbsterklärend ist.

Kurze Anmerkung zur Funktionsweise der Schlüssel:

Wireguard funktioniert mit Hilfe von „Schlüsseln“. Jede Stelle – so nenne ich es mal – hat dabei zwei Schlüssel. Einen privaten und einen öffentlichen. Jeder Client benötigt dabei den öffentlichen Schlüssel des Servers und der Server jeden öffentlichen Schlüssels der Clients. Der private Schlüssel des Servers bleibt beim Server und der des jeweiligen Clients auch beim Client.

Nun, wenn Wireguad installiert ist, geht es darum den Server und die Clients fertig einzurichten:

sudo -i

cd /etc/wireguard

umask 077

Zuerst legen wir die Server-Schlüssel an, welcher danach gleich angezeigt wird:

wg genkey | tee privatekey | wg pubkey | tee pubkey

Den kopieren wir uns gleich einmal irgendwo in ein Textdokument. Dazu noch den privaten Server-Schlüssel:

cat privatekey

Haben wir den, erstellen wir die Server-Konfigurations-Datei:

nano wg0.conf

Da kommt folgender Inhalt rein (Inhalte, welche orange markiert sind, müssen an eure Anforderungen angepasst werden und sind nur Beispiele):

[Interface]
PrivateKey = <Euer privater Server-Schlüssel>
Address = 192.168.90.1/24
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
ListenPort = 47111

Mit Strg + O speichern und mit Strg + x den Editor schließen.

Erklärung:

Mein normales Heimnetzwerk hat die typische IP-Adressierung: 192.168.178.x. Um Konflikten mit der IP-Verteilung des VPN’s aus dem Weg zu gehen, nehmen wir ein anderes Subnetz:

192.168.90.x

Selbstverständlich könnt ihr das nach euren Belieben ändern!

Jetzt legen wir das Schlüsselpaar für den ersten Clienten an, mein Android-Telefon:

wg genkey | tee ultra_baba_private.key | wg pubkey > ultra_baba_public.key

Nun lassen wir uns von dem Clienten den öffentlichen Schlüssel anzeigen und kopieren diesen:

cat ultra_baba_public.key

Nun fügen wir den Client untern, in die Server-Konfig, wg0.conf, mit ein:

#Ultra BaBa
[Peer]
PublicKey = <Öffentlicher Schlüssel des Clienten>
AllowedIPs = 192.168.90.2/32

Mit Strg + O speichern und mit Strg + x den Editor schließen.

Jetzt starten wir Wireguard mit folgenden Befehl:

wg-quick up wg0

Mit folgenden Befehl, sehen wir, ob soweit alles geklappt hat:

wg show

Jetzt legen wir noch die Konfigurationsdatei für den Clienten an:

nano ultra_baba.conf

[Interface]
PrivateKey = <Privater Schlüssel des Clienten>
Address = 192.168.90.2
DNS = 192.168.90.1 # Mein Server ist auch gleichzeit der DNS-Server; sonst gebt z.B. 1.1.1.1 ein

[Peer]
PublicKey = <Öffentlicher Schlüssel des Servers>
Endpoint = xxxx.ddnss.de:47111 # eure öffentliche IP oder DNS
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

Mit Strg + O speichern und mit Strg + x den Editor schließen.

Damit hätten wir soweit alles fertig und testen, ob der Client sich mit dem Server verbinden kann. Auf meinem Samsung lade ich die App: „Wireguard“ herunter. Diese starten und unten rechts auf das „+“ klicken. Jetzt scannen wir den QR-Code, welchen wir auf dem Server so anlegen:

sudo qrencode -t ansiutf8 < "/etc/wireguard/ultra_baba.conf"

Hat alles geklappt, sieht es so aus:

Wenn ihr Änderungen an der wg0.conf gemacht hat, dann die Schnittstelle stoppen und wieder starten:

wg-quick down wg0

wg-quick up wg0

Mögliche Fehlerquellen

Keine Verbindung zum Server möglich:

  • Ist überall der richtige Port angegeben?
  • Ist der Port im Router an dem richtige Gerät freigegeben?
  • Stimmt deine öffentliche IP oder DNS?
  • Stimmen die Schlüssel überall überein?
  • Hat der Pi eine Software-Firewall (z.B. ufw) und ist diese konfiguriert? [Standard-mäßig, ist keine aktiv!]
  • Wenn gar nichts geht, einfach mal alle Schlüssel neu anlegen und neu eintragen!
Kommentare sind geschlossen