So richten Sie WireGuard VPN-Server und -Client unter Ubuntu 20.04 ein

So richten Sie WireGuard VPN-Server und -Client unter Ubuntu 20.04 ein

Richten Sie ein selbst gehostetes VPN mit Wireguard ein

Ein VPN (Virtual Private Network) ermöglicht es dem Benutzer, sich aus der Ferne mit einem privaten Netzwerk zu verbinden, als ob der Computer des Benutzers direkt mit dem privaten Netzwerk verbunden wäre. Die Technologie wurde ursprünglich entwickelt, um den Fernzugriff auf das interne private Netzwerk eines Unternehmens für Mitarbeiter zu ermöglichen, die sich nicht am Standort des internen Netzwerks befinden.

Am Standort des internen Netzwerks wird ein VPN-Server bereitgestellt. Dieser Server befindet sich im öffentlichen Netz und ist für den Mitarbeiter über einen VPN-Client erreichbar. Für die Verbindung mit dem VPN-Server ist eine Authentifizierung erforderlich. Die Kommunikation zwischen VPN-Server und VPN-Client wird über ein Tunneling-Protokoll abgesichert. Beachten Sie, dass diese Kommunikation verschlüsselt sein kann oder nicht, aber normalerweise ist sie in den meisten VPN-Protokollen verschlüsselt.

Eine weitere Verwendung von VPN besteht darin , beim Zugriff auf das Internet Anonymität zu erlangen oder geografische Beschränkungen beim Zugriff auf einige Websites zu umgehen. In solchen Fällen ist das Netzwerk, mit dem sich der Benutzer verbinden möchte, kein privates Netzwerk, sondern das Internet.

Im Laufe der Jahre wurden viele VPN-Protokolle entwickelt. Diese Protokolle verwenden verschiedene Tunneling-Protokolle und Verschlüsselungsalgorithmen für die Kommunikation zwischen Server und Client.

Ein solches Protokoll, das in letzter Zeit weit verbreitet ist, ist Wireguard . Wireguard ist leichter, einfacher und leistungsfähiger als bekannte traditionell verwendete VPN-Protokolle wie OpenVPN, IPSec. Es ist bereits für Windows, Mac OS und eine Vielzahl von Linux-Distributionen implementiert. Unter Linux ist es als Kernel-Modul implementiert. Es ist in den offiziellen Repositories von Ubuntu 20.04 verfügbar.

In diesem Artikel erfahren Sie, wie Sie einen Wireguard VPN-Server und -Client in Ubuntu 20.04 einrichten.

Installation

Für diesen Artikel richte ich einen Wireguard Server auf einem Ubuntu 20.04 Linode und einen Wireguard Client auf meinem lokalen Rechner mit Ubuntu 20.04 ein.

Das Paket wireguardinstalliert sowohl Wireguard Server als auch Client. Führen Sie den folgenden Befehl sowohl auf dem Server-Computer als auch auf dem Client-Computer aus.

sudo apt install wireguard

Serverkonfiguration

Sicherheitsschlüssel

Wir müssen eine Reihe von öffentlichen/privaten Schlüsselpaaren generieren, um die Wireguard-Verbindung zu authentifizieren und zu sichern. Dies kann mit den folgenden Befehlen erfolgen:

sudo su
cd /etc/wireguard
umask 077
wg genkey | tee private_key | wg pubkey > public_key

Beachten Sie, dass wir alle Konfigurationsaufgaben als Superuser ausführen. Der Grund dafür ist, dass der Zugriff auf das Verzeichnis /etc/wireguardfür normale Benutzer verhindert ist und der Verzeichniszugriff für einen normalen Benutzer nicht nur mit sudo-Berechtigungen erreicht werden kann.

Als nächstes setzen wir die Dateierstellungsmaske auf077 . Dies bedeutet, dass jedes Mal, wenn eine neue Datei in diesem Ordner von einem beliebigen Prozess erstellt wird, ihre Berechtigungen automatisch mit 077 maskiert werden. Wenn in diesem Ordner eine Datei mit den Berechtigungen 777 erstellt wird, wird sie automatisch maskiert und die Berechtigungen werden effektiv 700. Dies geschieht so, dass nur der Eigentümer der Datei alle Berechtigungen für die Datei hat und alle anderen keine Berechtigungen haben.

