WireGuard VPN auf Debian 12 installieren

Wireguard ist eine Open-Source-VPN-Protokoll-Alternative zu IPSec, IKEv2 und OpenVPN. Wiruguard wurde für Linux- und Unix-Betriebssysteme entwickelt. Es läuft auf dem Linux-Kernelspace, was Wireguard schneller und zuverlässiger macht. Wireguard wird verwendet, um sichere Tunnelverbindungen zwischen zwei oder mehr Computern herzustellen.

Wireguard zielt darauf ab, VPN-Protokolle wie IPSec, IKEv2 und OpenVPN zu ersetzen. Wireguard ist leichter, schneller, einfach einzurichten und effizienter. Gleichzeitig hat Wiregurad den Sicherheitsaspekt des VPN-Protokolls nicht geopfert. Wireguard unterstützt moderne Kryptografie wie das Noise-Protokoll-Framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF und sichere Trusted Constructions.

Diese Anleitung zeigt dir, wie du Wireguard VPN auf dem Debian 12 Server installierst und den Wireguard Client auf einem Linux Rechner konfigurierst.

Voraussetzungen

Bevor du loslegst, solltest du sicherstellen, dass du diese Voraussetzungen erfüllst:

  • Ein Linux-Server mit Debian 12.
  • Ein Nicht-Root-Benutzer mit sudo-Rechten.
  • Ein Client-Rechner – in diesem Fall mit der Debian-basierten Distribution.

System vorbereiten

Bevor du Wireguard installierst, musst du deinen Debian-Server vorbereiten, indem du die folgenden Änderungen vornimmst:

  • Aktiviere die Portweiterleitung über /etc/sysctl.conf
  • Installieren und Konfigurieren von UFW

Jetzt geht’s los.

Aktiviere die Portweiterleitung

Um Port Forwarding zu aktivieren, musst du das Kernelmodul net.ipv4. ip_forward für IPv4 oder net. ipv6.conf. all. forwarding für IPv6 aktivieren. Diese Kernelmodule können über die Datei /etc/sysctl.conf aktiviert werden.

Öffne die Datei /etc/sysctl.conf mit dem folgenden Editor-Befehl nano.

sudo nano /etc/sysctl.conf

Füge die folgende Konfiguration ein, um Port-Forwarding sowohl für IPv4 als auch für IPv6 zu aktivieren (falls erforderlich).

# Port Forwarding for IPv4
net.ipv4.ip_forward=1

# Port forwarding for IPv6
net.ipv6.conf.all.forwarding=1

Speichere die Datei und beende den Editor, wenn du fertig bist.

Wende die Änderungen nun mit dem folgenden sysctl-Befehl an.

sudo sysctl -p

Portweiterleitung aktivieren

UFW installieren

Die Standard-Firewall von Debian ist iptables, und jetzt wirst du UFW installieren. Du wirst sowohl UFW als auch iptables für den Wirguard-Server verwenden.

Führe den folgenden apt-Befehl aus, um dein Repository zu aktualisieren und UFW auf deinem Debian-System zu installieren.

sudo apt update && sudo apt install ufw -y

ufw installieren

Als Nächstes führst du den unten stehenden ufw-Befehl aus, um das OpenSSH-Anwendungsprofil hinzuzufügen und UFW zu aktivieren. Gib y ein und bestätige mit ENTER. Du solltest dann die Meldung„Firewall ist aktiv und wird beim Systemstart aktiviert“ erhalten.

sudo ufw allow OpenSSH
sudo ufw enable

ufw aktivieren

Überprüfe abschließend den UFW-Status mit dem unten stehenden Befehl.

sudo ufw status

Wenn er ausgeführt wird, solltest du die Ausgabe„Status: aktiv“ erhalten.Du wirst auch sehen, dass das OpenSSH-Anwendungsprofil zu UFW hinzugefügt wurde.

ufw verifizieren

Installation des Wireguard Servers

Nachdem du den Debian-Server konfiguriert hast, kannst du nun einen Wireguard VPN Server auf deinem Debian-Rechner einrichten. Führe dazu die folgende Aufgabe aus:

  • Installieren von Wireguard
  • Wireguard-Server-Schlüssel generieren
  • Wireguard-Client-Schlüssel generieren
  • Wireguard-Schnittstelle konfigurieren
  • NAT für die Wireguard-Schnittstelle einrichten

Lass uns das tun.

Installieren von Wireguard

Installiere zunächst das Wireguard-Paket auf deinem Debian-Server, indem du den folgenden Befehl ausführst.

sudo apt install wireguard

