WireGuard Site-to-Site VPN unter Ubuntu 24.04 – 2025 Guide

Inhaltsverzeichnis

Einleitung

Ein WireGuard Site-to-Site VPN verbindet zwei remote Standorte über das Internet sicher und leistungsstark. Unter Ubuntu 24.04 bietet WireGuard eine schlanke, konfigurationsnahe Lösung, um private Netzwerke miteinander zu verbinden, ohne dass komplexe VPN-Stacks nötig wären. In diesem Guide geht es um eine klare, praxisnahe Einrichtung mit zwei Standorten, typischen Anwendungsfällen und konkreten Konfigurationsbeispielen.

Voraussetzungen

  • Zwei Ubuntu 24.04-Systeme (je Standort) erreichbar, z. B. Standort A und Standort B.
  • Root-Zugriff bzw. sudo-Rechte auf beiden Hosts.
  • Öffentliche, erreichbare Endpunkte (oder dynamische DNS-Lösungen) für die beiden Standorte.
  • Netze hinter den Standorten, z. B. Standort A: 10.0.1.0/24, Standort B: 10.0.2.0/24.
  • Grundkenntnisse in Netzwerken (Subnetze, Routen) und SSH-Zugriff.

Schritt-für-Schritt-Anleitung

Netzwerk-Planung und Adressräume festlegen

  • Definiere zwei private Netzwerke, die über das VPN verbunden werden sollen, z. B. 10.0.1.0/24 und 10.0.2.0/24.
  • Lege fest, welcher Standort wohin geroutet wird. In einer Site-to-Site-Verbindung sollen Client-Subnetze hinter beiden Standorten miteinander kommunizieren.
  • Beispiel-Plan:
    • Standort A: Netz 10.0.1.0/24
    • Standort B: Netz 10.0.2.0/24
  • Öffentliche Endpoints (IP-Adressen oder DNS-Namen) beider Standorte ermitteln.

Installation von WireGuard auf Ubuntu 24.04

  • Installationsschritte an beiden Standorten:
sudo apt update
sudo apt install -y wireguard
  • Aktivieren des IP-Forwardings:
echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-wireguard-forward.conf
sudo sysctl --system
  • Firewall-Konfiguration (Beispiel mit UFW):
sudo ufw allow 51820/udp
sudo ufw enable
  • Prüfen, ob WireGuard installiert ist:
wg --version

Schlüsselerzeugung und Konfiguration der Hosts

  • Auf jedem Standort Schlüssel generieren:

Standort A

# Standort A
umask 077
wg genkey | tee privatekey | wg pubkey > publickey

Standort B

# Standort B
umask 077
wg genkey | tee privatekey | wg pubkey > publickey
  • Private/Public Keys sichern. Notiere die Werte:
    • Standort A: PrivateKey_A, PublicKey_A
    • Standort B: PrivateKey_B, PublicKey_B
  • Erstelle die Konfigurationsdateien wg0.conf auf beiden Seiten.

Standort A (10.0.1.0/24, Endpoint_B = public IP von Standort B):

sudo nano /etc/wireguard/wg0.conf

Inhalt:

[Interface]
PrivateKey = PRIVATEKEY_A
Address = 10.0.1.1/24
ListenPort = 51820
DNS = 8.8.8.8

[Peer]
PublicKey = PUBLICKEY_B
Endpoint = ENDPOINT_B:51820
AllowedIPs = 10.0.2.0/24
PersistentKeepalive = 25

Standort B (10.0.2.0/24, Endpoint_A = public IP von Standort A):

sudo nano /etc/wireguard/wg0.conf

Inhalt:

[Interface]
PrivateKey = PRIVATEKEY_B
Address = 10.0.2.1/24
ListenPort = 51820
DNS = 8.8.8.8

[Peer]
PublicKey = PUBLICKEY_A
Endpoint = ENDPOINT_A:51820
AllowedIPs = 10.0.1.0/24
PersistentKeepalive = 25
  • Die Dateien sicher speichern. Ersetze PRIVATEKEY_* und PUBLICKEY_* sowie ENDPOINT_* entsprechend.
  • WireGuard-Schnittstelle aktivieren:
sudo wg-quick up wg0
  • Sicherstellen, dass sie beim Booten automatisch gestartet wird:
sudo systemctl enable wg-quick@wg0
  • Überprüfen des Status:
sudo wg show

Peer-Beziehungen und Routen einrichten

  • Prüfe, dass auf beiden Seiten die Peer-Verbindung sichtbar ist:
sudo wg show
  • Stelle sicher, dass die Routen zwischen den Netzen funktionieren:
  • Auf Standort A:
    • Auf Standort A-Hosts kann standardmäßig 10.0.2.0/24 erreicht werden.
  • Auf Standort B:
    • Auf Standort B-Hosts kann standardmäßig 10.0.1.0/24 erreicht werden.
  • Falls notwendig, füge manuell Routen hinzu (Beispiel):

Standort A

# Standort A
sudo ip route add 10.0.2.0/24 via 10.0.1.1 dev wg0

Standort B

# Standort B
sudo ip route add 10.0.1.0/24 via 10.0.2.1 dev wg0

Netzwerk- und Firewall-Einstellungen

  • Prüfe, dass die Firewall den WireGuard-Verkehr über UDP 51820 erlaubt:
sudo ufw allow 51820/udp
  • Falls NAT nötig ist (z. B. Internetfreigabe eines Standorts), konfiguriere NAT-Regeln:
# Beispiel: Standort A routet über seinen Internet-Gateway
sudo iptables -t nat -A POSTROUTING -s 10.0.1.0/24 -o eth0 -j MASQUERADE
  • Speichere die NAT-Regeln ggf. dauerhaft (abhängig von der Distribution und Tools).

Autostart und Persistenz

  • Verifiziere, dass wg-quick beim Systemstart läuft:
sudo systemctl enable wg-quick@wg0
  • Starte den Dienst neu, um die Konfigurationsänderungen zu übernehmen:
sudo systemctl restart wg-quick@wg0

Troubleshooting

  • Verbindung wird nicht aufgebaut oder Peer nicht sichtbar:
    • Überprüfe die privaten Schlüssel, öffentlichen Schlüssel und Endpoints auf beiden Seiten.
    • Stelle sicher, dass UDP-Port 51820 in der externen Firewall offen ist.
    • Prüfe die Systemzeit, da Zeitunterschiede bei Zertifikaten keine Rolle, aber bei bestimmten Logik-Funktionen problematisch sein können.
  • Fehlende Routen zwischen Standorten:
    • Prüfe, ob AllowedIPs korrekt gesetzt sind (10.0.1.0/24 vs. 10.0.2.0/24).
    • Prüfe die IPs der Interfaces wg0 auf beiden Seiten.
    • Verifiziere, dass die Routen im Kernel vorhanden sind:
ip route show
  • Überprüfung der Tunnel-Statusdaten:
sudo wg show
  • Logs prüfen:
sudo journalctl -u wg-quick@wg0 -e
  • Alternative Szenarien:
    • Wenn beide Standorte hinter CG-NAT oder wechselnden IPs liegen, nutze eine dynamische Endpunkt-Lösung oder DDNS und passe Endpoint-Felder entsprechend an.
    • Für zusätzliche Sicherheit kann die Konfiguration mit Pre-shared Keys (PSK) ergänzt werden, oder erweiterte Firewall-Regeln je Standort.

Tags: WireGuard, Site-to-Site, Ubuntu, 24.04, VPN, Netzwerkintegration
Links: WireGuard Install Guide, Ubuntu WireGuard Wiki

Schreibe einen Kommentar

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