2448309

Wir zeigen Ihnen wie Sie ein VPN mit Wireguard einrichten

15.10.2019 | 10:02 Uhr | Thorsten Eggeling

Ein VPN (Virtual Private Network) baut eine verschlüsselte Verbindung zwischen PCs beziehungsweise Netzwerken auf. Mit Wireguard gelingt das mit vergleichsweise geringem Konfigurationsaufwand.

VPN kommt zum Einsatz, wenn Sie beispielsweise über ein öffentliches WLAN eine sichere Verbindung zum heimischen Server oder Netzwerk aufbauen wollen. Das eignet sich zur sicheren Steuerung von Smart-Home-Geräten, für die Nutzung von Telefondiensten oder den Austausch von Dateien. Ein VPN lässt sich außerdem so konfigurieren, dass der komplette Internetzugriff verschlüsselt über das Netzwerk zu Hause läuft. Das sorgt in fremden WLANs für mehr Sicherheit – etwa beim Onlinebanking. Eine noch sehr junge VPN-Software ist Wireguard ( www.wireguard.com ). Gegenüber anderen VPN-Lösungen wie etwa Open VPN (siehe www.pcwelt.de/40450 ) ist die Konfiguration vergleichsweise einfach und der Aufbau der Verbindungen steht relativ schnell.

Service: Den Text der Befehlszeilen sowie die Wireguard-Beispielkonfiguration können Sie über www.pcwelt.de/wguard abrufen. Es gibt auch Beispiele und Anleitungen für Ipv6-Verbindungen. In diesem Artikel behandeln wir nur IPv4.

Lesetipp Sichere Verbindung ins Heimnetz einrichten: Eigenes VPN

Wireguard installieren

Wir gehen bei unserem Konfigurationsbeispiel davon aus, dass in Ihrem Netzwerk ein Linux-PC mit Ubuntu läuft, der auch als VPN-Server dienen soll. Ein Raspberry Pi mit Raspbian lässt sich ebenfalls verwenden. Clients, also Geräte, die sich per VPN mit Ihrem Netzwerk verbinden sollen, können unter Linux oder Windows laufen. Die nötige Software ist außerdem auch für Android verfügbar (siehe Kasten).

Ubuntu-Nutzer installieren Wireguard auf dem Server und den Client-PCs in einem Terminalfenster über ein PPA (drei Zeilen):

sudo add-apt-repository ppa:wireguard/wireguard
sudo apt update
sudo apt install wireguard qrencode

Auf einem Raspberry Pi müssen Sie die Software mit folgenden vier Befehlen

sudo apt install libmnl-dev build-essential git qrencode
git clone https://git.zx2c4.com/WireGuard
cd WireGuard/src
make && sudo make install

selbst kompilieren.

Serverkonfiguration: Unter „[Interface]“ stehen die Daten für den Server. „[Peer]“-Abschnitte enthalten die öffentlichen Schlüssel und IP-Adressen der Clients.
Vergrößern Serverkonfiguration: Unter „[Interface]“ stehen die Daten für den Server. „[Peer]“-Abschnitte enthalten die öffentlichen Schlüssel und IP-Adressen der Clients.

Wireguard für Server und Client konfigurieren

Die Wireguard-Software für Server und Clients ist identisch, nur die Konfiguration unterscheidet sich.

Schritt 1: Führen Sie auf dem Server die folgenden drei Befehle aus:

sudo mkdir /etc/wireguard (umask 077 && printf "[Interface]\nPrivateKey = " | sudo tee /etc/wireguard/wg0.conf > /dev/null)
wg genkey | sudo tee -a /etc/wireguard/wg0.conf | wg pubkey | sudo tee /etc/wireguard/publickey

Damit erzeugen Sie die Datei „/etc/wireguard/wg0.conf“ (Zeile 1) und tragen dort den Konfigurationsabschnitt

[Interface]
PrivateKey =

mit dem für die Authentifizierung benötigten privaten Schlüssel ein. Der dritte Befehl erstellt den öffentlichen Schlüssel in der Datei „/etc/wireguard/publickey“.

Schritt 2: Öffnen Sie dann die Konfigurationsdatei in einem Editor:

sudo gedit /etc/wireguard/wg0.conf &

Ergänzen Sie die Zeilen gemäß der ersten Abbildung auf der rechten Seite. Die Bezeichnung der Netzwerkschnittstelle, in unserem Beispiel „enp0s31f6“, passen Sie für Ihr System an. Wie diese lautet, erfahren Sie über den Befehl „ip addr“. Die iptables-Regeln sorgen dafür, dass Clients nicht nur auf den Server, sondern auch auf das gesamte Heimnetzwerk zugreifen können. Wenn Sie das nicht wünschen, entfernen Sie die beiden Zeilen.

