GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So richten Sie WireGuard VPN unter Linux ein

Wenn Sie mehr als einen Computer bei der Arbeit oder zu Hause verwenden, möchten Sie wahrscheinlich von jedem aus auf Ihr internes Netzwerk zugreifen können. Die gute Nachricht ist, dass WireGuard VPN dieses Problem löst.

In diesem Tutorial erfahren Sie, wie Sie WireGuard VPN einrichten, um ein vollwertiges VPN auszuführen, um Ihre Computer zu verbinden und Ihnen sicheren Zugriff zu gewähren.

Bereit, sich die Hände schmutzig zu machen? Zeit einzutauchen!

Voraussetzungen

Dieses Tutorial wird eine praktische Demonstration sein. Wenn Sie mitmachen möchten, stellen Sie sicher, dass Sie Folgendes haben:

  • Ein Linux-System – Dieses Tutorial verwendet Ubuntu 20.04 LTS, aber alle Debian-Distributionen funktionieren für die Demos.
  • Ein lokaler Computer – Diese Demo verwendet einen Windows 10 64-Bit-Client, um eine Verbindung zum WireGuard VPN-Server herzustellen. 💡 Wenn Sie einen Remote-Server verwenden, vergewissern Sie sich, dass Sie die Berechtigung haben, sich von Ihrem lokalen Computer aus mit diesem Server zu verbinden.
  • Ein Nicht-Root-Benutzer mit [sudo]() Privilegien.

Installieren von WireGuard

Standardmäßig ist WireGuard nicht auf Ihrer Ubuntu-Linux-Distribution installiert. Sie installieren also zuerst WireGuard mit dem APT-Paketmanager.

Sie können WireGuard auch aus der Quelle herunterladen und kompilieren, aber für diese Demo reicht eine minimale Einrichtung aus.

Führen Sie den folgenden Befehl zu update aus der Paketdatenbank des Systems.

sudo apt update -y

Führen Sie nun den folgenden Befehl aus, um wireguard zu installieren Paket. Die wireguard Paket bietet ein minimalistisches Kernel-Modul zur Unterstützung sicherer privater Netzwerke und Protokolle.

Das WireGuard-Protokoll beinhaltet öffentliche Schlüssel, die in einem SSH-ähnlichen Authentifizierungsschema verteilt werden, das mit symmetrischen Verschlüsselungsschlüsseln kombiniert wird, um private Punkt-zu-Punkt- oder Standort-zu-Standort-Verbindungen herzustellen.

sudo apt install wireguard -y

Nach der Installation läuft WireGuard als Kernelmodul. WireGuard wird im Kernel-Space ausgeführt, da WireGuard direkten Zugriff auf Ihre Netzwerkschnittstellen benötigt, um eine VPN-Verbindung herzustellen.

Generieren eines Schlüsselpaars

Nachdem Sie WireGuard installiert haben, ist es an der Zeit, ein Schlüsselpaar (einen öffentlichen Schlüssel und einen privaten Schlüssel) zu generieren, indem Sie wg genkey ausführen Befehl. Der öffentliche Schlüssel ist Ihre WireGuard „Identität“. Jede Person, die sich mit Ihrem VPN verbinden möchte, benötigt Zugriff auf diesen öffentlichen Schlüssel. Im Gegensatz dazu verwenden Sie den privaten Schlüssel, um eine sichere Verbindung herzustellen.

Halten Sie den privaten Schlüssel geheim. Jeder, der Zugriff auf Ihren privaten Schlüssel erhält, kann sich damit mit Ihrem VPN verbinden.

1. Führen Sie umask aus Befehl unten, um Ihr Schlüsselpaar lesbar zu machen. Die umask Der Befehl gibt die Dateimodus-Erstellungsmaske an und bestimmt die Berechtigungen, die neu erstellten Dateien erteilt werden.

Sie verwenden einen umasks Wert von 077 sodass alle neu erstellten Dateien von allen lesbar, aber nur von ihrem Eigentümer beschreibbar sind. Dieser Schritt stellt sicher, dass Ihre WireGuard-Schlüssel nicht weltweit editierbar sind.

umask 077

