WireGuard VPN auf Ubuntu 24.04 installieren und konfigurieren

WireGuard ist ein quelloffenes Virtual Private Network (VPN), das moderne Kryptografieverfahren nutzt, um die Kommunikation zwischen Servern und Clients abzusichern. Es ist leichtgewichtig, effizient und besitzt eine kompakte Codebasis, die sich auf Kernfunktionen konzentriert. Dadurch bietet WireGuard im Vergleich zu anderen VPN-Lösungen wie OpenVPN eine bessere Leistung und höhere Sicherheit.

Diese Anleitung beschreibt Schritt für Schritt, wie du WireGuard VPN auf Ubuntu 24.04 installierst und konfigurierst, um sichere und verschlüsselte Netzwerktunnel einzurichten.

Voraussetzungen

  • Starte einen Ubuntu 24.04 Server, der als WireGuard VPN-Host dienen soll.
  • Greife über SSH als Nicht-Root-Benutzer mit sudo-Rechten auf den Server zu.
  • Aktualisiere alle Pakete auf dem Server, um die neuesten Versionen zu nutzen.

WireGuard installieren

WireGuard ist bereits in den Standard-APT-Repositories von Ubuntu 24.04 enthalten. Befolge die folgenden Schritte, um die aktuelle Version zu installieren und den automatischen Start beim Booten zu aktivieren.

WireGuard installieren

$ sudo apt install wireguard -y

Installierte Version prüfen

Die Ausgabe sollte etwa wie folgt aussehen:

wireguard-tools v1.0.20210914 - https://git.zx2c4.com/wireguard-tools/

WireGuard konfigurieren

WireGuard nutzt das sogenannte Cryptokey-Routing, um VPN-Tunnel zu erstellen, indem öffentliche Schlüssel bestimmten IP-Adressen zugeordnet und validiert werden. Eine gültige Konfiguration besteht aus einem privaten und einem öffentlichen Schlüssel, die einer Netzwerkschnittstelle zugewiesen sind. Im Folgenden wird erklärt, wie du eine neue WireGuard-Schnittstelle einrichtest und die benötigten Schlüssel erzeugst.

Privaten Schlüssel erzeugen

$ sudo wg genkey | sudo tee /etc/wireguard/server_private.key

Beispielausgabe:

UOO//MO2GCC+5hHOz91YCP60/Zv/cnSskEH2j4eRPXo=

Dateiberechtigungen anpassen

$ sudo chmod 600 /etc/wireguard/server_private.key

Öffentlichen Schlüssel erzeugen

$ sudo cat /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key

Beispielausgabe:

W+l7Uapd98bsNhN1g3Hs4iTCfKzcV03KNwhDPFgzqR4=

Netzwerkschnittstellen prüfen

Identifiziere die Hauptnetzwerkschnittstelle, z. B. enp1s0 mit der IP-Adresse 192.0.2.161. WireGuard verwendet diese Schnittstelle, um Datenverkehr zum Internet weiterzuleiten.

WireGuard-Konfigurationsdatei erstellen

$ sudo nano /etc/wireguard/wg0.conf

Füge den folgenden Inhalt hinzu (ersetze die Schlüssel und Schnittstellennamen entsprechend):

[Interface]
Address = 10.8.0.1/24
SaveConfig = true
PrivateKey = UOO//MO2GCC+5hHOz91YCP60/Zv/cnSskEH2j4eRPXo=
PostUp = ufw route allow in on wg0 out on enp1s0
PostUp = iptables -t nat -I POSTROUTING -o enp1s0 -j MASQUERADE
PreDown = ufw route delete allow in on wg0 out on enp1s0
PreDown = iptables -t nat -D POSTROUTING -o enp1s0 -j MASQUERADE
ListenPort = 51820

Diese Konfiguration weist der Schnittstelle die private IP-Adresse 10.8.0.1 zu, aktiviert NAT-Routing, definiert Firewall- und iptables-Regeln und legt den WireGuard-Port für eingehende Verbindungen fest.

Client-Konfigurationen erstellen

Jeder Client benötigt einen öffentlichen Schlüssel, der in der WireGuard-Konfiguration hinterlegt ist, um eine Verbindung herstellen zu können. Die folgenden Schritte zeigen, wie du eine neue Client-Konfiguration erstellst.