In der nächsten Zeile generieren wir das öffentliche/private Schlüsselpaar für den Server. Sie werden in Dateien private_keyund public_key. Um die Schlüssel anzuzeigen, führen Sie Folgendes aus:

cat private_key
cat public_key

So richten Sie WireGuard VPN-Server und -Client unter Ubuntu 20.04 ein

Kopieren Sie den privaten Schlüssel, wir benötigen ihn im nächsten Schritt.

Hinweis: Teilen Sie Ihren privaten Schlüssel niemals öffentlich!

Konfigurationsdatei

Erstellen wir eine Konfigurationsdatei für den Wireguard Server. Sie können einen beliebigen Namen für die Datei wählen. wg0.confIn diesem Beispiel erstellen wir eine Datei .

vim wg0.conf

Fügen Sie der Datei Folgendes hinzu.

[Interface]
Address = 10.20.43.1/24
SaveConfig = true
ListenPort = 51190
PrivateKey = 

PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o  -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o  -j MASQUERADE

Fügen Sie den privaten Schlüssel ein, den wir zuvor in Zeile 5 des obigen Codes kopiert haben.

Wir müssen Wireguard in einem anderen (virtuellen) Subnetz als der IP-Adresse des Servers konfigurieren . Hier habe ich 10.20.43.1 für den Server verwendet und werde 10.20.43.2 für den Client verwenden. Hier kann jedes Subnetz verwendet werden. Um die IP-Adresse des Servers und der Schnittstelle zu erhalten, führen Sie Folgendes aus:

ifconfig

So richten Sie WireGuard VPN-Server und -Client unter Ubuntu 20.04 ein

Der hervorgehobene Teil ist die IP-Adresse

Notieren Sie die IP-Adresse des Servers. Dies ist während der Client-Konfiguration erforderlich.

Die vom Server verwendete Schnittstelle, wie im Bild oben zu sehen, ist eth0. Der Schnittstellenname kann je nach Benutzernetzwerk unterschiedlich sein, wlan0oder wlp2s0falls der Benutzer über eine WLAN-Karte mit einem WiFi-Netzwerk verbunden ist.

Ersetzen Sie das in PostUpund PostDownmit Ihrem Interface; in diesem Beispiel ist es eth0. PostUpund PostDownDirektiven werden verwendet, um anzugeben, welche Befehle ausgeführt werden sollen, wenn der Server startet bzw. stoppt. In unserem Beispiel verwenden wir den iptablesBefehl, um IP-Regeln so festzulegen, dass die IP-Adresse des Servers von den Clients geteilt wird. Die Regeln werden gelöscht, sobald der Server stoppt.

Speichern und beenden Sie die Datei. Wenn Sie vim verwenden, drücken Sie Esc , geben Sie dann ein :wqund drücken Sie die Eingabetaste , um zu speichern und zu beenden.

Wenn Sie eine ufwFirewall auf dem Server verwenden, müssen wir UDP-Verbindungen zum Port für den VPN-Server 51190 zulassen.

ufw allow 51190/udp

Starten des Dienstes

Nachdem die Konfiguration nun abgeschlossen ist, können wir den Wireguard VPN-Dienst starten.

Führen Sie Folgendes aus, damit der Dienst beim Booten gestartet wird:

systemctl enable [email protected]

Beachten Sie, dass hier wg0der Name der Konfigurationsdatei steht.

Um den Dienst zu starten , führen Sie Folgendes aus:

service [email protected] start

Überprüfen Sie, ob der Dienst erfolgreich gestartet wurde:

service [email protected] status

So richten Sie WireGuard VPN-Server und -Client unter Ubuntu 20.04 ein

Stellen Sie mit dem IP-Befehl sicher, dass die in der Konfigurationsdatei erstellte Schnittstelle gestartet wurde.

ip a show wg0

So richten Sie WireGuard VPN-Server und -Client unter Ubuntu 20.04 ein