2. Führen Sie als Nächstes den folgenden Befehl aus, um (wg genkey ) ein Schlüsselpaar.

Der Befehl schreibt den privaten Schlüssel in die /etc/wireguard/privatekey Datei und den öffentlichen Schlüssel (wg pubkey | sudo tee ) an /etc/wireguard/publickey Datei.

wg genkey | sudo tee /etc/wireguard/privatekey | wg pubkey | sudo tee /etc/wireguard/publickey

Nachdem Sie den Befehl ausgeführt haben, erhalten Sie einen Wert auf Ihrem Terminal, der Ihr öffentlicher Schlüssel ist, wie unten gezeigt. Die folgende Ausgabe bestätigt, dass Sie Ihren öffentlichen Schlüssel erfolgreich generiert haben.

Kopieren und speichern Sie diesen öffentlichen Schlüssel an einem anderen Ort, da Ihre Kollegen diesen Veröffentlichungsschlüssel verwenden werden, um sich mit Ihrem WireGuard VPN zu verbinden. Ihr WireGuard VPN ist wie ein Tunnel zwischen Peers.

3. Führen Sie abschließend cat aus Befehl unten, um zu überprüfen, ob Sie Ihren privaten Schlüssel erfolgreich generiert haben.

cat /etc/wireguard/privatekey

Notieren Sie Ihren privaten Schlüssel, wie in der Ausgabe unten, wie Sie ihn in der Konfiguration Ihres WireGuard VPN-Servers definieren werden.

Konfigurieren des WireGuard VPN-Servers

Nachdem Sie nun ein Schlüsselpaar für eine sichere Serververbindung generiert haben, ist der nächste Schritt die Konfiguration des WireGuard VPN-Servers.

1. Erstellen Sie eine neue Datei namens wg0.conf mit Ihrem bevorzugten Texteditor und füllen Sie die wg0.conf Datei mit folgendem Inhalt. Stellen Sie sicher, dass Sie eth0 ersetzen nach POSTROUTING -o mit Ihrer Netzwerkschnittstelle .

Die Benennung von Konfigurationsdateien liegt bei Ihnen, aber damit Sie sich die Namen leichter merken können, wählen Sie Namen wie wg0, wg1 (wg steht für WireGuard) oder tun0, tun1 (tun steht für Tunneling) und so weiter. em>

2. Füllen Sie die wg0.conf aus Datei mit folgendem Inhalt. Stellen Sie sicher, dass Sie eth0 ersetzen nach dem POSTROUTING -o mit Ihrer Netzwerkschnittstelle, speichern Sie die Änderungen und beenden Sie den Editor.

Die wg0.conf Datei enthält alle Netzwerk- und Sicherheitsparameter Ihrer WireGuard-Schnittstelle. Ohne sie können Ihre WireGuard-Schnittstelle und Ihre Kollegen keine sichere Verbindung herstellen.

# Defines your WireGuard interface name
[Interface]
# Sets the server's Public IP Address. This network is routed to your server's 
# eth0 interface. This is an IP range of private IPv4 that you will use 
# for your peers to connect to the broader internet using your VPN server. 
# Your peer can use any private IPs from 10.8.0.1 to 10.8.0.255.
Address = 10.0.0.1/24
# Set the value to "true" to save your server's config file automatically 
# after a connection is established or when you shut down your VPN server.
SaveConfig = true
# Sets the port that your VPN server listens on. This port should be open on your router
# so that your peers can access this port to connect to your VPN
ListenPort = 51820
# Replace  with your private key generated earlier.
PrivateKey = 
# Sets WireGuard to automatically accept new connections, which allows your peers 
# to access your server with their own public IP address. Your VPN server forwards 
# your peers’ connection through your private network to make it seem 
# like they are coming directly from the peers.
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
# Reverses the PostUp values when there's a disconnection 
# to make the network settings return to original state
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

3. Führen Sie den folgenden Befehl aus, um wg0 einzuschalten Schnittstelle.

sudo wg-quick up wg0 

4. Führen Sie zuletzt den folgenden Befehl aus, um Ihren wg0 zu überprüfen Schnittstellenstatus.