Gib y ein, um mit der Installation fortzufahren.

Drahtschutz installieren

Wireguard-Server-Schlüssel generieren

Nach der Installation des Wireguard-Pakets musst du als Nächstes die Serverzertifikate generieren, was du mit dem wg Kommandozeilen-Tool tun kannst.

Führe den folgenden Befehl aus, um den privaten Schlüssel des Wireguard-Servers in /etc/wireguard/server.key zu erzeugen. Ändere dann die Berechtigung des privaten Schlüssels des Servers auf 0400, was bedeutet, dass du den Schreibzugriff auf die Datei deaktivierst.

wg genkey | sudo tee /etc/wireguard/server.key
sudo chmod 0400 /etc/wireguard/server.key

Als Nächstes führst du den folgenden Befehl aus, um den öffentlichen Schlüssel des Wireguard-Servers in /etc/wireguard/server.pub zu erzeugen.

sudo cat /etc/wireguard/server.key | wg pubkey | sudo tee /etc/wireguard/server.pub

Serverschlüssel generieren

Jetzt hast du den privaten Schlüssel in /etc/wireguard/server.key und den öffentlichen Schlüssel in /etc/wireguard/server.pub für deinen wireguard-Server erzeugt. Du kannst den Befehl cat unten ausführen, um den Inhalt des privaten und des öffentlichen Schlüssels anzuzeigen.

cat /etc/wireguard/server.key
cat /etc/wireguard/server.pub

Möglicherweise hast du eine andere Ausgabe, aber die generierten Schlüssel sehen wie folgt aus:

Serverschlüssel anzeigen

Wireguard Client-Schlüssel generieren

Nachdem du den Schlüssel für den Wireguard-Server erzeugt hast, musst du nun die Schlüssel für die Clients erzeugen. Du kannst Client-Schlüssel für jeden einzelnen Benutzer erzeugen, aber du kannst auch einen einzigen Schlüssel für mehrere Benutzer verwenden.

In diesem Beispiel wirst du einen Client-Schlüssel für einen bestimmten Benutzer , Alice, erzeugen.

Führe zunächst den folgenden Befehl aus, um ein neues Verzeichnis für die Speicherung von Kundenschlüsseln zu erstellen. In diesem Fall werden die öffentlichen und privaten Schlüssel für den Benutzer alice im Verzeichnis /etc/wireguard/clients/alice erzeugt.

mkdir -p /etc/wireguard/clients/alice

Führe nun den folgenden Befehl aus, um den privaten Schlüssel /etc/wireguard/clients/alice/alice.key und den öffentlichen Schlüssel /etc/wireguard/clients/alice/alice.pub für den Benutzer alice zu erzeugen.

wg genkey | tee /etc/wireguard/clients/alice/alice.key
cat /etc/wireguard/clients/alice/alice.key | wg pubkey | tee /etc/wireguard/clients/alice/alice.pub

Client-Schlüssel erzeugen

Führe abschließend den folgenden Befehl aus, um den Inhalt der privaten und öffentlichen Schlüssel für den Benutzer alice anzuzeigen.

cat /etc/wireguard/clients/alice/alice.key
cat /etc/wireguard/clients/alice/alice.pub

Es wird eine ähnliche Ausgabe wie die folgende angezeigt:

Client-Schlüssel anzeigen

Wireguard-Schnittstelle konfigurieren

Nachdem du die privaten und öffentlichen Schlüssel für den Server und den Client erstellt hast, musst du als Nächstes die Wireguard-Schnittstelle und die Gegenstelle konfigurieren. Du konfigurierst eine Schnittstelle für das Wireguard-Netzwerk VPN und die Gegenstelle, die zwischen dem Client und dem Server eingerichtet wird.

Erstelle eine neue Wireguard-Konfiguration /etc/wireguard/wg0.conf mit dem folgenden nano-Editor-Befehl.

sudo nano /etc/wireguard/wg0.conf

Füge die folgende Konfiguration in die Datei ein.

[Interface]
# Wireguard Server private key - server.key
PrivateKey = cNBb6MGaKhmgllFxSq/h9BdYfZOdyKvo8mjzb2STbW8=

# Wireguard interface will be run at 10.10.0.1
Address = 10.10.0.1/24

# Clients will connect to UDP port 51820
ListenPort = 51820

# Ensure any changes will be saved to the Wireguard config file
SaveConfig = true