Der Wireguard VPN-Server ist nun eingerichtet und läuft. Lassen Sie uns jetzt den Client konfigurieren.

Client-Konfiguration

Die Client-Konfiguration für Wireguard entspricht mehr oder weniger einer Server-Konfiguration. Wir generieren die Schlüssel für den Client und erstellen dann eine Konfigurationsdatei.

Sicherheitsschlüssel

Führen Sie Folgendes aus, um das öffentliche/private Schlüsselpaar für den Client zu generieren :

sudo su
cd /etc/wireguard
umask 077
wg genkey | tee client_private_key | wg pubkey > client_public_key

Die öffentlichen und privaten Schlüssel für den Client werden nun jeweils in Dateien client_private_keyund client_public_key.

Überprüfen Sie, ob sie erstellt wurden, indem Sie den catBefehl verwenden.

cat client_private_key
cat client_public_key

Kopieren Sie den angezeigten privaten Schlüssel, da wir ihn der Konfigurationsdatei für den Client hinzufügen müssen.

Konfigurationsdatei

Erstellen Sie die Konfigurationsdatei mit einem beliebigen Namen. Wir werden es mit dem Namen wg0-clientfür dieses Beispiel erstellen .

vim wg0-client.conf

Fügen Sie die folgende Konfiguration hinzu.

[Interface]
# IP Address and Private Key of the Client
Address = 10.20.43.2/24
PrivateKey = 

[Peer]
# Public key, IP Address and Port of the Server
PublicKey = 
Endpoint = :51190
AllowedIPs = 0.0.0.0/0, ::/0

Geben Sie die Subnetzadresse für den Client ein. Wie zuvor beschrieben, verwenden wir 10.20.43.2 in diesem Beispiel für den Client.

Fügen Sie den im vorherigen Schritt generierten privaten Clientschlüssel in Zeile 4 des obigen Konfigurationscodes hinzu.

Unter 'Peer' fügen wir Informationen zu dem Wireguard VPN-Server hinzu, mit dem wir uns verbinden möchten.

Geben Sie den öffentlichen Schlüssel des Servers ein. Geben Sie die zuvor notierte IP-Adresse des Servers und den Port im angegebenen Format für Endpoint ein . Dies ist der Port, den wir in der Serverkonfigurationsdatei angegeben haben und auf dem der VPN-Dienst auf dem Server gestartet wurde.

Erlaubte IPs sollten wie angegeben (0.0.0.0/0) eingegeben werden, damit jede Anfrage an eine dynamische öffentliche IP, die vom Client verwendet wird, immer an den VPN-Server weitergeleitet wird.

Speichern und beenden Sie die Datei. Wenn Sie vim verwenden, drücken Sie Esc , geben Sie dann ein :wqund drücken Sie die Eingabetaste , um zu speichern und zu beenden.

Aktivieren Sie den Client-Dienst , damit er bei jedem Start ausgeführt wird, und starten Sie ihn.

systemctl enable [email protected]
service [email protected] start

Überprüfen Sie, ob der Dienst gestartet wurde.

service [email protected] status

So richten Sie WireGuard VPN-Server und -Client unter Ubuntu 20.04 ein

Peer zum Server hinzufügen

Jetzt haben wir den VPN-Server und -Client in Betrieb genommen. Es wird jedoch kein sicherer Tunnel zwischen den beiden hergestellt, es sei denn, wir stellen eine Peer-to-Peer-Verbindung zwischen Server und Client her.

Gehen Sie zurück zum Server. Zuerst stoppen Sie den VPN - Dienst .

service [email protected] stop

Öffnen Sie als Nächstes die Konfigurationsdatei, um die Konfiguration für den Peer (Client) hinzuzufügen .

vim /etc/wireguard/wg0.conf

Hängen Sie die folgenden Zeilen an die Datei an.

[Peer]
PublicKey = 
AllowedIPs = 10.20.43.2/32

Nun starten Sie den VPN - Dienst .

service [email protected] start

Das ist es! Dies ist die gesamte Konfiguration, die für die Einrichtung des Wireguard VPN-Clients und -Servers erforderlich ist. Lassen Sie uns nun unser VPN testen.

