So richten Sie Wireguard VPN unter Linux ein

Wireguard ist ein leistungsstarker Open-Source-Virtual-Private-Network (VPN)-Daemon, der sowohl auf Desktop- als auch auf Mobilgeräten ausgeführt werden kann. Es bietet eine schnelle und leichte Alternative zu traditionellen VPN-Lösungen wie IPsec und OpenVPN. Hier zeigen wir Ihnen, wie Sie Wireguard installieren und eine einfache VPN-Konfiguration mit drei Linux-Maschinen erstellen.
Inhaltsverzeichnis
- Warum Wireguard als VPN-Lösung verwenden?
- Wireguard beschaffen
- Einrichten des Wireguard-Servers
- Einrichten und Verbinden des Wireguard-Clients
- Hinzufügen eines zweiten Clients zum Server
- Testen des Wireguard-Netzwerks
Warum Wireguard als VPN-Lösung verwenden?
Einer der größten Verkaufsargumente von Wireguard ist, dass es ein schneller und leichter VPN-Daemon ist. Im Gegensatz zu traditionellen Lösungen fügt Wireguard Ihrem Netzwerk nicht viel Overhead hinzu. Dies führt zu einer geringeren Latenz und einer hohen Gesamt-Durchsatzrate über Ihre Knoten.

Ein weiteres wichtiges Merkmal von Wireguard ist, dass es ein Modul im Linux-Kernel ist. Dies ermöglicht es, ohne zusätzliche Systemressourcen von Ihrem Computer zu laufen, was es zu einer idealen Wahl für den Einsatz auf Low-End- und SOC-Geräten macht.

Schließlich nutzt Wireguard auch moderne kryptografische Standards und Entwicklungspraktiken. Es hat auch mehrere formale Überprüfungen durchlaufen, die die Korrektheit des Codes von Wireguard, Sicherheitsgarantien und die Fähigkeit, Angriffen zu widerstehen, bestätigen.
Nebenbei bemerkt: Immer noch nicht von Wireguard überzeugt? Erfahren Sie, wie Wireguard im Vergleich zu OpenVPN abschneidet.
Wireguard beschaffen
Der erste Schritt zur Einrichtung von Wireguard unter Linux besteht darin, die Kernwerkzeuge aus dem Repository Ihrer Distribution herunterzuladen. Dies ermöglicht es Ihnen, das integrierte Wireguard-Kernelmodul mit Benutzerspace-Befehlen zu steuern.
Um die Kernwerkzeuge in Ubuntu und Debian zu installieren, führen Sie den folgenden Befehl aus:
sudo apt install wireguard wireguard-toolsIn Fedora können Sie den Paketmanager dnf verwenden:
sudo dnf install wireguard-toolsFür Arch Linux können Sie pacman verwenden, um die Wireguard-Kernwerkzeuge zu erhalten:
sudo pacman -S wireguard-toolsBestätigen Sie, dass Sie die Wireguard-Tools ordnungsgemäß installiert haben, indem Sie den Hilfebildschirm laden:
wg -h
Einrichten des Wireguard-Servers
Annahme: Dieser Artikel geht davon aus, dass Sie den Wireguard-Server auf einem Linux-System mit einer öffentlich zugänglichen IPv4-Adresse installieren. Die Anweisungen funktionieren auch auf einem Server hinter einem NAT, aber er wird keine Knoten außerhalb seines Subnetzes finden.
Mit dem Wireguard-Kernwerkzeug auf Ihren Linux-Maschinen können Sie jetzt den Serverknoten Ihres VPN einrichten. Dies dient als Internet-Gateway für Ihre Client-Knoten im Netzwerk.
Beginnen Sie, indem Sie zu Ihrem Wireguard-Konfigurationsverzeichnis navigieren und die Standardberechtigungen auf “nur Root” setzen:
cd/etc/wireguard
sudoumask 077Hinweis: Einige Systeme verhindern möglicherweise, dass Sie als regulärer Benutzer in den Ordner “/etc/wireguard” gelangen. Um dies zu beheben, wechseln Sie mit sudo -s zum Root-Benutzer.
Generieren Sie den öffentlichen und privaten Schlüssel für Ihren Wireguard-Server:
sudosh-c'wg genkey | tee /etc/wireguard/server-private-key | wg pubkey > /etc/wireguard/server-public-key'Erstellen Sie die Konfigurationsdatei Ihres Servers mit Ihrem bevorzugten Texteditor:
sudonano/etc/wireguard/wg0.confFügen Sie den folgenden Codeblock in Ihre Serverkonfigurationsdatei ein:
[Interface]
PrivateKey= PASTE-YOUR-SERVER-PRIVATE-KEY-HERE
Address= 10.0.0.1/32
ListenPort= 60101
PostUp= iptables -t nat -I POSTROUTING -o NETWORK-INTERFACE-HERE -j MASQUERADE
PostDown= iptables -t nat -D POSTROUTING -o NETWORK-INTERFACE-HERE -j MASQUERADEÖffnen Sie eine neue Terminal-Sitzung und drucken Sie den privaten Schlüssel Ihres Servers:
sudocat/etc/wireguard/server-private-keyKopieren Sie den privaten Schlüssel Ihres Servers in Ihre Zwischenablage.