Im Folgenden findest du die Parameter, die im Abschnitt [Schnittstelle] verwendet werden:

  • PrivateKey: Gib den Inhalt wireguard server private key server.key ein.
  • Adresse: Die IP-Adresse, die der Wireguard-Schnittstelle zugewiesen wird. In diesem Fall hat die Wireguard-Schnittstelle die IP-Adresse 10.10.0.1.
  • ListenPort: Dies ist der Port, den der Client für die Verbindung mit dem Wireguard-Server verwenden wird. In diesem Fall wird der Port 51820 verwendet.
  • SaveConfig: Der Wert true bedeutet, dass alle Änderungen vom aktuellen Zustand der Schnittstelle bis zum Herunterfahren gespeichert werden.

Füge nun den folgenden [Peer]-A bschnitt für wireguard-Clients hinzu.

[Peer]
# Wireguard client public key - alice.pub
PublicKey = 3ZoaoVgHOioZnKzCrF/XALAv70V4vyJXpl/UO7AKYzA=
# clients' VPN IP addresses you allow to connect
# possible to specify subnet ? [10.10.0.0/24]
AllowedIPs = 10.10.0.2/24

Im Folgenden sind die Parameter aufgeführt, die im [Peer] -Abschnitt verwendet werden:

PublicKey: Gib den öffentlichen Schlüssel des wireguard-Clients in diesen Parameter ein. In diesem Fall ist das der Inhalt des öffentlichen Schlüssels alice.pub.
AllowedIPs: Lege die IP-Adresse für den Client fest und leite den Datenverkehr an die wireguard-Schnittstelle weiter.

Speichere und schließe die Datei, wenn du fertig bist.

Zum Schluss führst du den folgenden Befehl aus, um Port 51820/udp für Client-Verbindungen zu öffnen.

sudo ufw allow 51820/udp

NAT für die Wireguard-Schnittstelle einrichten

Führe zunächst den folgenden Befehl aus, um die Standard-Gateway-Schnittstelle anzuzeigen, die für die Verbindung mit dem Internet verwendet wird.

sudo ip route list default

In diesem Fall ist das Standard-Netzwerk-Internet-Gateway die Schnittstelle eth0.

Standard-Gateway prüfen

Öffne nun die Wireguard-Konfiguration /etc/wireguard/wg0.conf mit dem folgenden nano-Editor-Befehl.

sudo nano /etc/wireguard/wg0.conf

Füge die folgende Konfiguration unter dem Abschnitt [Schnittstelle] hinzu und achte darauf, dass du die Schnittstelle eth0 durch die Standardschnittstelle des Internet-Gateways ersetzt.

[Interface]
...

PostUp = ufw route allow in on wg0 out on eth0
PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PostUp = ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE

PreDown = ufw route delete allow in on wg0 out on eth0
PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
PreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Speichere und schließe die Datei, wenn du fertig bist.

Damit hast du deinen Wireguard-Server konfiguriert.

Wireguard-Dienst verwalten

Jetzt, da die Installation und Konfiguration des Wireguard-Servers abgeschlossen sind, kannst du den Wireguard-Dienst auf deinem Debian-System starten. Das kannst du mit dem Befehl systemctl oder mit dem Dienstprogramm wg-quick tun.

Um den Wireguard-Server zu starten und zu aktivieren, führst du den folgenden systemctl-Befehl aus. Mit dem Dienstnamen wg-quick@wg0 startest du den Wireguard innerhalb der wg0-Schnittstelle, die auf der Konfiguration /etc/wireguard/wg0.conf basiert.

sudo systemctl start wg-quick@wg0.service
sudo systemctl enable wg-quick@wg0.service

Überprüfe nun den Dienst wirguard@wg0 mit dem folgenden Befehl.

sudo systemctl status wg-quick@wg0.service

Wenn der Dienst läuft, wird die folgende Ausgabe angezeigt.

Verifizierung des Wireguard-Dienstes starten

Als Nächstes führst du den Befehl ip aus, um die Details der wireguard-Schnittstelle wg0 anzuzeigen. Du solltest sehen, dass die wireguard-Schnittstelle wg0 eine IP-Adresse 10.10.0.1 hat.

sudo ip a show wg0

wg0-Schnittstelle prüfen

Du kannst den wireguard auch manuell mit dem Befehl wg-quick starten oder stoppen.

sudo wg-quick up /etc/wireguard/wg0.conf
sudo wg-quick down /etc/wireguard/wg0.conf

Damit hast du den wireguard-Server konfiguriert und ihn über den Befehl systemctl im Hintergrund gestartet. Dein Client ist nun bereit, sich mit dem Wireguard-Server zu verbinden.

Wireguard Client auf einer Debian-basierten Distribution einrichten