Testen des VPN

Lassen Sie uns zunächst einen einfachen Ping vom Client zum Server durchführen, um sicherzustellen, dass die VPN-Tunnelkommunikation funktioniert. Führen Sie Folgendes auf dem Client aus :

ping 10.20.43.1

So richten Sie WireGuard VPN-Server und -Client unter Ubuntu 20.04 ein

Öffnen Sie als Nächstes einen Webbrowser und öffnen Sie eine beliebige Website , um zu überprüfen, ob Sie vom Clientcomputer aus eine Verbindung zum Internet herstellen können. Sie können Ihre Internetverbindung auch über die Befehlszeile mit überprüfen wget.

wget 

So richten Sie WireGuard VPN-Server und -Client unter Ubuntu 20.04 ein

Nun haben wir die Tunnelkonnektivität und die Internetkonnektivität überprüft. Wenn beide funktionieren, müssen wir jetzt sicherstellen, dass der gesamte Internetverkehr, der zum Client kommt, über den Server läuft.

Dazu müssen wir lediglich die IP-Adresse des Clients überprüfen, wie sie vom Internet aus gesehen wird. Eine Möglichkeit, dies zu tun, besteht darin, zu whatsmyip.org zu gehen . Oder über die Befehlszeile können wir mit Curl einen anderen ähnlichen Dienst namens IP-Info abfragen.

Führen Sie Folgendes auf dem Client-Rechner aus

curl https://ipinfo.io/ip

So richten Sie WireGuard VPN-Server und -Client unter Ubuntu 20.04 ein

Jawohl. Dies ist die öffentliche IP-Adresse des Linode, auf dem der VPN-Server gehostet wird. Auf diese Weise wird mit VPN Anonymität erreicht, da im gesamten Internet jetzt die IP des VPN-Servers und nicht Ihres Computers gesehen wird.

Abschluss

Die einfache Einrichtung ist einer der wichtigsten Vorteile von Wireguard gegenüber herkömmlicher VPN-Software wie OpenVPN, deren Einrichtung ein höheres Maß an Netzwerk- und Routing-Kenntnissen erfordert. Es fehlt jedoch eine detaillierte offizielle Dokumentation für Wireguard, die zu Problemen führen kann, wenn Ihr Wireguard-Setup Fehler auslöst oder nicht wie erwartet funktioniert.

Dennoch ist Wireguard eine ausgezeichnete Wahl, wenn Sie ein selbst gehostetes VPN für die sichere Kommunikation über das Internet wünschen. Um mehr über Wireguard und die verwendeten Protokolle und Technologien zu erfahren, können Sie die offizielle Website besuchen .


WLAN funktioniert nicht unter Ubuntu? So beheben Sie es

WLAN funktioniert nicht unter Ubuntu? So beheben Sie es

Ubuntu ist beliebt für seine Robustheit und relativ weniger Fehler. Aber es ist sicher nicht ohne Probleme. Ein solches Problem ist mit seinem Wi-Fi-Treiber. Möglicherweise schalten Sie Ihr System nur ein, um festzustellen, dass Ihr Wi-Fi nicht funktioniert.

So verschieben Sie Linux-Dateien mit dem Mv-Befehl

So verschieben Sie Linux-Dateien mit dem Mv-Befehl

Während Sie wahrscheinlich bereits wissen, wie Sie eine Datei unter Linux mit dem GUI-Dateibrowser verschieben, fragen Sie sich vielleicht, ob es im Terminal einen Verschiebebefehl gibt, mit dem Sie Dateien schnell in verschiedene Verzeichnisse verschieben können. Der mv-Befehl ist der gewünschte und mit seiner einfachen Syntax und einigen optionalen Sicherheitsflags einfach zu verwenden.

Die 10 besten Debian-basierten Linux-Distributionen

Die 10 besten Debian-basierten Linux-Distributionen

Das Standard-Debian und sein beliebter Ableger Ubuntu sind großartige Allround-Optionen für ein Linux-System, aber wenn Sie speziellere Bedürfnisse haben, möchten Sie vielleicht eine Debian-Alternative.

