WireGuard – Ein schneller, moderner und sicherer VPN-Tunnel für Linux

WireGuard ist eine moderne, sichere, plattformübergreifende und allgemein verwendbare VPN-Implementierung, die modernste Kryptographie verwendet. Sie zielt darauf ab, schneller, einfacher, schlanker und funktionaler zu sein als IPsec und beabsichtigt, leistungsfähiger zu sein als OpenVPN.

Es ist für den Einsatz in verschiedenen Situationen konzipiert und kann auf eingebetteten Schnittstellen, voll ausgelasteten Backbone-Routern und Supercomputern gleichermaßen eingesetzt werden; und läuft auf Linux, Windows, macOS, BSD, iOS und Android Betriebssystemen.

Empfohlene Lektüre: 13 Beste VPN-Dienste mit lebenslanger Lizenz

Es bietet eine äußerst einfache, aber leistungsstarke Benutzeroberfläche, die einfach sein soll, so einfach zu konfigurieren und bereitzustellen wie SSH. Zu den wichtigsten Funktionen gehören eine einfache Netzwerkschnittstelle, kryptografische Schlüsselrouten, integriertes Roaming und Containerunterstützung.

Beachten Sie, dass zum Zeitpunkt der Abfassung dieser Zeilen eine intensive Entwicklung stattfindet: Einige Teile arbeiten auf eine stabile Version 1.0 hin, während andere bereits dort sind (funktionieren einwandfrei).

In diesem Artikel erfahren Sie, wie Sie WireGuard in Linux installieren und konfigurieren, um einen VPN-Tunnel zwischen zwei Linux-Hosts zu erstellen.

Testumgebung

Für diese Anleitung ist unsere Konfiguration (Hostname und öffentliche IP) wie folgt:

Node 1 : tecmint-appserver1: 		10.20.20.4
Node 2 : tecmint-dbserver1: 		10.20.20.3

Wie man WireGuard in Linux-Distributionen installiert

Melden Sie sich auf beiden Knoten an und installieren Sie WireGuard mithilfe des entsprechenden Befehls für Ihre Linux-Distributionen wie folgt.

Installieren Sie WireGuard in RHEL 8

$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
$ sudo subscription-manager repos --enable codeready-builder-for-rhel-8-$(arch)-rpms
$ sudo yum copr enable jdoss/wireguard
$ sudo yum install wireguard-dkms wireguard-tools

Installieren Sie WireGuard in CentOS 8

$ sudo yum install epel-release
$ sudo yum config-manager --set-enabled PowerTools
$ sudo yum copr enable jdoss/wireguard
$ sudo yum install wireguard-dkms wireguard-tools

Installieren Sie WireGuard in RHEL/CentOS 7

$ sudo yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
$ sudo curl -o /etc/yum.repos.d/jdoss-wireguard-epel-7.repo https://copr.fedorainfracloud.org/coprs/jdoss/wireguard/repo/epel-7/jdoss-wireguard-epel-7.repo
$ sudo yum install wireguard-dkms wireguard-tools

Installieren Sie WireGuard in Fedora

$ sudo dnf install wireguard-tools

Installieren Sie WireGuard in Debian

# echo "deb http://deb.debian.org/debian/ unstable main" > /etc/apt/sources.list.d/unstable.list
# printf 'Package: *\nPin: release a=unstable\nPin-Priority: 90\n' > /etc/apt/preferences.d/limit-unstable
# apt update
# apt install wireguard

Installieren Sie WireGuard in Ubuntu

$ sudo add-apt-repository ppa:wireguard/wireguard
$ sudo apt-get update
$ sudo apt-get install wireguard

Installieren Sie WireGuard in OpenSUSE

$ sudo zypper addrepo -f obs://network:vpn:wireguard wireguard
$ sudo zypper install wireguard-kmp-default wireguard-tools

Konfigurieren eines WireGuard-VPN-Tunnels zwischen zwei Linux-Hosts

Wenn die Installation von Wireguard auf beiden Knoten abgeschlossen ist, können Sie Ihre Knoten neu starten oder das Wireguard-Modul aus dem Linux-Kernel hinzufügen mithilfe des folgenden Befehls auf beiden Knoten.

