WireGuard ist ein modernes VPN (Virtual Private Network)-Protokoll, das sich durch Schlankheit, Performance und einfache Konfiguration auszeichnet.

1. WireGuard installieren Link to heading

Aktualisiere zunächst die Paketlisten und installiere WireGuard:

sudo apt update && sudo apt upgrade
sudo apt install wireguard -y

2. Schlüssel erstellen Link to heading

WireGuard nutzt zur Authentifizierung ein Schlüsselpaar, das aus einem privaten und einem öffentlichen Schlüssel besteht.

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

Den öffentlichen Schlüssel kannst du mit folgendem Befehl anzeigen:

cat publickey

Wichtig: Der private Schlüssel darf niemals veröffentlicht oder weitergegeben werden.

3. IP-Forwarding aktivieren Link to heading

Damit der Server Netzwerkverkehr zwischen VPN und Internet weiterleiten kann, aktivieren wir IPv4-Forwarding dauerhaft:

sudo nano /etc/sysctl.conf

Füge folgende Zeile hinzu:

net.ipv4.ip_forward=1

Die Änderung übernehmen mit:

sudo sysctl -p

4. Server konfigurieren Link to heading

Öffne die WireGuard-Konfiguration:

nano /etc/wireguard/wg0.conf

Beispielkonfiguration:

[Interface]
Address = 10.51.0.1/24
ListenPort = 51820
PrivateKey = SERVER_PRIVATE_KEY


[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.51.0.2/32

Ersetze «privatekey» durch den Inhalt der Datei privatekey, den du zuvor erstellt hast.

5. WireGuard starten Link to heading

Starte das Interface:

sudo wg-quick up wg0

Aktiviere den automatischen Start beim Booten:

sudo systemctl enable wg-quick@wg0

Verbindungsstatus anzeigen:

sudo wg show

6. Client konfigurieren Link to heading

Der Client erhält eine eigene Konfiguration mit einem eigenen Schlüsselpaar:

[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.51.0.2/32
DNS = 1.1.1.1

[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = SERVER_PUBLIC_IP:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25

Ersetze die Platzhalter durch deine tatsächlichen Werte.

ℹ️ Hinweis: Mit AllowedIPs = 0.0.0.0/0 wird der gesamte IPv4-Verkehr über den Tunnel geleitet. IPv6 ist damit nicht automatisch abgedeckt.

7. Verbindung testen Link to heading

Auf dem Server:

sudo wg show
ping -c 4 10.51.0.2

Auf dem Client:

ping -c 4 10.51.0.1
ping -c 4 1.1.1.1
ip route

💡 Tipp: Wenn der Handshake funktioniert, aber kein Internet verfügbar ist, prüfe IP-Forwarding, Firewall-Regeln und NAT.

8. Fehlerbehebung Link to heading

NAT-Regeln prüfen:

sudo iptables -t nat -L POSTROUTING -n -v

Weiterleitungsregeln prüfen:

sudo iptables -L FORWARD -n -v

WireGuard-Protokoll anzeigen:

sudo journalctl -u wg-quick@wg0 -n 100 --no-pager

Interface nach Konfigurationsänderungen neu starten:

sudo wg-quick down wg0
sudo wg-quick up wg0

ℹ️ Hinweis: Dabei wird die VPN-Verbindung kurz unterbrochen.

Fazit Link to heading

Mit diesen Schritten ist WireGuard auf einem Linux-Server eingerichtet und konfiguriert.