10 beste Linux-Distributionen für Entwickler

10 beste Linux-Distributionen für Entwickler

Während Linux für Gelegenheitsbenutzer vielleicht nicht das bevorzugte Betriebssystem ist, ist es die erste Wahl für die meisten Entwickler und Programmierer. Linux ist ein praktischeres Betriebssystem, das explizit für Programmierer und Entwickler entwickelt wurde.

Erfahren Sie, wie Sie Npm und Node.js auf Ubuntu installieren

Erfahren Sie, wie Sie Npm und Node.js auf Ubuntu installieren

Node.js ist praktisch eine Open-Source-Plattform für JavaScript-Laufzeitumgebungen. Wenn Node.js aktiviert ist, können Sie JavaScript auf Ihrem Ubuntu-Computer ausführen, ohne sich um das Öffnen von Browsern kümmern zu müssen. Es basiert auf der V8-JavaScript-Engine von Chrome und kann auf verschiedene Weise unter Linux installiert werden.

So installieren Sie Git unter Ubuntu 20.04 LTS

So installieren Sie Git unter Ubuntu 20.04 LTS

Eines der ersten Dinge, die Sie auf Ihrem Linux-Rechner installieren sollten

So installieren Sie Google Chrome unter Ubuntu 20.04

So installieren Sie Google Chrome unter Ubuntu 20.04

Kurzanleitung zum Installieren von Google Chrome über die Befehlszeile unter Ubuntu 20.04

So ändern Sie das Root-Passwort unter Ubuntu 20.04

So ändern Sie das Root-Passwort unter Ubuntu 20.04

Setzen, zurücksetzen und ändern Sie das Root-Passwort in Ubuntu 20.04

So installieren Sie einen FTP-Server auf Ubuntu in 5 Schritten

So installieren Sie einen FTP-Server auf Ubuntu in 5 Schritten

Wenn Sie einen Linux-Server einrichten, benötigen Sie einen FTP-Zugang. Dies bedeutet, dass Sie zuerst einen FTP-Server unter Linux installieren. Dies sollte eines der ersten Dinge sein, die Sie nach der Installation Ihres Serverbetriebssystems tun.

So deaktivieren Sie Ubuntu Dock unter Ubuntu 20.04

So deaktivieren Sie Ubuntu Dock unter Ubuntu 20.04

Manchmal ist es besser, das Dock zu verlassen und davonzusegeln!

So erstellen Sie einen Sudo-Benutzer unter Ubuntu 20.04 LTS

So erstellen Sie einen Sudo-Benutzer unter Ubuntu 20.04 LTS

Gewähren Sie jedem Benutzer mit sudo unter Ubuntu 20.04 LTS Root-Rechte

So aktualisieren Sie Firefox vom Terminal auf Ubuntu Linux-PCs

So aktualisieren Sie Firefox vom Terminal auf Ubuntu Linux-PCs

Erfahren Sie, wie Sie Firefox über das Terminal auf einem Ubuntu Linux-PC aktualisieren

So installieren Sie Notepadqq unter Ubuntu 20.04, eine würdige Notepad++-Alternative

So installieren Sie Notepadqq unter Ubuntu 20.04, eine würdige Notepad++-Alternative

Suchen Sie nach einer würdigen Alternative zu Notepad ++ auf Ubuntu? Suchen Sie nicht weiter als die kostenlose Notepadqq-App

So aktivieren Sie SSH unter Ubuntu 20.04

So aktivieren Sie SSH unter Ubuntu 20.04

Greifen Sie von überall sicher auf Ihren Ubuntu-Rechner zu

So beheben Sie den make: Befehl nicht gefunden Fehler in Ubuntu

So beheben Sie den make: Befehl nicht gefunden Fehler in Ubuntu

Der Befehl make ist wahrscheinlich einer der am häufigsten verwendeten Befehle im Linux-Ökosystem. Dieser Befehl wird verwendet, um Programme direkt aus dem Quellcode zu erstellen und zu kompilieren.

Kopieren und Einfügen auf Chromebook

Kopieren und Einfügen auf Chromebook