$ sudo modprobe wireguard
OR
# modprobe wireguard

Anschließend generieren Sie auf beiden Knoten basierend auf Base64-codierten öffentlichen und privaten Schlüsseln mithilfe des Dienstprogramms wg wie folgt.

---------- On Node 1 ---------- 
$ umask 077
$ wg genkey >private_appserver1

---------- On Node 2 ----------
$ umask 077
$ wg genkey >private_dbserver1
$ wg pubkey < private_dbserver1
Generate Keys on Both Nodes

Als nächstes müssen Sie eine Netzwerkschnittstelle (z. B. wg0) für Wireguard auf den Peers erstellen, wie unten gezeigt. Weisen Sie dann den neuen Netzwerkschnittstellen IP-Adressen zu (für diese Anleitung verwenden wir das Netzwerk 192.168.10.0/24).

---------- On Node 1 ---------- 
$ sudo ip link add dev wg0 type wireguard
$ sudo ip addr add 192.168.10.1/24 dev wg0

---------- On Node 2 ----------
$ sudo ip link add dev wg0 type wireguard
$ sudo ip addr add 192.168.10.2/24 dev wg0

Um die angehängten Netzwerkschnittstellen auf den Peers und ihre IP-Adressen anzuzeigen, verwenden Sie den folgenden IP-Befehl.

$ ip ad
View Network Interfaces with IP Addresses

Weisen Sie als Nächstes jedem Peer den privaten Schlüssel für die Netzwerkschnittstelle wg0 zu und bringen Sie die Schnittstelle wie folgt nach oben.

---------- On Node 1 ---------- 
$ sudo wg set wg0 private-key ./private_appserver1
$ sudo ip link set wg0 up

---------- On Node 2 ----------
$ sudo wg set wg0 private-key ./private_dbserver1
$ sudo ip link set wg0 up

Nun, da beide Links mit ihnen verbundenen privaten Schlüsseln vorhanden sind, führen Sie das wg-Dienstprogramm ohne Argumente aus, um die Konfiguration der WireGuard-Schnittstellen auf den Peers abzurufen. Erstellen Sie dann Ihren WireGuard-VPN-Tunnel wie folgt.

Der Peer (öffentlicher Schlüssel), erlaubte IPs (Netzwerk/Subnetzmaske) und Endpunkt (öffentliche IP:Port) gehören dem gegenteiligen Peer.

----------  On Node1 (Use the IPs and Public Key of Node 2) ---------- 
$ sudo wg
$ sudo wg set wg0 peer MDaeWgZVULXP4gvOj4UmN7bW/uniQeBionqJyzEzSC0= allowed-ips 192.168.10.0/24  endpoint  10.20.20.3:54371

----------  On Node2 (Use the IPs and Public Key of Node 1) ----------
$ sudo wg
$ sudo wg set wg0 peer 6yNLmpkbfsL2ijx7z996ZHl2bNFz9Psp9V6BhoHjvmk= allowed-ips 192.168.10.0/24 endpoint  10.20.20.4:42930
Create Wireguard VPN Tunnel Between Linux Machines

Testen des WireGuard-VPN-Tunnels zwischen Linux-Systemen

Sobald der WireGuard-VPN-Tunnel erstellt wurde, pingen Sie den gegenteiligen Peer unter Verwendung der Adresse der WireGuard-Netzwerkschnittstelle an. Führen Sie dann das wg-Dienstprogramm erneut aus, um einen Handshake zwischen den Peers zu bestätigen, wie gezeigt.

---------- On Node 1 ----------
$ ping 192.168.10.2
$ sudo wg

---------- On Node 2 ----------
$ ping 192.168.10.1
$ sudo wg
Test Wireguard VPN Tunnel Between Linux Machines

Das war’s fürs Erste! WireGuard ist eine moderne, sichere, einfache, aber leistungsstarke und einfach zu konfigurierende VPN-Lösung für die Zukunft. Es befindet sich in intensiver Entwicklung und ist daher noch nicht abgeschlossen. Weitere Informationen, insbesondere zu seinen internen Abläufen und anderen Konfigurationsoptionen, finden Sie auf der WireGuard-Homepage.

Source:
https://www.tecmint.com/wireguard-secure-vpn-tunnel-for-linux/