WireGuard VPN Server Installation für Linux Ubuntu und Debian

WireGuard ist eine freie Software für den Aufbau eines sicheren virtuellen privaten Netzwerkes (VPN). Die VPN-Software verwendet Algorithmen und kryptografische Protokolle zur Verschlüsselung des Datenverkehrs. In dieser Installationsanleitung installieren wir einen WireGuard-VPN-Server für aktuelle Linux Ubuntu und Debian Distributionen. Ein großer Vorteil von WireGuard ist seine Einfachheit und Benutzerfreundlichkeit. WireGuard ist sehr leicht verständlich und eine der fortschrittlichsten VPN Lösungen weit und breit.

Die Idee und Zielsetzung dahinter: Erheblich performanter als OpenVPN und zeitgleich noch schlanker als IPsec zu sein. Die erste Version von WireGuard wurde im Dezember 2016 veröffentlicht. Im Vergleich zur deutlich älteren OpenVPN aus dem Jahr 2001 lässt sich schnell erkennen, wie viel jünger und moderner diese VPN-Lösung ist. Die Client-Software für den Aufbau eines Tunnels zum Server ist unter anderem für Microsoft Windows-, iOS-, Android- und Linux-Computer erhältlich.

Mit einer installierten WireGuard VPN Software auf einem Linux-Server gelingt dir ein leichter Einstieg in die Welt der VPN-Protokolle. In diesem Artikel geht es um die Installation über die Shell (Terminal) für den Server. Möchtest du den Client von WireGuard installieren, um dich von einem Client aus mit deinem frisch installierten VPN-Server zu verbinden, kannst du am Ende von dem Tutorial den passenden Client für dein Betriebssystem herunterladen.

Inhaltsverzeichnis: Ein Tutorial für die Installation eines WireGuard VPN Servers unter Linux Debian und Ubuntu

Hinweis: Wir verwenden für die Installation einige Befehle mit Superrechten (sudo). Installierst du die WireGuard VPN auf ein Hostsystem mit Debian, kannst du die Befehle einfach ohne den sudo-Prompt übernehmen, da das Sudo-Paket auf Linux Debian nicht vorinstalliert ist. Du kannst dieses jedoch bei Bedarf nachrüsten, indem du vor dem Start meiner Installationsanleitung für die WireGuard Installation einfach folgenden Befehl ausführst: apt-get install sudo

WireGuard Server Installieren auf Linux für Debian und Ubuntu Anleitung

Voraussetzungen für die Installation eines WireGuard VPN-Servers: Vorbereitungen

  • Das Hostsystem sollte über eine statische, nicht dynamische IP-Adresse verfügen. Alternativ kannst du die bereits vom DHCP-Server vergebene IP-Adresse auf deinem Router/DHCP-Server dem Host fest zuordnen, sodass zukünftig immer dieselbe IP-Adresse zugewiesen wird.
  • Du benötigst einen Zugang für die NAT-Konfiguration an deinem Router/Firewall, um die für die WireGuard-VPN notwendigen Ports freizugeben.
  • Du hast eine aktuelle Linux Ubuntu (21+) oder Debian 11 (Bullseye) Distribution installiert.

Linux Anleitung für die Installation von WireGuard VPN (Server): Schritt 1

Zuerst aktualisieren wir die Paketquellen auf unserem Server und installieren mögliche Upgrades und Neuerungen der bereits installieren Pakete mit folgendem Befehl:

sudo apt-get update && sudo apt-get upgrade

Anschließend folgt die Installation von WireGuard:

sudo apt-get install wireguard

Die Grundlage für einen WireGuard Server ist es, dass IP-Pakete vom System an das Interface von WireGuard weitergeleitet werden. Das konfigurieren wir im Kernel unseres Servers mit der dafür vorgesehenen Konfigurationsdatei. Verwende den Nano-Editor mit folgendem Befehl:

sudo nano /etc/sysctl.conf

Suche den Eintrag:

#net.ipv4.ip_forward=1