Das erste, was Sie sich beim Wechsel zu einem Chromebook vielleicht fragen werden, ist, wie Sie die grundlegenden Dinge erledigen - die Art von Dingen, die Sie in Ihrem vorherigen Betriebssystem auf der Rückseite hatten. Kopieren und Einfügen ist eine dieser grundlegenden Funktionen, die Sie an der einen oder anderen Stelle verwenden müssen.

So machen Sie einen Schreibtest unter Linux mit tt

So machen Sie einen Schreibtest unter Linux mit tt

In der modernen Ära der Technologie ist das Tippen zu einer der häufigsten Tätigkeiten für viele Berufe geworden. Wenn Sie lernen, schneller und genauer zu tippen, können Sie mehr Dinge in der gleichen Zeit erledigen.

WLAN funktioniert nicht unter Ubuntu? So beheben Sie es

WLAN funktioniert nicht unter Ubuntu? So beheben Sie es

Ubuntu ist beliebt für seine Robustheit und relativ weniger Fehler. Aber es ist sicher nicht ohne Probleme. Ein solches Problem ist mit seinem Wi-Fi-Treiber. Möglicherweise schalten Sie Ihr System nur ein, um festzustellen, dass Ihr Wi-Fi nicht funktioniert.

So erstellen und scannen Sie QR-Codes auf Chromebook

So erstellen und scannen Sie QR-Codes auf Chromebook

Quick Response Codes, kurz QR-Codes, sind fortschrittliche Barcodes, die mehr Informationen enthalten als ein herkömmlicher Barcode. Diese Codes sind zweidimensional, sodass Sie sie vertikal oder horizontal scannen können.

So installieren und entfernen Sie Pakete in Arch Linux

So installieren und entfernen Sie Pakete in Arch Linux

Sie möchten Pakete unter Arch Linux installieren, wissen aber nicht wie? Viele Leute stehen vor diesem Problem, wenn sie zum ersten Mal von Debian-basierten Distributionen zu Arch migrieren. Sie können Pakete auf Ihrem Arch-basierten System jedoch problemlos mithilfe von Paketmanagern verwalten.

So installieren Sie Spotify unter Linux

So installieren Sie Spotify unter Linux

Spotify ist einer der größten Musik-Streaming-Dienste auf dem Markt. Es verfügt über native Clients sowohl für mobile (Android und iOS) als auch für Desktop-Geräte (Mac und Windows).

9 grundlegende Befehle für den Einstieg in Linux

9 grundlegende Befehle für den Einstieg in Linux

In Linux-Anleitungen wird oft erwartet, dass Sie bestimmte Operationen im Terminal ausführen, was auf den ersten Blick einschüchternd wirken kann. Aber keine Sorge; Dieser Spickzettel für Linux-Befehle behandelt das Öffnen eines Terminals und das Ausgeben einiger nützlicher Befehle.

So verschieben Sie Linux-Dateien mit dem Mv-Befehl

So verschieben Sie Linux-Dateien mit dem Mv-Befehl

Während Sie wahrscheinlich bereits wissen, wie Sie eine Datei unter Linux mit dem GUI-Dateibrowser verschieben, fragen Sie sich vielleicht, ob es im Terminal einen Verschiebebefehl gibt, mit dem Sie Dateien schnell in verschiedene Verzeichnisse verschieben können. Der mv-Befehl ist der gewünschte und mit seiner einfachen Syntax und einigen optionalen Sicherheitsflags einfach zu verwenden.

Die 15 besten Themen für Ubuntu 20.04 im Jahr 2020

Die 15 besten Themen für Ubuntu 20.04 im Jahr 2020

Viele neue aktualisierte Designs können auf dem neuen GNOME-Desktop von Ubuntu 20.04 installiert werden. Hier ist eine Liste der besten Ubuntu-Themes im Jahr 2020

Die 10 besten Debian-basierten Linux-Distributionen

Die 10 besten Debian-basierten Linux-Distributionen

Das Standard-Debian und sein beliebter Ableger Ubuntu sind großartige Allround-Optionen für ein Linux-System, aber wenn Sie speziellere Bedürfnisse haben, möchten Sie vielleicht eine Debian-Alternative.