Client-Schlüssel generieren


$ sudo wg genkey | sudo tee /etc/wireguard/client1_private.key


$ sudo cat /etc/wireguard/client1_private.key | wg pubkey | sudo tee /etc/wireguard/client1_public.key

Client-Konfigurationsdatei erstellen

$ sudo nano /etc/wireguard/client1.conf

Füge den folgenden Inhalt ein und ersetze die Platzhalter durch deine eigenen Werte:

[Interface]
PrivateKey = KBUxCUqNEJqN3DBO5xu2kiBQFT8Gv46Kkqu6OIKZu3Q=
Address = 10.8.0.2/24
DNS = 8.8.8.8

[Peer]
PublicKey = W+l7Uapd98bsNhN1g3Hs4iTCfKzcV03KNwhDPFgzqR4=
AllowedIPs = 0.0.0.0/0
Endpoint = 192.0.2.161:51820
PersistentKeepalive = 15

Diese Konfiguration erlaubt es dem Client, über die IP-Adresse 10.8.0.2 eine Verbindung aufzubauen. Sie definiert den öffentlichen Server-Schlüssel, den Endpunkt und das Intervall für die Keepalive-Pakete.

Client zur Serverkonfiguration hinzufügen

$ sudo nano /etc/wireguard/wg0.conf

Füge am Ende der Datei den folgenden Abschnitt hinzu:

[Peer]
PublicKey = xZB9I6953ebGqWVLCR7L6yJw7YJi0shJ+Sub9gfUFVU=
AllowedIPs = 10.8.0.2/32

WireGuard-Dienst verwalten

Die Prozesse von WireGuard werden von systemd gesteuert. Das Hilfsprogramm wg-quick bietet Befehle, um Schnittstellen einfach zu starten, zu stoppen und zu verwalten.


$ sudo systemctl start wg-quick@wg0.service


$ sudo systemctl enable wg-quick@wg0.service


$ sudo systemctl status wg-quick@wg0.service

Verwende den folgenden Befehl, um den aktuellen Tunnelstatus anzuzeigen:

Firewall-Regeln einrichten

Die UFW (Uncomplicated Firewall) ist auf Ubuntu-Servern in der Regel standardmäßig aktiv. Konfiguriere sie so, dass Verbindungen über den UDP-Port 51820 zugelassen werden, und aktiviere das IP-Forwarding für eine korrekte Weiterleitung des Netzwerkverkehrs.

$ sudo ufw allow 22 && sudo ufw enable
$ sudo ufw allow 51820/udp
$ sudo ufw reload

IP-Weiterleitung aktivieren

Aktiviere die IPv4-Weiterleitung, um Netzwerkpakete zwischen Schnittstellen korrekt weiterzuleiten.

$ echo 'net.ipv4.ip_forward = 1' | sudo tee -a /etc/sysctl.conf
$ sudo sysctl -p

NAT-Regeln anwenden

Erstelle eine NAT-Regel, damit der Datenverkehr des VPN-Netzwerks über die öffentliche Schnittstelle weitergeleitet wird, und speichere diese dauerhaft.

$ sudo iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o enp1s0 -j MASQUERADE
$ sudo iptables-save | sudo tee /etc/iptables/rules.v4

Clients mit dem WireGuard-VPN verbinden

Verwende deine erstellte Client-Konfiguration, um dich mit dem VPN zu verbinden, und teste anschließend den Tunnelzugriff über ping.

$ scp linuxuser@wireguard-server-ip:client1.conf .

Verbindung testen

Erwartete Ausgabe:

4 packets transmitted, 4 received, 0% packet loss

Fazit

Du hast erfolgreich WireGuard VPN auf einem Ubuntu 24.04 Server installiert und konfiguriert, Clients eingerichtet und sichere VPN-Tunnel aufgebaut. Du kannst zusätzliche Schnittstellen mit eigenen Subnetzen für verschiedene Benutzergruppen anlegen. Weitere Informationen und erweiterte Konfigurationsoptionen findest du in der offiziellen WireGuard-Dokumentation.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren: