So richten Sie Wireguard VPN unter Linux ein

So richten Sie Wireguard VPN unter Linux ein
Ein Foto eines Laptops mit einem Desktop-Monitor daneben.

Wireguard ist ein leistungsstarker Open-Source-Daemon für virtuelle private Netzwerke (VPN), der sowohl auf Desktop- als auch auf Mobilgeräten ausgeführt werden kann. Er bietet eine schnelle und einfache Alternative zu herkömmlichen VPN-Lösungen wie IPsec und OpenVPN. Hier zeigen wir Ihnen, wie Sie Wireguard installieren und ein einfaches VPN-Setup mit drei Linux-Rechnern erstellen.

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 herkömmlichen Lösungen verursacht Wireguard keinen großen Overhead für Ihr Netzwerk. Dies führt zu geringerer Latenz und einer hohen Gesamtdurchsatzrate über Ihre Knoten.

Ein Terminal, das einen iperf3-Test zwischen zwei Wireguard-Knoten mit hohem Durchsatz zeigt.

Ein weiteres wichtiges Merkmal von Wireguard ist, dass es sich um ein Modul innerhalb des Linux-Kernels handelt. Dadurch kann es ausgeführt werden, ohne zusätzliche Systemressourcen Ihres Computers zu beanspruchen, was es zur idealen Wahl für den Einsatz auf Low-End- und SOC-Geräten macht.

Ein Terminal, das den auf den Linux-Kernel geladenen Wireguard zeigt.

Schließlich nutzt Wireguard auch moderne kryptografische Standards und Entwicklungspraktiken. Es gab auch mehrere formale Überprüfungen, die die Korrektheit des Codes, die Sicherheitsgarantien und die Widerstandsfähigkeit von Wireguard gegen Angriffe bestätigen.

Wireguard erhalten

Der erste Schritt zum Einrichten von Wireguard unter Linux besteht darin, die Kerntools aus dem Repository Ihrer Distribution herunterzuladen. Auf diese Weise können Sie das integrierte Wireguard-Kernelmodul mithilfe von Userspace-Befehlen steuern.

Um die Kerntools in Ubuntu und Debian zu installieren, führen Sie den folgenden Befehl aus:

In Fedora können Sie den dnfPaketmanager verwenden:

Für Arch Linux können Sie Folgendes ausführen, pacmanum die Wireguard-Kerntools abzurufen:

Bestätigen Sie, dass Sie die Wireguard-Tools ordnungsgemäß installiert haben, indem Sie den Hilfebildschirm laden:

Ein Terminal, das das Hilfemenü für das Wireguard-Userspace-Tool anzeigt.

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 findet keine Knoten außerhalb seines Subnetzes.

Mit dem Wireguard Core-Toolkit auf Ihren Linux-Rechnern können Sie jetzt den Serverknoten Ihres VPN einrichten. Dieser dient als Internet-Gateway für Ihre Clientknoten im Netzwerk.

Navigieren Sie zunächst zu Ihrem Wireguard-Konfigurationsverzeichnis und legen Sie die Standardberechtigungen auf „Nur Root“ fest:

Generieren Sie den öffentlichen und privaten Schlüssel für Ihren Wireguard-Server:

Erstellen Sie die Konfigurationsdatei Ihres Servers mit Ihrem bevorzugten Texteditor:

Fügen Sie den folgenden Codeblock in Ihre Serverkonfigurationsdatei ein:

Öffnen Sie eine neue Terminalsitzung und drucken Sie dann den privaten Wireguard-Schlüssel Ihres Servers aus:

Kopieren Sie den privaten Schlüssel Ihres Servers in Ihre Zwischenablage.

Ein Terminal, das den Vorgang des Kopierens des privaten Schlüssels des Servers unter Ubuntu zeigt.

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

Ein Terminal, das den privaten Schlüssel des Servers in der Wireguard-Konfiguration des Servers anzeigt.

Suchen Sie mit dem folgenden Befehl die Netzwerkschnittstelle mit Internetzugriff ip:

Ein Terminal, das den Namen der Netzwerkschnittstelle mit Zugriff auf das Internet hervorhebt.

Setzen Sie den Wert des -oFlags sowohl für die Schnittstelle mit Internetzugang PostUpals auch PostDownfür die Variablen und speichern Sie dann Ihre Konfigurationsdatei.

Ein Terminal, das den richtigen Gerätenamen in der Konfigurationsdatei des Wireguard-Servers anzeigt.

Öffnen Sie die Datei „/etc/sysctl.conf“ des Servers mit Ihrem bevorzugten Texteditor:

Scrollen Sie nach unten zu der Zeile, die enthält net.ipv4.ip_forward=1, und entfernen Sie dann das Rautezeichen (#) davor.

Ein Terminal, das den Speicherort der IPv4-Weiterleitungsoption in sysctl.conf hervorhebt.

Laden Sie Ihre neue Sysctl-Konfiguration neu, indem Sie Folgendes ausführen: sudo sysctl -p.

Ein Terminal, das den Vorgang des Neuladens der Datei sysctl.conf zeigt.

Einrichten und Verbinden des Wireguard-Clients

An diesem Punkt haben Sie nun 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 Clientsystems und legen Sie dessen Standardberechtigungen fest:

Generieren Sie das Wireguard-Schlüsselpaar Ihres Clients mit dem folgenden Befehl:

Erstellen Sie die Wireguard-Konfigurationsdatei des Clients mit Ihrem bevorzugten Texteditor:

Fügen Sie den folgenden Codeblock in Ihre Client-Konfigurationsdatei ein:

Ersetzen Sie die PrivateKeyVariable durch den privaten Schlüssel Ihres Clients.

Ein Terminal, das den privaten Schlüssel für den ersten Wireguard-Client hervorhebt.

Öffnen Sie die Terminalsitzung Ihres Wireguard-Servers und drucken Sie dann den öffentlichen Schlüssel aus:

Setzen Sie den Wert der PublicKeyVariablen auf den öffentlichen Schlüssel Ihres Servers.

Ein Terminal, das den öffentlichen Schlüssel des Wireguard-Servers in der Konfigurationsdatei des zweiten Clients hervorhebt.

Ändern Sie die EndpointVariable in die IP-Adresse Ihres Wireguard-Servers.

Ein Terminal, das die IP-Adresse für den Wireguard-Server hervorhebt.

Speichern Sie Ihre Konfigurationsdatei und verwenden Sie dann den wg-quickBefehl, um den Wireguard-Client zu starten:

Ein Terminal, das den Startvorgang des Wireguard-Client-Daemons zeigt.

Verknüpfen des Wireguard-Servers mit dem Client

Gehen Sie zur Terminalsitzung Ihres Wireguard-Servers und öffnen Sie dann dessen Konfigurationsdatei:

Fügen Sie nach dem Abschnitt den folgenden Codeblock ein [Interface]:

Setzen Sie die PublicKeyVariable auf den öffentlichen Schlüssel Ihres Wireguard-Clients.

Ein Terminal, das den Speicherort des [Peer]-Blocks anzeigt und den öffentlichen Schlüssel des Clients hervorhebt.

Speichern Sie die Konfigurationsdatei und führen Sie dann den folgenden Befehl aus, um den Wireguard-Dienst auf Ihrem Server zu starten:

Einen zweiten Client zum Server hinzufügen

Ein wichtiges Merkmal jedes VPN-Dienstes ist, dass er mehrere Rechner aus verschiedenen Netzwerken miteinander verbinden kann. Das 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:

Öffnen Sie Ihre neue Konfigurationsdatei mit Ihrem bevorzugten Texteditor:

Setzen Sie die ListenPortVariable auf 60102. Dadurch werden Portkollisionen zwischen den VPN-Schnittstellen wg0 und wg1 verhindert.

Ein Terminal, das die geänderte ListenPort-Variable für die zweite Wireguard-Schnittstelle hervorhebt.

Gehen Sie zum [Peer]Abschnitt und ändern Sie die AllowedIPsVariable von „10.0.0.2/32“ in „10.0.0.3/32“. Speichern Sie dann Ihre Konfigurationsdatei.

Ein Terminal, das die geänderte Variable „AllowedIPs“ für den zweiten Wireguard-Client hervorhebt.

Konfigurieren des zweiten Wireguard-Clients

Melden Sie sich bei Ihrem zweiten Computer an und bereiten Sie dann Ihr Wireguard-Konfigurationsverzeichnis vor:

Generieren Sie mit dem folgenden Befehl ein neues Wireguard-Schlüsselpaar:

Erstellen Sie mit Ihrem bevorzugten Texteditor eine neue Konfigurationsdatei:

Fügen Sie den folgenden Codeblock in Ihre neue Konfigurationsdatei ein:

Legen Sie die PrivateKeyVariable auf den privaten Schlüssel Ihres zweiten Computers fest und ändern Sie die PublicKeyVariable anschließend in den öffentlichen Schlüssel Ihres Servers.

Ein Terminal, das den privaten Schlüssel des zweiten Clients und den öffentlichen Schlüssel des Wireguard-Servers hervorhebt.

Ersetzen Sie die Endpunktvariable durch die IP-Adresse Ihres Servers, gefolgt von „:60102“.

Ein Terminal, das die IP-Adresse des Wireguard-Servers in der Konfiguration des zweiten Clients hervorhebt.

Speichern Sie Ihre Konfigurationsdatei und starten Sie dann den Wireguard-Client der zweiten Maschine:

Verknüpfen des zweiten Clients mit dem Wireguard-Server

Melden Sie sich erneut bei Ihrem Wireguard-Server an und öffnen Sie dann die VPN-Schnittstellenkonfiguration für Ihren zweiten Client:

Scrollen Sie nach unten zu dem [Peer]Abschnitt und ersetzen Sie dann die PublicKeyVariable durch den öffentlichen Schlüssel Ihres zweiten Clients.

Ein Terminal, das den öffentlichen Schlüssel des zweiten Clients in der wg1-Konfigurationsdatei des Servers hervorhebt.

Speichern Sie Ihre Konfigurationsdatei und starten Sie dann die zweite VPN-Schnittstelle mit dem Befehl wg-quik:

Bestätigen Sie, dass Ihr erster und zweiter Wireguard-Client korrekt auf Ihrem Server angezeigt werden, indem Sie ausführen wg.

Ein Terminal, das die beiden Clientknoten zeigt, die mit dem Wireguard-Server kommunizieren.

Testen des Wireguard-Netzwerks

Wenn sowohl Ihr Server als auch Ihre Clients im Wireguard-Netzwerk sind, können Sie nun die Konnektivität und Latenz zwischen Ihren Knoten testen. Stellen Sie dazu sicher, dass auf Ihrem System Netzwerkdiagnosetools installiert sind:

Unter Fedora müssen Sie es nur installieren, curlda es bereits mit sofort einsatzbereiten Netzwerktools ausgestattet ist:

Für Arch Linux können Sie pacmanzur Installation der Netzwerktools Folgendes verwenden curl:

Beginnen Sie damit, die Route eines Pakets zwischen zwei Clients zu verfolgen. Im Folgenden wird gezeigt, wie ein IP-Paket von „10.0.0.2“ zu „10.0.0.3“ gelangt:

Ein Terminal, das einen erfolgreichen Traceroute-Befehl zwischen zwei Wireguard-Knoten anzeigt.

Überprüfen Sie, ob einer Ihrer Knoten auf das öffentliche Internet zugreifen kann, indem Sie eine gängige IP-Adresse anpingen:

Ein Terminal, das die Latenz vom Wireguard-Netzwerk zu einer externen Site anzeigt.

Bestätigen Sie abschließend, dass Ihre Knoten dieselbe öffentliche IP-Adresse wie Ihr Wireguard-Server haben:

Ein Terminal, das die ähnliche externe IP-Adresse auf drei Wireguard-Knoten hervorhebt.

Das Einrichten eines Wireguard-Netzwerks unter Linux ist der erste Schritt zur Erkundung der faszinierenden Welt der VPNs. Tauchen Sie tiefer ein und sehen Sie sich unsere Auswahl der derzeit besten sicherheitsorientierten VPN-Anbieter an.

Bildnachweis: Kari Shea über Unsplash und Wikimedia Commons . Alle Änderungen und Screenshots von Ramces Red.

Schreibe einen Kommentar

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