Entferne die Raute (# Auskommentieren) am Anfang der Zeile. Speichere die Änderungen (STRG+S) und verlasse die Datei wieder (STRG+X).

Die Zeile soll nun wie folgt aussehen:

net.ipv4.ip_forward=1

Damit die Änderungen wirksam werden, verwenden wir folgenden Befehl, um die Konfigurationsdatei in den aktuellen Kernel-Prozess zu übernehmen:

sudo sysctl -p

Jetzt setzen wir die Berechtigungen für das WireGuard-Verzeichnis mit folgendem Befehl fest:

umask 077 /etc/wireguard

WireGuard VPN-Server Installation für Linux: Schlüssel für die Kommunikation zwischen Server und Clients generieren: Schritt 2

Navigiere in das Verzeichnis von WireGuard:

cd /etc/wireguard

Generiere einen privaten und öffentlichen Schlüssel (Schlüsselpaar) für den WireGuard-Server mit diesem Befehl:

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

Folglich generieren wir noch ein Schlüsselpaar für unseren ersten VPN-Client auf unseren Server. Dieser Vorgang ist für jeden einzelnen Client notwendig und kann anschließend auch auf Client-Systemen selbst durchgeführt werden:

wg genkey | tee client1_private.key | wg pubkey > client1_public.key

WireGuard Interface konfigurieren (Server): Schritt 3

Nun konfigurieren wir die Konfigurationsdatei für das WireGuard-Interface „wg0“. 

(Bemerkung: Es können mehrere Interfaces angelegt werden, mit unterschiedlichen Ports)

Wir benötigen jetzt den privaten Schlüssel für die Einpflegung in die Konfigurationsdatei (WireGuard Interface). Diesen kannst du dir mit folgendem Befehl anzeigen lassen:

cat /etc/wireguard/privatekey

Tipp: Mögliche Befehle um Schlüssel auszulesen: cat client1_public.key, cat client1_privatekey usw.

Kopiere dir den angezeigten Schlüssel und erstelle eine neue Datei für unser Interface mit folgendem Befehl:

sudo touch /etc/wireguard/wg0.conf

Öffne das Interface mit dem Nano-Editor oder einen anderen Editor deiner Wahl:

sudo nano /etc/wireguard/wg0.conf

Kopiere diesen Inhalt und füge ihn in die Konfigurationsdatei für dein WireGuard-Interface ein (Füge wie beschrieben deine selbst generierten Schlüssel in die dafür vorgesehenen Bereiche ein): Passe die fettgedruckten Parameter an.

[Interface]

Address = 192.168.50.1/24

ListenPort = 51820

PrivateKey = Server_privat.key

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

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

# Client1-Verbindung

[Peer]

PublicKey = Client1_public.key

AllowedIPs = 192.168.50.2/32

IP-Adressen, Port (UDP) und die Subnetzmaske können individuell an deinem verwendeten Netzwerk angepasst werden. In dieser Installationsanleitung für WireGuard unter Linux arbeiten wir lediglich mit Beispieladressen. 

Bedenke auch, dass du für jeden Client eine feste Quell-IP-Adresse hinterlegen musst. Erstelle je nach Anzahl der Clients, die eine legitime Verbindung zum VPN-Server herstellen sollen, einen eigenen Schlüssel und füge die Daten wie oben beschrieben dem Interface hinzu. 

Die nächsten Clients implementierst du mit #Client2-Verbindung, #Client3-Verbindung und so weiter. Pro Client muss in das WireGuard-Interface ein eigenständiger [Peer]-Block angelegt werden.

Speichere die Änderungen (STRG+S) und verlasse die Konfigurationsdatei (STRG+X).

Aktiviere das soeben erzeugte und konfigurierte WireGuard-Interface mit dem Befehl:

sudo wg-quick up wg0

Damit der VPN-Server bei Server-Neustarts oder nachdem der Server heruntergefahren worden ist, das Interface automatisch mit dem Systemstart startet, führe noch den folgenden Befehl aus:

sudo systemctl enable wg-quick@wg0

Konfigurationsdatei für WireGuard-Clients erstellen: Schritt 4

Pro Client, der sich mit dem WireGuard-VPN Server verbinden soll, muss jeweils eine eigene Konfigurationsdatei angelegt werden. Wir legen in diesem Beispiel nur einen Client an, deshalb haben wir auch nur einen einzigen [Peer]-Block in das WireGuard-Interface „wg0“ angelegt.

Erstelle eine Client-Konfigurationsdatei unter Linux mit folgendem Befehl:

sudo touch /etc/wireguard/client1.conf

Jetzt öffnest du die soeben angelegt Datei mit dem Nano-Editor und fügst folgenden Inhalt ein und ersetze dabei die Schlüssel wie angegeben:

sudo nano /etc/wireguard/client1.conf

Kopieren und Einfügen (fettgedruckte Parameter bitte mit den für dein Netzwerk passenden Daten ergänzen):

[Interface]

PrivateKey = Client Privat-Schlüssel einfügen

Address = 192.168.50.2

DNS = 192.168.50.1

[Peer]

PublicKey = Server öffentlicher Schlüssel einfügen

Endpoint = 192.168.50.1:51820

AllowedIPs = 192.168.0.0/0

PersistentKeepalive = 25

Du musst die Parameter innerhalb der Datei für dein Netzwerk frei anpassen. Wenn sich die IP-Adresse deines Servers oder das Subnetz ändert, musst du die Änderungen auch hier eintragen. Das ist auch der Grund, weshalb es notwendig ist, dass dein Server über eine statische IP-Adresse verfügen sollte.

WireGuard-VPN-Server Dienst starten: Schritt 5

In dieser Anleitung hast du die Konfiguration deines WireGuard-VPN-Servers für Linux Ubuntu und Debian erfolgreich abgeschlossen. Bedenke, dass du den Port: 51820 nach außen hin freigeben musst, damit sich Clients auch von außerhalb deines Netzwerkes mit deinem VPN-Server verbinden können. Du kannst den Server jetzt in Betrieb nehmen, indem du den folgenden Befehl eingibst:

sudo systemctl start wg-quick@wg0

Den Status kannst du wie folgt überprüfen:

sudo systemctl status wg-quick@wg0

Jetzt können sich deine Clients mit deinem Server verbinden. Je nach Betriebssystem des Clients bietet WireGuard unterschiedliche Client-VPN-Software zum Download an. Dort muss anschließend nur noch die Client-Konfigurationsdatei importiert werden und schon kann die VPN-Verbindung hergestellt werden.

Download WireGuard Software für Clients:

Schreibe einen Kommentar

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