sudo wg show wg0 

Sie können den wg0 sehen Schnittstelle läuft und wartet auf Verbindungen auf Port 51820.

Servernetzwerk und Firewall konfigurieren

Neben der Konfiguration Ihres WireGuard-Servers müssen Sie auch Ihr lokales Netzwerk und Ihre Firewall konfigurieren. Dadurch haben Sie mehr Kontrolle darüber, wer sich mit Ihrem Server verbinden kann.

Sie leiten Port UDP 51820 weiter damit sich Ihre Kollegen mit Ihrem VPN-Server verbinden können, aber Sie können diesen Port nicht die ganze Zeit offen halten. Sie konfigurieren also die NAT-Funktion Ihres Routers so, dass der Datenverkehr auf Port 51820 weitergeleitet wird über Ihren VPN-Server.

1. Öffnen Sie die etc/sysctl.conf Datei mit Ihrem bevorzugten Editor.

2. Suchen Sie nach #net.ipv4.ip_forward=1 und kommentieren Sie ihn aus Zeile durch Löschen der „# ”-Symbol, um die IPv4-IP-Weiterleitung zu aktivieren und die Änderungen zu speichern.

3. Führen Sie als Nächstes den folgenden sysctl aus Befehl, die Änderungen anzuwenden und dauerhaft zu machen (-p ).

sudo sysctl -p

Ihr WireGuard-Server leitet nun eingehenden Datenverkehr von den Clients Ihrer WireGuard-Peers an das breitere Internet weiter. Nach der Weiterleitung leitet WireGuard die Daten über die eth0-VPN-Ethernet-Schnittstelle an Peers zurück.

Aber jeglicher Datenverkehr, der aus dem breiteren Internet kommt und an Ihren lokalen WireGuard-Server gerichtet ist, wird von der standardmäßigen Linux-Netzwerk-Firewall abgewiesen. Wenn Sie UFW als Firewall verwenden, müssen Sie einige weitere Regeln hinzufügen.

4. Führen Sie den folgenden Befehl aus, um udp zuzulassen Verbindungen auf Port 51820 selbst.

sudo ufw allow 51820/udp

5. Führen Sie nun den folgenden Befehl aus, um den Status Ihrer Firewall zu überprüfen. sudo ufw status command

sudo ufw status command

Ihre UFW-Firewall sollte nun wie folgt aussehen:

Konfigurieren eines WireGuard-Clients

Ihr WireGuard VPN-Server läuft einwandfrei, also konfigurieren Sie als nächstes einen Client, um die Verbindung mit Ihrem WireGuard VPN-Server zu testen. Ihr Client kann Windows, MAC OS, Linux oder BSD sein, aber diese Demo verwendet einen Windows 10 64-Bit-Client.

Ein WireGuard-Client ist ein Gerät, das sich mit seinem eigenen eindeutigen öffentlichen Schlüssel (ID) mit dem VPN-Server verbindet. Der WireGuard-Server authentifiziert den Client und verschlüsselt den gesamten Datenverkehr zwischen ihm und dem Client.

Beachten Sie, dass die folgenden Schritte auf allen WireGuard-Client-Geräten durchgeführt werden müssen.

1. Navigieren Sie zur offiziellen Download-Seite für WireGuard, um das WireGuard-Client-Installationsprogramm für Ihr Betriebssystem herunterzuladen und auszuführen. Diese Demo verwendet den Client für Windows.

2. Öffnen Sie die WireGuard-Clientanwendung und klicken Sie auf Tunnel hinzufügen (unten links) —> Leeren Tunnel hinzufügen um einen leeren Tunnel zu erstellen. Sie erhalten ein Popup-Fenster zum Konfigurieren der VPN-Netzwerkverbindung (Schritt drei).