Ersetzen Sie den Wert der Variablen PrivateKey durch den Schlüssel in Ihrer Zwischenablage.

Finden Sie die Netzwerkschnittstelle, die Zugriff auf das Internet hat, mit dem Befehl ip:
ip route get 8.8.8.8Setzen Sie den Wert des -o-Flags in den Variablen PostUp und PostDown auf die Schnittstelle mit Internetzugang und speichern Sie dann Ihre Konfigurationsdatei.

Öffnen Sie die Datei “/etc/sysctl.conf” des Servers mit Ihrem bevorzugten Texteditor:
sudonano/etc/sysctl.confScrollen Sie zu der Zeile, die net.ipv4.ip_forward=1 enthält, und entfernen Sie das Rautezeichen (#) davor.

Laden Sie Ihre neue sysctl-Konfiguration neu, indem Sie ausführen: sudo sysctl -p.
FYI: Wireguard ist nicht die einzige VPN-Lösung, die Sie unter Linux ausführen können. Erfahren Sie, wie Sie Ihr eigenes VPN mit OpenVPN erstellen.
Einrichten und Verbinden des Wireguard-Clients
An diesem Punkt haben Sie jetzt einen ordnungsgemäß konfigurierten Wireguard-Server ohne Peers. Um ihn zu verwenden, müssen Sie Ihren ersten Wireguard-Client einrichten und verbinden.
Navigieren Sie zum Wireguard-Konfigurationsverzeichnis Ihres Client-Systems und setzen Sie die Standardberechtigungen:
cd/etc/wireguard
sudoumask 077Generieren Sie das Wireguard-Schlüsselpaar Ihres Clients mit dem folgenden Befehl:
sudosh-c'wg genkey | tee /etc/wireguard/client1-private-key | wg pubkey > /etc/wireguard/client1-public-key'Erstellen Sie die Konfigurationsdatei des Clients mit Ihrem bevorzugten Texteditor:
sudonano/etc/wireguard/wg0.confFügen Sie den folgenden Codeblock in Ihre Client-Konfigurationsdatei ein:
[Interface]
PrivateKey= PASTE-YOUR-CLIENT1-PRIVATE-KEY-HERE
Address= 10.0.0.2/32
ListenPort= 60101
[Peer]
PublicKey= PASTE-YOUR-SERVER-PUBLIC-KEY-HERE
AllowedIPs= 0.0.0.0/0
Endpoint= PASTE-YOUR-SERVER-IP-ADDRESS-HERE:60101
PersistentKeepalive= 25Ersetzen Sie die Variable PrivateKey durch den privaten Schlüssel Ihres Clients.

Öffnen Sie die Terminal-Sitzung Ihres Wireguard-Servers und drucken Sie seinen öffentlichen Schlüssel:
sudocat/etc/wireguard/server-public-keySetzen Sie den Wert der Variablen PublicKey auf den öffentlichen Schlüssel Ihres Servers.

Ändern Sie die Variable Endpoint auf die IP-Adresse Ihres Wireguard-Servers.

Speichern Sie Ihre Konfigurationsdatei und verwenden Sie den Befehl wg-quick, um den Wireguard-Client zu starten:
sudo wg-quick up wg0
Hinweis: Dieser Befehl deaktiviert die Netzwerkverbindung Ihres Clients, bis Sie Ihren Wireguard-Server starten. Um zu Ihrem ursprünglichen Netzwerk zurückzukehren, führen Sie sudo wg-quick down wg0 aus.
Verknüpfen des Wireguard-Servers mit dem Client
Gehen Sie zur Terminal-Sitzung Ihres Wireguard-Servers und öffnen Sie seine Konfigurationsdatei:
sudonano/etc/wireguard/wg0.confFügen Sie den folgenden Codeblock nach dem Abschnitt [Interface] ein:
[Peer]
PublicKey= PASTE-YOUR-CLIENT1-PUBLIC-KEY-HERE
AllowedIPs= 10.0.0.2/32
PersistentKeepalive= 25Setzen Sie die Variable PublicKey auf den öffentlichen Schlüssel Ihres Wireguard-Clients.
![Ein Terminal, das den Standort des [Peer]-Blocks zeigt und den öffentlichen Schlüssel des Clients hervorhebt.](https://www.maketecheasier.com/assets/uploads/2024/07/set-up-wireguard-linux-vpn-13-highlight-client1-public-key.png)
Hinweis: Sie können den öffentlichen Schlüssel erhalten, indem Sie sudo cat /etc/wireguard/client1-public-key auf Ihrem Client-Computer ausführen.
Speichern Sie die Konfigurationsdatei und führen Sie den folgenden Befehl aus, um den Wireguard-Dienst auf Ihrem Server zu starten:
sudo wg-quick up wg0Hinzufügen eines zweiten Clients zum Server
Ein wichtiges Merkmal jedes VPN-Dienstes ist, dass er mehrere Maschinen aus verschiedenen Netzwerken miteinander verknüpfen kann. Dies ist nützlich, wenn Sie Computer an verschiedenen Standorten haben oder einen privaten Spieleserver für Ihre Freunde hosten möchten.
Um dies in Wireguard zu tun, müssen Sie eine Konfigurationsdatei für eine neue VPN-Schnittstelle auf Ihrem Server erstellen. Der einfachste Weg, dies zu tun, besteht darin, Ihre aktuelle Serverkonfiguration zu kopieren und der Kopie einen neuen Namen zu geben:
sudocp/etc/wireguard/wg0.conf /etc/wireguard/wg1.confÖffnen Sie Ihre neue Konfigurationsdatei mit Ihrem bevorzugten Texteditor:
sudonano/etc/wireguard/wg1.confSetzen Sie die Variable ListenPort auf 60102. Dadurch wird verhindert, dass es zu Portkonflikten zwischen den VPN-Schnittstellen wg0 und wg1 kommt.

Gehen Sie zum Abschnitt [Peer] und ändern Sie die Variable AllowedIPs von “10.0.0.2/32” in “10.0.0.3/32” und speichern Sie dann Ihre Konfigurationsdatei.

Konfigurieren des zweiten Wireguard-Clients
Melden Sie sich bei Ihrer zweiten Maschine an und bereiten Sie Ihr Wireguard-Konfigurationsverzeichnis vor:
cd/etc/wireguard
sudoumask 077Generieren Sie ein neues Wireguard-Schlüsselpaar mit dem folgenden Befehl:
sudosh-c'wg genkey | tee /etc/wireguard/client2-private-key | wg pubkey > /etc/wireguard/client2-public-key'Erstellen Sie eine neue Konfigurationsdatei mit Ihrem bevorzugten Texteditor:
sudonano/etc/wireguard/wg0.confFügen Sie den folgenden Codeblock in Ihre neue Konfigurationsdatei ein:
[Interface]
PrivateKey= PASTE-YOUR-CLIENT2-PRIVATE-KEY-HERE
Address= 10.0.0.3/32
ListenPort= 60102
[Peer]
PublicKey= PASTE-YOUR-SERVER-PUBLIC-KEY-HERE
AllowedIPs= 0.0.0.0/0
Endpoint= PASTE-YOUR-SERVER-IP-ADDRESS-HERE:60102
PersistentKeepalive= 25Setzen Sie die Variable PrivateKey auf den privaten Schlüssel Ihrer zweiten Maschine und ändern Sie dann die Variable PublicKey auf den öffentlichen Schlüssel Ihres Servers.
Ersetzen Sie die Endpoint-Variable durch die IP-Adresse Ihres Servers, gefolgt von “:60102.”
Speichern Sie Ihre Konfigurationsdatei und starten Sie den Wireguard-Client der zweiten Maschine:
sudo wg-quick up wg0Verknüpfen des zweiten Clients mit dem Wireguard-Server
Melden Sie sich erneut bei Ihrem Wireguard-Server an und öffnen Sie die VPN-Schnittstellenkonfiguration für Ihren zweiten Client:
sudonano/etc/wireguard/wg1.confScrollen Sie zum Abschnitt [Peer] und ersetzen Sie die Variable PublicKey durch den öffentlichen Schlüssel Ihres zweiten Clients.

Speichern Sie Ihre Konfigurationsdatei und starten Sie die zweite VPN-Schnittstelle mit dem Befehl wg-quick:
sudo wg-quick up wg1Bestätigen Sie, dass Ihre ersten und zweiten Wireguard-Clients korrekt auf Ihrem Server angezeigt werden, indem Sie wg ausführen.

Testen des Wireguard-Netzwerks
Mit sowohl Ihrem Server als auch Ihren Clients im Wireguard-Netzwerk können Sie jetzt die Konnektivität und Latenz zwischen Ihren Knoten testen. Stellen Sie sicher, dass Sie Netzwerkdiagnosetools auf Ihrem System installiert haben:
sudo apt install net-tools curlIn Fedora müssen Sie nur curl installieren, da es bereits mit Netzwerktools direkt aus der Box kommt:
sudo dnf install curlFür Arch Linux können Sie pacman verwenden, um die Netzwerktools und curl zu installieren:
sudo pacman -S traceroute curlBeginnen Sie damit, den Pfad eines Pakets zwischen zwei Clients zu verfolgen. Folgendes zeigt, wie ein IP-Paket von “10.0.0.2” nach “10.0.0.3” geht:
traceroute 10.0.0.3Überprüfen Sie, ob einer Ihrer Knoten auf das öffentliche Internet zugreifen kann, indem Sie eine gängige IP-Adresse anpingen:
ping-c5 8.8.8.8
Bestätigen Sie schließlich, dass Ihre Knoten die gleiche öffentliche IP-Adresse zu Ihrem Wireguard-Server teilen:
curl ipinfo.io/ip
Das Einrichten eines Wireguard-Netzwerks unter Linux ist der erste Schritt, um die faszinierende Welt der VPNs zu erkunden. Tauchen Sie tief ein und sehen Sie sich unsere Auswahl der besten sicherheitsorientierten VPN-Anbieter an, die Sie heute erhalten können.
Bildnachweis: Kari Shea über Unsplash und Wikimedia Commons. Alle Änderungen und Screenshots von Ramces Red.