Zum Hauptinhalt springen

WireGuard

Was ist WireGuard?

WireGuard ist ein modernes VPN-Protokoll, das verschlüsselte Tunnel zwischen Geräten herstellt. Es ist deutlich einfacher und schneller als ältere Protokolle wie IPsec oder OpenVPN und verfügt über eine wesentlich kleinere Codebasis (~4.000 Zeilen vs. Hunderttausende).

WireGuard arbeitet auf der Netzwerkschicht (Layer 3) und erstellt dabei ein virtuelles Netzwerk Interface für jedes verbundene Gerät. Der über diese Schnittstelle geleitete Traffic wird verschlüsselt und über UDP an die Peers gesendet.


Wie es funktioniert

WireGuard nutzt ein Konzept namens Cryptokey Routing: Jeder Peer wird anhand seines Public Keys identifiziert und legt fest, welche IP-Adressen über ihn erreichbar sind.

[Interface]
PrivateKey = <your private key>
Address = 10.0.0.1/24
ListenPort = 51820

[Peer]
PublicKey = <peer's public key>
AllowedIPs = 10.0.0.2/32
Endpoint = 203.0.113.5:51820

Wenn die Ziel-IP eines ausgehenden Pakets mit den AllowedIPs eines Peers übereinstimmt, verschlüsselt WireGuard das Paket und sendet es an den Endpoint dieses Peers. Eingehende Pakete werden nur dann entschlüsselt und akzeptiert, wenn sie von einem bekannten öffentlichen Schlüssel stammen und ihre Quell-IP in den AllowedIPs dieses Peers enthalten ist.


Schlüsselbegriffe

Schlüsselpaare

Jedes WireGuard Interface hat einen privaten Schlüssel und einen davon abgeleiteten öffentlichen Schlüssel. Öffentliche Schlüssel werden außerhalb des Datenkanals ausgetauscht (manuell, oder über ein Tool wie Tailscale) und dienen als Identitätsnachweis eines Peers.

Interface

Ein WireGuard Interface ist eine virtuelle Netzwerkschnittstelle (z.B. wg0) auf einem Gerät. Die Schnittstelle hat eine eigene IP-Adresse und lauscht auf dem konfigurierten Port auf eingehende UDP-Pakete.

Peer

Ein Peer ist jedes andere WireGuard Interface, mit dem die eigene Schnittstelle kommunizieren darf. Jeder Peer-Eintrag definiert:

  • PublicKey: der öffentliche Schlüssel des Peers
  • AllowedIPs: IP-Adressbereiche, die über diesen Peer geleitet werden
  • Endpoint (Optional): die IP-Adresse und der UDP-Port des Peers

AllowedIPs

AllowedIPs erfüllt einen doppelten Zweck:

  • Ausgehend: fungiert als Weiterleitungsregel – Pakete an diese IP-Adressen werden an diesen Peer gesendet
  • Eingehend: fungiert als Filter – Pakete von diesem Peer werden nur akzeptiert, wenn ihre Quell-IP in diesem Bereich liegt

Durch die Einstellung AllowedIPs = 0.0.0.0/0 wird der gesamte Datenverkehr über einen Peer geleitet, was die Grundlage für Konfigurationen mit Ausgangsknoten bzw. Volltunnel-VPN bildet.


Kryptografie

WireGuard nutzt eine feste, moderne Kryptografie-Suite ohne Verhandlungsspielraum. Dadurch kann eine ganze Klasse von Downgrade-Angriffen ausgeschlossen werden:

ZweckAlgorithmus
SchlüsselaustauschCurve25519 (ECDH)
Symmetrische VerschlüsselungChaCha20
AuthentifizierungPoly1305 (MAC)
HashingBLAKE2s
SchlüsselableitungHKDF

Vergleich zu anderen VPN Protokollen

EigenschaftWireGuardOpenVPNIPsec
Codebase Größe~4.000 Zeilen Code~70.000 Zeilen CodeSehr groß
ProtokolleNur UDPTCP oder UDPUDP / ESP
KonfigurationEinfachKomplexKomplex
PerformanceSehr schnellModeratSchnell
Kryptografiefest, modernKonfigurierbarKonfigurierbar
NAT-TraversalEingebautLimitiertBenötigt Extras

Verbindung zu Tailscale

WireGuard übernimmt ausschließlich die Datenebene => Pakete werden zwischen Peers verschlüsselt und weitergeleitet. Peer-Erkennung, Schlüsselverteilung und Zugriffskontrolle sind nicht Bestandteil von WireGuard.

Tailscale baut auf WireGuard auf und ergänzt eine verwaltete Steuerungsebene: automatischer Schlüsselaustausch, Peer-Erkennung, NAT-Traversal, MagicDNS und ACLs. So steht die Performance von WireGuard zur Verfügung, ohne manuelle Konfiguration.