Im folgenden Abschnitt wirst du den Wireguard-Client für die Debian-basierte Distribution konfigurieren. Du installierst die wireguard-Tools, erstellst eine wireguard-Client-Konfiguration, verbindest dich mit dem wireguard-Server, überprüfst die Verbindung mit dem wg-Dienstprogramm und greifst auf das Internet zu.

Installiere das wireguard-tools-Paket über die APT auf dem Client-Rechner. Der Client-Rechner ist eine Debian-basierte Distribution, daher wird der APT-Paketmanager verwendet.

sudo apt install wireguard-tools resolvconf

wireguard Werkzeuge installieren

Nach der Installation der wireguard-tools erstellst du mit dem nano-Editor eine neue wireguard-Client-Konfiguration /etc/wireguard/wg-alice.conf.

sudo nano /etc/wireguard/wg-alice.conf

Füge die folgende Konfiguration in die Datei ein.

[Interface]
# Define the IP address for the client - must be matched with wg0 on the Wireguard Server
Address = 10.10.0.2/24

# specific DNS Server
DNS = 1.1.1.1

# Private key for the client – alice.key
PrivateKey = cPDg6SQHz/3l2R83lMWPzmR6/mMKnKp9PNImbtB6nGI=

[Peer]
# Public key of the Wireguard server – server.pub
PublicKey = APyBQvTkYVm0oakzcQUQViarwx1aIYz5wb/g2v2xdUE=

# Allow all traffic to be routed via Wireguard VPN
AllowedIPs = 0.0.0.0/0

# Public IP address of the Wireguard Server
Endpoint = 192.168.128.15:51820

# Sending Keepalive every 25 sec
PersistentKeepalive = 25

Speichere und schließe die Datei, wenn du fertig bist.

Im Folgenden findest du einige der Parameter im Abschnitt [Schnittstelle] für wireguard-Clients:

  • Adresse: Gib die interne IP-Adresse der wireguard-Schnittstelle auf dem Client-Rechner an.
  • DNS: Lege den Standard-DNS-Server für den Client fest.
  • PrivateKey: Der private Schlüssel des wireguard-Clients ist in diesem Fall alice.key.

Und im Abschnitt [Peer] in der wireguard-Client-Konfiguration:

  • PublicKey: Dies ist der öffentliche Schlüssel des Wireguard-Servers, in diesem Fall server.pub.
  • ErlaubteIPs: Erlaube, dass jeder Zugriff über die wireguard-Schnittstelle geleitet wird.
  • Endpunkt: die IP-Adresse und der Port des wireguard-Servers.
  • PersistentKeepalive: Sende alle x Sekunden ein Keepalive, um die Verbindung aufrechtzuerhalten.

Als Nächstes führst du den Befehl wg-quick aus, um den wireguard auf der Schnittstelle wg-alice zu starten.

sudo wg-quick up wg-alice

Wenn alles klappt, wird eine ähnliche Ausgabe wie unten angezeigt.

wireguard auf dem Client starten

Danach führst du den Befehl ip aus, um die Details der Schnittstelle wg-alice zu überprüfen. Du solltest die wg-alice-Schnittstelle mit der lokalen IP-Adresse 10.10.0.2 sehen.

sudo ip a show wg-alice

Wireguard-Schnittstelle auf dem Client prüfen

Als Nächstes überprüfst du die Internetverbindung des Client-Rechners, indem du den folgenden Befehl ausführst.

ping -c3 10.10.0.1
ping -c3 1.1.1.1
ping -c3 duckduckgo.com

Wenn deine wireguard Server-Installation erfolgreich war, erhältst du von jedem Zielserver eine Antwort wie die folgende:

Ping prüfen

Außerdem kannst du die Verbindungen zwischen dem wireguard Server und dem Client überprüfen, indem du den folgenden Befehl auf dem wireguard Server oder dem Client-Rechner ausführst.

wg show

Es wird eine ähnliche Ausgabe wie unten angezeigt.

Wireguard-Verbindungen anzeigen

Um die Wireguard-Verbindung auf dem Client-Rechner zu beenden, führst du den folgenden Befehl wg-quick aus.

sudo wg-quick down wg-alice

Wireguard auf dem Client stoppen

Fazit

Abschließend hast du die Installation von Wireguard VPN auf dem Debian 12 Server Schritt für Schritt abgeschlossen. Außerdem hast du einen Debian-basierten Client-Rechner mit Wireguard konfiguriert und dich mit dem Wireguard-Server verbunden. Jetzt kannst du weitere Clients hinzufügen, indem du weitere Wireguard-Schlüssel und Peer-Konfigurationen hinzufügst.

Das könnte dich auch interessieren …