Alle IP-Adressen müssen bei Wireguard im CIDR-Format (Classless Inter-Domain Routing) angegeben werden. Einen Umrechner dafür finden Sie unter www.ipaddressguide.com/cidr . Die IP-Adressen sind frei wählbar, Sie sollten sich jedoch an unserem Beispiel orientieren, damit es in anderen Netzwerken nicht zu Adresskonflikten kommt.

Schritt 3: Auf dem Client-PC führen Sie ebenfalls Schritt 1 durch. Die komplette Konfigurationsdatei muss dann so aussehen wie in zweiten Abbildung auf dieser Seite. Hinter „PublicKey =“ tragen Sie den Schlüssel aus der Datei „/etc/wireguard/publickey“ des Servers ein. Hinter „Endpoint=“ steht die aus dem Internet erreichbare öffentliche IP-Adresse des Servers oder sein Domainname. Wenn Ihr Internetanbieter keine feste IP-Adresse liefert, verwenden Sie einen Anbieter für dynamische IP-Adressen. Im Router muss außerdem eine Weiterleitungsregel („Port forwarding“) für den Port „51820“ auf den Server-PC eingerichtet sein (siehe www.pcwelt.de/1745578 ).

„AllowedIPs = 0.0.0.0/0“ bewirkt, dass der gesamte Internetverkehr durch den VPN-Tunnel über Ihr heimisches Netzwerk läuft und Sie auf das lokale Netzwerk sowie den Server zugreifen können. Eine Zeile wie

AllowedIPs = 100.64.0.1/32, 192.168.178.0/24

Würde beispielsweise den Zugriff auf den Server und das heimische Netzwerk erlauben, während alle anderen Zugriffe über die aktuelle Internetverbindung des Clients laufen.

Schritt 4: Ergänzen Sie auf dem Server hinter „PublicKey=“ den öffentlichen Schlüssel des Clients aus der Datei „/etc/wireguard/publickey“ des Client-PCs. Wenn mehrere Clients zugreifen sollen, vervielfältigen Sie den Abschnitt „[Peer]“ und tragen den öffentlichen Schlüssel des jeweiligen Clients ein. Hinter „AllowedIPs=“ passen Sie die IP-Adresse mit „100.64.0. 3/32“, „100.64.0.4/32“ und so weiter an.

Clientkonfiguration: Hinter „[Endpoint]“ steht die IP-Adresse oder der Domainname des Servers sowie der Port, den Sie beim VPN-Server festgelegt haben.
Vergrößern Clientkonfiguration: Hinter „[Endpoint]“ steht die IP-Adresse oder der Domainname des Servers sowie der Port, den Sie beim VPN-Server festgelegt haben.

Wireguard starten

Starten Sie Wireguard zuerst auf dem Server mit dem Befehl

sudo wg-quick up wg0

Danach verwenden Sie denselben Befehl auf dem zugreifenden Client-PC. Sie haben jetzt Zugriff auf den Server-PC und sein Netzwerk. Außerdem laufen alle Internetverbindungen über den heimischen Internetzugang. Davon können Sie sich überzeugen, indem Sie die öffentliche IP-Adresse beispielsweise über www.whatsmyip.org ermitteln.

wg show

zeigt Ihnen die Konfiguration und den Status der Verbindung an. Um die Verbindung auf dem Client-PC zu beenden, verwenden Sie folgendes Kommando:

sudo wg-quick down wg0

Auf dem Server ausgeführt, stoppen Sie damit den VPN-Dienst. Die beiden Befehle sind auch nötig, wenn Sie etwas an der Konfiguration ändern und die Konfiguration neu einlesen müssen.

Wenn Wireguard beim Systemstart automatisch starten soll, beenden Sie den Server zuerst mit wg-quick down wg0 und geben dann diese Befehlszeile

sudo systemctl enable --now wgquick@wg0

ein.

Lesetipp Die besten VPN-Dienste 2019 im Vergleich

VPN für Windows und Smartphones

Für Windows, Android und iOS können Sie das kostenlose Tunsafe verwenden ( https://tunsafe.com ).

Unter Windows erfolgt die Konfiguration über die Datei „TunSafe.conf“, welche die Einträge enthalten muss wie unter „Wireguard konfigurieren“ beschrieben.

Für Smartphone-Nutzer wäre es zu umständlich, die langen Schlüssel einzutippen. Daher erstellen Sie über die Befehlszeile

sudo qrencode -o conf.png < /etc/wireguard/wg0.conf

auf dem Client-PC eine PNG-Datei mit einem QR-Code, den Sie danach mit der Tunsafe-App einlesen.

Sollen ein Client-PC und ein Smartphone die VPN-Verbindung gleichzeitig nutzen, generieren Sie in der App einen neuen privaten und öffentlichen Schlüssel und stellen eine andere IP-Adresse ein. Den neuen öffentlichen Schlüssel und die IP-Adresse tragen Sie danach auf dem Server in der Konfigurationsdatei „wg0.conf“ in einen zweiten „[Peer]“-Abschnitt ein.

PC-WELT Marktplatz

2448309