WireGuard VPN: Grundlagen (2024)

FlashMovieShutterstock

WireGuard ist eine freie Software zum Aufbau eines virtuellen privaten Netzwerks (VPN). Mithilfe eines VPN öffnet man einen virtuellen Tunnel zwischen zwei Maschinen im Internet. Die Netzwerkverbindung läuft durch den Tunnel, so als wären die Maschinen direkt durch ein Netzwerkkabel verbunden. VPNs werden oft von großen Organisationen wie Forschungseinrichtungen, Ministerien und Unternehmen genutzt. So lässt sich der Zugriff auf bestimmte Ressourcen im Netzwerk regulieren und der Datenstrom der Nutzer nach außen hin abschotten.

Mit IPsec, OpenVPN, L2TP und PPTP existiert bereits eine Reihe an ausgereiften VPN-Protokollstapeln. Anbieter von VPN-Services bauen auf diesen Protokollen auf, um ihren Nutzern die Möglichkeit zu geben, den eigenen Internetverkehr durch das VPN zu leiten. Immer mehr VPN-Anbieter integrieren WireGuard aufgrund der Vorzüge des Protokolls in ihre Anwendungen.

Inhaltsverzeichnis

  1. Was ist WireGuard?
    1. Was sind die Features von WireGuard?
    2. Was sind die Vorteile von WireGuard?
  2. Wie funktioniert WireGuard?
  3. Erste Schritte mit WireGuard
    1. WireGuard auf dem eigenen System installieren
    2. WireGuard-Schlüssel erzeugen
    3. Netzwerkeinstellungen für WireGuard konfigurieren

Was ist WireGuard?

WireGuard ist eine Anwendung und ein Netzwerkprotokoll für den Aufbau verschlüsselter VPN-Tunnels. Die Software ist unter der GPLv2-Lizenz als freie Software lizensiert und plattformübergreifend verfügbar. WireGuard ist in den Sprachen „C“ und „Go“ geschrieben und läuft unter Windows, macOS, BSD, iOS und Android.

Mit WireGuard baut man einen verschlüsselten Tunnel auf. Datenströme werden durch den Tunnel geleitet und sind somit vor dem Zugriff Unbefugter geschützt. Neben dem Fokus auf starke Verschlüsselung bietet WireGuard Optimierungen für mobile Systeme und „Internet of Things (IoT)“-Geräte.

Seit dem Frühjahr 2020 ist WireGuard direkt in den Linux-Kernel integriert. Da Linux als Standard-Betriebssystem auf Milliarden von vernetzten Geräten weltweit läuft, kann WireGuard so gut wie überall eingesetzt werden. Der breiten Verwendung kommt ebenfalls zugute, dass die Software relativ schlank ist und nur geringe Anforderungen an die Hardware stellt.

Was sind die Features von WireGuard?

Das zentrale Feature des WireGuard-Protokolls ist das sogenannte Cryptokey Routing. Dabei werden dem öffentlichen Schlüssel eines Verbindungspartners die innerhalb eines Tunnels erlaubten IP-Adressbereiche zugeordnet. Eingehende Pakete eines Verbindungspartners werden mithilfe des öffentlichen Schlüssels entschlüsselt. Ein eingehendes Paket wird nach der Entschlüsselung nur dann zugestellt, wenn es von einer zum Schlüssel korrespondierenden IP-Adresse stammt. Andernfalls wird das Paket verworfen.

Anders als die etablierten VPN-Protokollstapel IPsec und OpenVPN handelt es sich bei WireGuard nicht um ein agiles Protokoll: Anstatt während der Handshake-Phase beim Verbindungsaufbau die zu nutzenden kryptografischen Grundlagen einzeln auszuhandeln, beschränkt sich WireGuard auf wenige Optionen. Die eingesetzten kryptografischen Funktionen werden zusammengefasst versioniert. Sollte eine der kryptografischen Grundlagen in der Zukunft kompromittiert werden, wird eine neue, sichere Version des WireGuard Protokolls veröffentlicht. Setzen beide Kommunikationspartner die neue Version ein, wird der Datenstrom abgesichert.

Zum Zeitpunkt der Artikelerstellung kommen die folgenden Protokolle und Verschlüsselungstechnologien zum Einsatz:

  • Noise protocol framework
  • Curve25519
  • ChaCha20
  • Poly1305
  • BLAKE2
  • SipHash24
  • HKDF

Was sind die Vorteile von WireGuard?

