WireGuard ist ein modernes, schnelles und schlankes VPN-Protokoll. Es ist direkt im Linux-Kernel enthalten, einfach zu konfigurieren und eignet sich ideal, um Verwaltungszugänge wie SSH, RDP oder Datenbanken vor dem offenen Internet zu verstecken. In dieser Anleitung richten Sie einen WireGuard-Server auf Debian oder Ubuntu ein und verbinden einen ersten Client.

So funktioniert WireGuard

Jedes Gerät besitzt ein Schlüsselpaar aus privatem und öffentlichem Schlüssel, ähnlich wie bei SSH. Der Server kennt die öffentlichen Schlüssel aller Clients und umgekehrt. Es gibt keine Benutzernamen und Passwörter. Wer den passenden privaten Schlüssel hat, ist verbunden. WireGuard nutzt standardmäßig den UDP-Port 51820.

In diesem Beispiel verwenden wir das private VPN-Netz 10.10.0.0/24. Der Server erhält 10.10.0.1, der erste Client 10.10.0.2.

Schritt 1: WireGuard installieren

sudo apt update
sudo apt install -y wireguard

Schritt 2: Schlüssel für den Server erzeugen

cd /etc/wireguard
umask 077
wg genkey | tee server.key | wg pubkey > server.pub

Der private Schlüssel in server.key darf den Server niemals verlassen.

Schritt 3: Server konfigurieren

Erstellen Sie die Datei /etc/wireguard/wg0.conf:

[Interface]
Address = 10.10.0.1/24
ListenPort = 51820
PrivateKey = INHALT_VON_server.key

[Peer]
# Laptop
PublicKey = OEFFENTLICHER_SCHLUESSEL_DES_CLIENTS
AllowedIPs = 10.10.0.2/32

Den öffentlichen Schlüssel des Clients erhalten Sie in Schritt 5. Tragen Sie ihn anschließend hier ein.

Schritt 4: Firewall öffnen und Dienst starten

Wenn Sie UFW verwenden:

sudo ufw allow 51820/udp

Starten Sie WireGuard und aktivieren Sie den automatischen Start:

sudo systemctl enable --now wg-quick@wg0
sudo wg show

Schritt 5: Client einrichten

Installieren Sie den WireGuard-Client für Ihr Betriebssystem. Für Windows, macOS, Android und iOS gibt es offizielle Apps unter wireguard.com/install. Unter Linux installieren Sie das Paket wireguard.

In der App erstellen Sie einen neuen, leeren Tunnel. Die App erzeugt dabei automatisch ein Schlüsselpaar und zeigt den öffentlichen Schlüssel an. Ergänzen Sie die Konfiguration so:

[Interface]
PrivateKey = (von der App erzeugt)
Address = 10.10.0.2/32

[Peer]
PublicKey = INHALT_VON_server.pub
Endpoint = IHRE-SERVER-IP:51820
AllowedIPs = 10.10.0.0/24
PersistentKeepalive = 25

Kopieren Sie den öffentlichen Schlüssel des Clients in den [Peer]-Abschnitt der Server-Konfiguration und laden Sie sie neu:

sudo systemctl restart wg-quick@wg0

Schritt 6: Verbindung testen

Aktivieren Sie den Tunnel im Client und pingen Sie den Server:

ping 10.10.0.1

Auf dem Server zeigt sudo wg show nun beim Peer einen Eintrag latest handshake mit einer aktuellen Zeit.

Split-Tunnel oder gesamter Verkehr?

Mit AllowedIPs = 10.10.0.0/24 läuft nur der Verkehr ins VPN-Netz durch den Tunnel. Ihr normaler Internetverkehr bleibt unverändert. Das ist für Verwaltungszugänge die richtige Wahl.

Möchten Sie den gesamten Internetverkehr über den Server leiten, setzen Sie beim Client AllowedIPs = 0.0.0.0/0, ::/0. Auf dem Server müssen Sie dann zusätzlich IP-Forwarding und NAT aktivieren:

echo "net.ipv4.ip_forward=1" | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl --system

Und in der [Interface]-Sektion von wg0.conf ergänzen Sie (passen Sie eth0 an Ihre Netzwerkkarte an):

PostUp = iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

Schritt 7: Dienste nur über das VPN erreichbar machen

Der eigentliche Sicherheitsgewinn entsteht, wenn Sie Verwaltungszugänge nur noch aus dem VPN-Netz erlauben. Mit UFW beispielsweise für SSH:

sudo ufw allow from 10.10.0.0/24 to any port 22 proto tcp
sudo ufw delete allow 22/tcp

Wichtig: Testen Sie zuerst, ob die SSH-Verbindung über 10.10.0.1 funktioniert, bevor Sie die allgemeine Regel löschen. Halten Sie eine zweite Sitzung offen, damit Sie sich nicht aussperren.

Weitere Clients hinzufügen

Für jedes weitere Gerät legen Sie einen eigenen [Peer]-Abschnitt mit eigener IP-Adresse an, zum Beispiel 10.10.0.3/32. Verwenden Sie niemals dieselben Schlüssel auf mehreren Geräten. Ohne Neustart übernehmen Sie Änderungen mit:

sudo wg syncconf wg0 <(sudo wg-quick strip wg0)

Fehlerbehebung

Kein Handshake

  • Ist der UDP-Port 51820 in allen Firewalls freigegeben?
  • Stimmen die öffentlichen Schlüssel auf beiden Seiten? Ein vertauschter Schlüssel ist der häufigste Fehler.
  • Ist beim Client die richtige Server-IP als Endpoint eingetragen?

Handshake klappt, aber kein Ping

Prüfen Sie die AllowedIPs auf beiden Seiten. Auf dem Server muss die Client-Adresse, beim Client das VPN-Netz eingetragen sein.

Ein kleiner vServer mit Standort in Österreich eignet sich hervorragend als zentraler VPN-Zugangspunkt für Ihr Team.

War diese Antwort hilfreich? 0 Benutzer fanden dies hilfreich (0 Stimmen)