So richten Sie WireGuard VPN unter Ubuntu 20.04 ein

WireGuard ist ein Open-Source- und sicherheitsorientiertes virtuelles privates Netzwerk, das auf Einfachheit und Benutzerfreundlichkeit ausgelegt ist. Es unterstützt verschiedene Betriebssysteme, darunter Linux, macOS, Windows, BSD und Android. Es ist ein einfaches und universell einsetzbares VPN, das leicht auf kleinen Geräten bis hin zu High-End-Servern eingesetzt werden kann. Es ist ein Punkt-zu-Punkt-VPN-Server anstelle eines Client-Server-Modells. Es verwendet einen Mechanismus zum Austausch öffentlicher Schlüssel, um den Client zu authentifizieren.

Wenn Sie ein leichtgewichtiges und schnelles VPN suchen, dann ist das WireGuard VPN die beste Wahl für Sie. In diesem Tutorial zeigen wir Ihnen, wie Sie den WireGuard VPN Server und Client auf Ubuntu 20.04 installieren.

Voraussetzungen

  • Zwei Server, auf denen Ubuntu 20.04 Server läuft.
  • Auf beiden Servern ist ein Root-Passwort konfiguriert.

Erste Schritte

Zunächst wird empfohlen, Ihre Systempakete auf die neueste Version zu aktualisieren. Sie können sie mit dem folgenden Befehl aktualisieren:

apt-get update -y

Sobald alle Pakete aktualisiert sind, müssen Sie die Iptables in Ihrem System installieren. Sie können es mit dem folgenden Befehl installieren:

apt-get install iptables -y

Sobald die Installation abgeschlossen ist, können Sie mit dem nächsten Schritt fortfahren.

WireGuard VPN-Server installieren

Standardmäßig ist das WireGuard-Paket im Standard-Repository von Ubuntu 20.04 verfügbar. Sie können es installieren, indem Sie den folgenden Befehl ausführen:

apt-get install wireguard -y

Sobald das WireGuard-Paket installiert ist, können Sie mit dem nächsten Schritt fortfahren.

WireGuard-Server konfigurieren

WireGuard funktioniert durch den Austausch von öffentlichen Schlüsseln zwischen jedem Gerät im WireGuard-Netzwerk. Sie müssen also einen öffentlichen und einen privaten Schlüssel im Server erstellen.

WireGuard bietet das Befehlszeilenprogramm wg und wg-quick, um einen Schlüssel zu erstellen und die Schnittstellen zu verwalten.

Sie können sowohl den öffentlichen als auch den privaten Schlüssel mit dem folgenden Befehl erstellen:

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

Sobald beide Schlüssel erstellt sind, können Sie sie mit dem folgenden Befehl überprüfen:

ls /etc/wireguard

Sie sollten die folgende Ausgabe sehen:

privatekey  publickey

Sie können den Inhalt des privaten Schlüssels mit dem folgenden Befehl anzeigen:

cat /etc/wireguard/privatekey

Sie sollten die folgende Ausgabe sehen:

4M1l65NIaoR2+fQ6xVnIdwj6iVjsSPDkEMuzVnbFh3A=

Den Inhalt des öffentlichen Schlüssels können Sie sich mit folgendem Befehl anzeigen lassen:

cat /etc/wireguard/publickey

Sie sollten folgende Ausgabe sehen: Sie sollten folgende Ausgabe sehen:

00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4=

Als nächstes müssen Sie eine Netzwerkschnittstelle für den WireGuard erstellen. Sie können es mit folgendem Befehl anlegen:

nano /etc/wireguard/wg0.conf

Fügen Sie die folgenden Zeilen ein:

[Interface]
Address = 10.0.0.1/24
SaveConfig = true
ListenPort = 51820
PrivateKey = server-private-key
PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Wo:

  • Address : Eine private IP-Adresse für die Schnittstelle wg0.
  • ListenPort : Geben Sie den Listening-Port des WireGuard an.
  • PrivateKey : Ein privater Schlüssel, der in der Datei /etc/wireguard/privatekey gespeichert ist.
  • PostUp : Geben Sie den Befehl an, mit dem der Datenverkehr den Server verlassen kann und die VPN-Clients Zugang zum Internet erhalten. Ersetzen Sie außerdem eth0 durch den Namen Ihrer Netzwerkschnittstelle.

Legen Sie als nächstes die richtigen Berechtigungen für die Dateien privatekey und wg0 fest.

chmod 600 /etc/wireguard/{privatekey,wg0.conf}

Als Nächstes aktivieren Sie die Schnittstelle wg0, indem Sie den folgenden Befehl ausführen:

wg-quick up wg0

Sie sollten die folgende Ausgabe erhalten:

[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.1/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Sie können den WireGuard-Dienst auch mit systemd starten, wie unten gezeigt:

systemctl start wg-quick@wg0.service

Aktivieren Sie als Nächstes den WireGuard-Dienst, damit er beim Neustart des Systems gestartet wird, indem Sie den folgenden Befehl ausführen:

systemctl enable wg-quick@wg0.service

Überprüfen Sie anschließend den Status des WireGuard-Dienstes mit dem folgenden Befehl:

systemctl status wg-quick@wg0.service

Sie sollten die folgende Ausgabe erhalten:

? wg-quick@wg0.service - WireGuard via wg-quick(8) for wg0
     Loaded: loaded (/lib/systemd/system/wg-quick@.service; disabled; vendor preset: enabled)
     Active: active (exited) since Thu 2020-12-10 11:42:14 UTC; 7s ago
       Docs: man:wg-quick(8)
             man:wg(8)
             https://www.wireguard.com/
             https://www.wireguard.com/quickstart/
             https://git.zx2c4.com/wireguard-tools/about/src/man/wg-quick.8
             https://git.zx2c4.com/wireguard-tools/about/src/man/wg.8
    Process: 2173 ExecStart=/usr/bin/wg-quick up wg0 (code=exited, status=0/SUCCESS)
   Main PID: 2173 (code=exited, status=0/SUCCESS)

Dec 10 11:42:14 ubuntu2004 systemd[1]: Starting WireGuard via wg-quick(8) for wg0...
Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] ip link add wg0 type wireguard
Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] wg setconf wg0 /dev/fd/63
Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] ip -4 address add 10.0.0.1/24 dev wg0
Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] ip link set mtu 1420 up dev wg0
Dec 10 11:42:14 ubuntu2004 wg-quick[2173]: [#] iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Dec 10 11:42:14 ubuntu2004 systemd[1]: Finished WireGuard via wg-quick(8) for wg0.

Sie können auch den Status der Schnittstelle wg0 mit folgendem Befehl überprüfen:

wg show wg0

Sie sollten die folgende Ausgabe erhalten:

interface: wg0
  public key: 00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4=
  private key: (hidden)
  listening port: 51820

Sie können den IP-Adress-Status der Schnittstelle wg0 mit folgendem Befehl abrufen:

ip a show wg0

Sie sollten die folgende Ausgabe erhalten:

13: wg0: <POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1420 qdisc noqueue state UNKNOWN group default qlen 1000
    link/none 
    inet 10.0.0.1/24 scope global wg0
       valid_lft forever preferred_lft forever

Wenn Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Aktivieren der IP-Weiterleitung

Als nächstes müssen Sie die IP-Weiterleitung in Ihrem Server aktivieren, um Pakete zwischen VPN-Clients und dem Internet zu routen. Sie können es aktivieren, indem Sie die Datei /etc/sysctl.conf bearbeiten:

nano /etc/sysctl.conf

Ändern Sie die folgende Zeile:

net.ipv4.ip_forward=1

Speichern und schließen Sie die Datei und führen Sie dann den folgenden Befehl aus, um die Konfigurationsänderungen anzuwenden:

sysctl -p

Wenn Sie damit fertig sind, können Sie mit dem nächsten Schritt fortfahren.

WireGuard-Client installieren und konfigurieren

Zunächst müssen Sie das WireGuard-Paket auf dem Client-Rechner installieren. Sie können es mit dem folgenden Befehl installieren:

apt-get install wireguard -y

Nach der Installation des WireGuard-Pakets erstellen Sie einen privaten und einen öffentlichen Schlüssel mit dem folgenden Befehl:

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

Sobald beide Schlüssel erstellt sind, müssen Sie eine neue Konfigurationsdatei erstellen.

Diese können Sie mit dem folgenden Befehl erstellen:

nano /etc/wireguard/wg0.conf

Fügen Sie die folgenden Zeilen ein:

[Interface]
PrivateKey = client-private-key
Address = 10.0.0.2/24

[Peer]
PublicKey = server-public-key
Endpoint = server-ip-address:51820
AllowedIPs = 0.0.0.0/0

Speichern und schließen Sie die Datei, wenn Sie fertig sind.

Wo:

  • Address : Eine private IP-Adresse für die Schnittstelle wg0.
  • PrivateKey : Geben Sie den privaten Schlüssel auf dem Client-Rechner an.
  • PublicKey: Geben Sie den öffentlichen Schlüssel auf dem Server-Rechner an.
  • Endpoint : Geben Sie die IP-Adresse des Servers an.
  • AllowedIPs : Geben Sie die Liste der erlaubten IP-Adressen an.

Als Nächstes müssen Sie den öffentlichen Schlüssel des Clients und die IP-Adresse auf dem Servercomputer hinzufügen.

Führen Sie auf dem Servercomputer den folgenden Befehl aus, um beides hinzuzufügen:

wg set wg0 peer client-public-key allowed-ips 10.0.0.2

Als Nächstes müssen Sie die Schnittstelle wg0 auf dem Client-Rechner einrichten.

Führen Sie auf dem Client-Computer den folgenden Befehl aus, um die Schnittstelle einzurichten:

wg-quick up wg0

Sie sollten die folgende Ausgabe erhalten:

[#] ip link add wg0 type wireguard
[#] wg setconf wg0 /dev/fd/63
[#] ip -4 address add 10.0.0.2/24 dev wg0
[#] ip link set mtu 1420 up dev wg0
[#] wg set wg0 fwmark 51820

Zu diesem Zeitpunkt ist Ihr Client-Rechner mit dem WireGuard VPN-Server verbunden. Sie können den Verbindungsstatus mit dem folgenden Befehl überprüfen:

wg

Sie sollten die folgende Ausgabe erhalten:

interface: wg0
  public key: 3FXBDpAO4Vado1tDjLtVQt+JnOCa+W2piLeFYQ8KyB4=
  private key: (hidden)
  listening port: 38830
  fwmark: 0xca6c

peer: 00Jsbppv/gVMy6oHMfFZ+T/eEFBAWVbiZo33HjQBSU4=
  endpoint: 69.87.216.36:51820
  allowed ips: 0.0.0.0/0
  latest handshake: 41 seconds ago
  transfer: 5.27 KiB received, 12.97 KiB sent

Fazit

Herzlichen Glückwunsch! Sie haben den WireGuard VPN-Server und -Client erfolgreich auf dem Ubuntu 20.04-Server installiert und konfiguriert. Nun sollte der Datenverkehr von Ihrem Client-Rechner über Ihren Server-Rechner geleitet werden. Sie können nun anonym im Internet surfen und Ihre Daten privat halten.

Das könnte dich auch interessieren …