Als einer der größten Vorteile von WireGuard gilt die aufgeräumte Codebasis. Der Umfang des gesamten Kernel-Codes beläuft sich auf nur ca. 4.000 Code-Zeilen. Zum Vergleich: die Code-Größe einer Implementation von OpenVPN oder IPsec liegt bei ca. 100.00 bis 600.000 Zeilen. Eine kleinere Codebasis ist inhärent sicherer, da sich Bugs so leichter finden lassen und die Angriffsfläche minimiert wird.

Selbst der für seinen bissigen Schreibstil und gelegentliche Wutausbrüche bekannte Linux-Erfinder Linus Torvalds reagierte nach Inspektion der WireGuard-Codebasis mit ausdrücklichem Lob:

Zitat

„Maybe the code isn’t perfect, but I’ve skimmed it, and compared to the horrors that are OpenVPN and IPSec, it’s a work of art.“ – Quelle: netdev - Re: [GIT] Networking

Übersetzung: „Der Code ist vielleicht nicht perfekt, aber ich habe ihn überflogen, und verglichen mit dem furchtbaren Code von OpenVPN und IPSec handelt es sich um ein Kunstwerk.“

Neben der erhöhten Sicherheit bedingt die geringere Komplexität der Software auch eine höhere Performanz. WireGuard liefert in Benchmarks eine höhere Übertragungsgeschwindigkeit und niedrigere Latenz als konkurrierende Protokolle. Ferner ist WireGuard kein „schwatzhaftes“ Protokoll („it is not a chatty protocol“): Solange der Nutzer keine Daten durch den Tunnel schickt, ruht WireGuard. So wird weniger Strom verbraucht, was der Akkulaufzeit zugutekommt.

Die Energieeffizienz ist besonders wichtig für mobile Geräte, und auf diesem Gebiet ist WireGuard in mehrfacher Hinsicht gut aufgestellt. So unterstützt das Protokoll Roaming, also den automatischen Wechsel von WLAN zum Handynetz und vice versa. Sollte es dennoch zu einem Verbindungsabbruch kommen, ist der Wiederaufbau der Verbindung mit WireGuard für gewöhnlich schneller als mit konkurrierenden Protokollen.

Wie funktioniert WireGuard?

Vom Prinzip her handelt es sich bei WireGuard um ein dezentrales Peer-to-Peer-VPN-Protokoll. Anstatt zwingend einen Server zu benötigen, lässt sich mit WireGuard direkt ein Tunnel zwischen zwei Maschinen öffnen. Ein WireGuard-„Server“ ist einfach eine Maschine, auf der Verbindungskonfigurationen für mehrere Peers hinterlegt sind.

Der Verbindungsaufbau mit WireGuard funktioniert ähnlich wie bei Secure Shell (SSH): Die Nutzer („Peers“) erzeugen mit WireGuard öffentliche Schlüssel und tauschen diese untereinander aus. Mithilfe der Schlüssel authentifizieren sich die Peers gegenseitig und verschlüsseln die Datenpakete für das jeweilige Gegenüber.

Neben der Erzeugung der kryptografischen Schlüssel müssen auf jedem Peer verschiedene Netzwerkeinstellungen vorgenommen werden – siehe dazu unsere Anleitung zur Einrichtung von WireGuard weiter unten. Zum Datenaustausch werden auf den Peers erlaubte IP-Adressbereiche mit dem kryptografischen Schlüssel verknüpft. Nicht den erlaubten Adressbereichen entstammende Pakete werden verworfen. Der Datenversand mit WireGuard läuft über das User Datagram Protocol (UDP).

Auf der Maschine eines Peers wird die Konfiguration mithilfe des WireGuard-Kommandozeilen-Tools und weiterer, standardmäßig auf Linux vorhandener Bordmittel vorgenommen. Obwohl die Konfiguration der Software als relativ einfach gilt, dient WireGuard nur als Grundlage; eine auf dem Protokoll aufbauende App kann dem Nutzer bei den einzelnen Schritten der Konfiguration und des Verbindungsaufbaus unter die Arme greifen. Nutzer von kommerziellen VPN-Diensten kommen so auch ohne Kommandozeile in den Genuss des modernen VPN-Protokolls.

Erste Schritte mit WireGuard

Prinzipiell lässt sich WireGuard auf einem Linux-System mit geringem Aufwand installieren und konfigurieren. So können Sie sich z.B. einen eigenen VPN-Server mit Raspberry Pi einrichten. Jedoch unterscheidet sich das genaue Vorgehen je nach Einsatzzweck, eingesetztem Betriebssystem und bestehender Netzwerkumgebung. Wir können hier daher nur das ungefähre Vorgehen skizzieren. Bitte nutzen Sie unsere Anleitungen nur für Tests.

Tipp

Installieren Sie WireGuard auf dem IONOS vServer und schaffen Sie sich damit ein eigenes VPN.

WireGuard auf dem eigenen System installieren

Führen Sie die folgenden Befehle auf der Kommandozeile aus, um WireGuard auf Ihrem Linux-System zu installieren:

# für Ubuntu ab Version 19.10sudo apt install wireguard# für Ubuntu-Version unterhalb 19.10sudo add-apt-repository ppa:wireguard/wireguardsudo apt-get updatesudo apt-get install wireguard

Hinweis

Hier wird die Installation unter Ubuntu-Linux gezeigt. Auf anderen Systemen müssen Sie den Code ggf. anpassen.

WireGuard-Schlüssel erzeugen

Ähnlich wie bei SSH und PGP bilden kryptografische Schlüssel die Grundlage für den Einsatz von WireGuard. Wie üblich gibt es einen privaten Schlüssel, der unbedingt geheim zu halten ist. Ferner wird aus dem privaten Schlüssel ein öffentlicher Schlüssel erzeugt und mit Peers geteilt. Damit können die Peers Daten verschlüsseln und versenden. Schließlich nutzen Sie Ihren privaten Schlüssel, um die verschlüsselten Daten zu entschlüsseln.

Führen Sie die folgenden Befehle auf der Kommandozeile aus, um einen privaten und öffentlichen WireGuard-Schlüssel zu erzeugen:

# Verzeichnis für Schlüssel anlegen# ACHTUNG: nur für Testzwecke, da nicht abgesichert!mkdir ~/.wireguard/ && cd ~/.wireguard/# Dateirechte setzenumask 077# privaten Schlüssel erzeugenwg genkey > privatekey# öffentlichen Schlüssel aus dem privaten Schlüssel erzeugenwg pubkey < privatekey > publickey

Netzwerkeinstellungen für WireGuard konfigurieren

Bei der Installation von WireGuard und der Schlüssel-Erzeugung handelt es sich um grundlegende Vorbereitungen, die auf jedem System mehr oder weniger gleich ablaufen. Demgegenüber ist die Konfiguration von WireGuard abhängig von den existierenden lokalen Netzwerk-Einstellungen. Wir können hier daher nur das generelle Schema skizzieren und empfehlen Ihnen für eine tiefergehende Betrachtung die Quick-Start-Anleitung des WireGuard-Projekts.

Das generelle Vorgehen für die Einrichtung einer Netzwerk-Verbindung mit WireGuard folgt diesem Schema:

# WireGuard Netzwerk-Interface hinzufügenip link add dev wg0 type wireguard# IP-Adressen konfigurierenip address add dev wg0 192.168.2.1 peer 192.168.2.2# Netzwerk-Interface unter Nutzung der Konfigurationsdatei konfigurierenwg setconf wg0 myconfig.conf# Netzwerk-Interface aktivierenip link set up dev wg0

Fazit

WireGuard ist ein moderner und schlanker Anwärter auf die Position der in die Jahre gekommenen VPN-Protokollstapel IPsec und OpenVPN und könnte diese in absehbarer Zeit weitgehend ersetzen.

  • Tools
  • Sicherheit

Ähnliche Artikel

WireGuard VPN: Grundlagen (2)evvShutterstock

Raspberry Pi als VPN-Server einrichten: Tutorial mit OpenVPN

Wer seinen eignen VPN-Server einrichtet, kann von jeder Internetverbindung aus auf sein lokales Netzwerk zugreifen und sich zudem auch in öffentlichen WLANs sicherer und verschlüsselt im Internet bewegen. Dies Tutorial zeigt, dass bereits der Mini-Computer Raspberry Pi und das Programm OpenVPN ausreichen, um preiswert einen VPN-Server zu erstellen und zu betreiben.

Raspberry Pi als VPN-Server einrichten: Tutorial mit OpenVPN
WireGuard VPN: Grundlagen (2024)
Top Articles
Latest Posts
Article information

Author: Msgr. Refugio Daniel

Last Updated:

Views: 5293

Rating: 4.3 / 5 (74 voted)

Reviews: 81% of readers found this page helpful

Author information

Name: Msgr. Refugio Daniel

Birthday: 1999-09-15

Address: 8416 Beatty Center, Derekfort, VA 72092-0500

Phone: +6838967160603

Job: Mining Executive

Hobby: Woodworking, Knitting, Fishing, Coffee roasting, Kayaking, Horseback riding, Kite flying

Introduction: My name is Msgr. Refugio Daniel, I am a fine, precious, encouraging, calm, glamorous, vivacious, friendly person who loves writing and wants to share my knowledge and understanding with you.