Konfigurieren Sie die VPN-Netzwerkverbindung wie folgt:

  • Geben Sie den Namen Ihrer VPN-Netzwerkverbindung ein, wie unten gezeigt. Aber für diese Demo ist der Name auf ubuntu gesetzt .
  • Belassen Sie den standardmäßig generierten PrivateKey , fügen Sie unten eine neue Zeile hinzu und geben Sie Address = ein. Ersetzen Sie durch die statische IP Ihres WireGuard-Clients.
  • Fügen Sie einen neuen [Peer] hinzu Block und fügen Sie darunter einen neuen PublicKey = hinzu Linie. Ersetzen Sie mit dem öffentlichen Schlüssel Ihres VPN-Servers, den Sie im Abschnitt „Generieren eines Schlüsselpaars“ (Schritt zwei) gespeichert haben.
  • Neuen Endpunkt hinzufügen =:51820 , wobei 51820 ist der Port, auf den Ihr WireGuard-Server lauscht. Ersetzen Sie mit der öffentlichen IP Ihres VPN-Servers.
  • Fügen Sie eine neue AllowedIPs – 0.0.0.0/0 hinzu Linie. Diese Zeile ermöglicht dem WireGuard-Client den Zugriff auf alle IPv4- und IPv6-Adressen im Netzwerk.
  • Klicken Sie auf Speichern um die Konfiguration der VPN-Netzwerkverbindung zu speichern.

4. Kehren Sie schließlich zu Ihrem VPN-Serverterminal zurück und führen Sie den folgenden Befehl aus, um den öffentlichen Schlüssel und die IP-Adresse des Clients zum VPN-Server hinzuzufügen.

Achten Sie darauf, Folgendes zu ersetzen:

  • – mit Ihrem öffentlichen Client-Schlüssel.
  • 10.0.0.2 – mit der IP-Adresse Ihres Client-Geräts, damit Ihr VPN-Server mit Ihrem Client-Gerät kommunizieren kann.sudo wg set wg0 peer allowed-ips 10.0.0.2

Testen, ob der VPN-Tunnel funktioniert

Inzwischen steht Ihnen bereits ein funktionierender WireGuard-Server und -Client zur Verfügung. Jetzt ist es an der Zeit, die Verbindung zwischen ihnen zu testen und zu sehen, ob der VPN-Tunnel funktioniert.

1. Öffnen Sie Ihre WireGuard-Clientanwendung und klicken Sie auf ubuntu Verbindung (VPN-Tunnel), die Sie erstellt haben.

2. Klicken Sie auf Aktivieren Schaltfläche, um den VPN-Tunnel zu aktivieren.

3. Nachdem Sie den VPN-Tunnel aktiviert haben, sehen Sie den Status auf Aktiv ändern , Wie nachfolgend dargestellt. Das ist es! Sie haben jetzt eine erfolgreiche Verbindung zu Ihrem VPN-Server.

Schlussfolgerung

In diesem Tutorial haben Sie gelernt, wie Sie einen WireGuard VPN-Server konfigurieren. Sie haben auch einen Client konfiguriert, um zu testen, ob die Verbindung zwischen dem WireGuard VPN-Server und dem Client funktioniert, indem Sie einen VPN-Tunnel erstellen.

In diesem Stadium können Sie jetzt mehrere WireGuard-Server und -Clients für ein verschlüsseltes privates Netzwerk ohne zentralisierte Autoritätskontrolle konfigurieren.

Wie werden Sie auf diesem neu gewonnenen Wissen aufbauen? Versuchen Sie vielleicht, Ansible zu erkunden, indem Sie ein WireGuard-VPN einrichten?


Linux
  1. So richten Sie Wireguard VPN auf CentOS 8 ein

  2. So richten Sie WireGuard VPN unter Ubuntu 20.04 ein

  3. So richten Sie WireGuard VPN auf Ubuntu ein (eine Schritt-für-Schritt-Anleitung)

  4. So richten Sie SSH-Schlüssel ein

  5. So richten Sie WireGuard VPN unter CentOS 8 ein

So richten Sie WireGuard VPN unter Debian 10 ein

So richten Sie den Pritunl VPN-Server unter Rocky Linux 8 ein

So legen Sie den Hostnamen unter Linux fest oder ändern ihn

So richten Sie den öffentlichen und privaten SSH-Schlüssel unter Linux ein

So richten Sie SSH-Schlüssel unter Debian 11 Linux ein

So richten Sie WireGuard VPN unter Debian 11 ein