Wer sich anonym im Internet bewegen und das Mitschneiden des Datenverkehrs vermeiden will, nutzt eine VPN-Verbindung. Immer mehr kommerzielle Anbieter setzen auf Wireguard. Wir stellen das Protokoll vor und zeigen, wie Sie Ihre Verbindungen abschirmen.
Ein Virtual Private Network (VPN) bietet viele Vorteile. Einer der wesentlichsten: Stellt der Client eine Verbindung mit einem VPN-Server her, ist der Datenverkehr zwischen den beiden Punkten verschlüsselt und kann nicht durch Dritte mitgeschnitten werden. Das ist immer dann praktisch, wenn aus einer potenziell unsicheren Umgebung wie einem öffentlichen WLAN eine sichere Verbindung aufgebaut werden soll, zum Beispiel um Bankgeschäfte zu erledigen. Einen solchen VPN-Tunnel können Sie auch über die heimische Fritzbox realisieren (mit dem zusätzlichen Vorteil des sicheren Heimnetzzugriffs). Viele Nutzer verlassen sich aber auch gern auf kommerzielle Anbieter. Diese stellen in der Regel einen eigenen Client zur Verfügung oder bieten Zugangsdaten für die Nutzung an. Lange Zeit beherrschte das Protokoll „OpenVPN“ die Szene. Entsprechend verbreitet sind die Nutzung und Dokumentationen dazu. Immer häufiger haben die Kunden von VPN-Angeboten auch die Option, das Protokoll „WireGuard“ einzusetzen, das im Netz häufiger als „VPN-Überflieger“ bezeichnet wird.
Die Unterschiede zwischen Wireguard und Open VPN
Der US-Entwickler Jason Donenfeld hat Wireguard entwickelt, um die Schwächen von Open VPN zu umgehen – und das ist aus seiner Sicht in erster Linie die Komplexität des quelloffenen Protokolls. Tatsächlich kommt Wireguard im direkten Vergleich zu Open VPN mit einem Bruchteil an Quellcode-Zeilen aus. Das bietet zwei wesentliche Vorteile: Bei weniger Code sind eventuelle Sicherheitsprobleme schneller zu finden und zu beheben. Weniger Code bedeutet in der Regel auch weniger Komplexität, was die Leistung des Protokolls befördern sollte. In der Tat findet sich im Internet eine Reihe von Vergleichstests, die diese Vermutung bestätigen. Wireguard kann die Daten schneller übertragen als Open VPN; die Latenzen sind geringer. Wireguard ist inzwischen auch in den Linux-Kernel integriert, was die Nutzung unter Linux vereinfacht.
Eine weitere Besonderheit von Wireguard besteht darin, dass es in eine Art Ruhezustand fällt, wenn keine Daten übertragen werden. Das wirkt sich beim Einsatz von akkubetriebenen Geräten positiv auf den Stromverbrauch aus. Weil dieser Ruhezustand integriert ist, wirken sich auch Änderungen der Netzwerkumgebung eines Clients geringer aus. Bei Open VPN genügt oft eine kurze Unterbrechung der Netzwerkverbindung, um den Tunnel zum Einsturz zu bringen. Das ist ärgerlich, wenn Sie gerade mit dem Zug unterwegs sind, wo solche Unterbrechungen durchaus häufig sind. Wireguard ist hier deutlich robuster.
Architektonisch agiert Wireguard etwas anders als Open VPN. Es wird vom Betriebssystem nicht als Protokoll betrachtet, sondern als Netzwerkadapter und entsprechend konfiguriert. Die Konfiguration ist einfacher als bei Open VPN, bietet erfahrenen Administratoren aber nicht so viele Optionen im Hinblick auf die Verschlüsselung – ein Nachteil im Unternehmensumfeld. Wireguard setzt bei der Verschlüsselung auf eine Reihe aktueller und anerkannter Verfahren und ist auch selbst Open Source. Beim Handshake, also dem Austausch der öffentlichen Schlüssel zwischen Wireguard-Client und -Server, werden berechtigte IP-Adressbereiche ausgetauscht. Das wird als „Cryptokey-Routing“ bezeichnet. Die definierten Regeln müssen aber gespeichert werden und das geschieht auf dem Server. Unter dem Aspekt der Datensicherheit ist das insofern ein Manko, als die Anbieter von VPN-Tunneln in der Regel eine „No-Log-Policy“ garantieren. Damit sollen die Nutzer die Gewissheit erhalten, dass ihr Datenverkehr nicht ihnen zugeordnet werden kann. Das ist so ohne Weiteres bei Wireguard nicht der Fall. Durch Anpassungen auf ihrer Seite haben dies einige Provider dennoch realisiert und nutzen somit eigene Anpassungen des Protokolls.
Wireguard-Server unter Linux einrichten
Ein französischer Entwickler nimmt den Nutzern beliebter Distributionen bei der Konfiguration eines Wireguard-Servers viel Arbeit ab, denn er hat ein Script für die Einrichtung entwickelt, das unter Arch, Cent-OS, Debian, Fedora und Ubuntu funktioniert. Damit Sie einen für diesen Zweck abgestellten Rechner als VPN-Server nutzen können, muss dieser extern zu erreichen sein. Dazu müssen Sie im Router eine Weiterleitung auf den Port einrichten, den Sie im Verlauf des Installations-Scripts festlegen. Das Script erhalten Sie auf der Seite https://github.com/angristan/wireguard-install. Führen Sie als root, wie auf der Projektseite beschrieben, diese drei Kommandos in einem Terminal aus:
curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh
chmod +x wireguard-install.sh
./wireguard-install.sh
Das Script erfragt eine Reihe von Parametern. Auf abstrakter Ebene erstellt Wireguard zwischen Server und Clients ein privates Netzwerk mit einem eigenen IP-Adressraum. Aus Sicht des OS wird aber keine „Verbindung“, sondern ein Netzwerkadapter eingerichtet. Das Script erfragt im ersten Schritt, welche Netzwerkschnittstelle öffentlich genutzt werden wird, also über welchen Adapter (Ethernet, WLAN) der Datenverkehr den Server erreicht. Um sicherzugehen, dass das Script den richtigen Adapter nimmt (vorzugsweise Ethernet), können Sie mit dem Terminalkommando
ip a
eine Übersicht der Schnittstellen kontrollieren. Den WLAN-Adapter erkennen Sie am vorangestellten „wl“, die Ethernet-Schnittstelle beginnt mit „enp“. Kontrollieren Sie dies im ersten Schritt der Installation. Danach schlägt das Script die IPv4- und IPv6-Adressen für das interne Netz vor und erfragt den gewünschten Port. Außerdem müssen Sie noch definieren, über welchen DNS-Server die Adressabfragen der Clients aufgelöst werden. Hier könnten Sie etwa die Adressen von bekannten DNS-Servern wie von Google (8.8.8.8) oder Cloudflare (1.1.1.1) eintragen. Es geht natürlich auch der DNS-Server Ihres Zugangsanbieters, da sich die bestehende Netzwerkverbindung des Heimrouters vermutlich nicht ändert.

Den nächsten Schritt belassen Sie am besten bei den Voreinstellungen (es sei denn, Sie sind netzwerktechnisch so kompetent, um das Routing selbst zu bestimmen). Den Voreinstellungen gemäß dürfen alle Clients, die Sie einrichten und die sich in diesem eigenen Netz befinden, dann auch Daten empfangen und versenden. Damit sind die grundlegenden Einstellungen vorgenommen. Das Script kümmert sich anschließend um die nächsten Schritte. Dazu gehören der Download und die Installation aller benötigten Programmpakete aus den Quellen der Distribution. Danach wird das Routing in „iptables“ eingetragen. Außerdem wird Wireguard gestartet und als Service im System eingetragen, sodass der Tunnel auch gleich nach einem Neustart des Rechners jederzeit zur Verfügung steht.
Obendrein kümmert sich die Routine um die Generierung des geheimen und öffentlichen Schlüssels für den Server. Sind diese Aufgaben abgeschlossen, stoppt das Script und leitet Sie zur Einrichtung eines ersten Clients über. Hier können Sie für die Verbindung einen Namen vergeben, der nicht länger als 15 Zeichen lang sein darf und lediglich aus alphanumerischen Zeichen bestehen soll. Am Ende des Vorgangs zeigt das Script praktischerweise gleich einen QR-Code an, sofern Sie ein mobiles Gerät einrichten wollen.
Für andere Clients legt es eine Konfigurationsdatei an, die Sie dort verwenden können. Bei dieser Konfigurationsdatei müssen Sie allerdings im Abschnitt „Endpoint“ noch einmal Hand anlegen, da Sie den Client ja außerhalb Ihres Heimnetzes einsetzen wollen. Zunächst steht dort nämlich die lokale IP-Adresse des Servers im eigenen Netz, also nicht die öffentlich erreichbare IP, die Sie für die Portweiterleitung verwenden. An dieser Stelle müssen Sie also die öffentliche IP-Adresse eintragen, die Ihnen der Dienst für dynamische IP-Adressen vergeben hat. Möchten Sie weitere Clients einrichten, müssen Sie das Script nur erneut starten.
Wireguard-Client nutzen
Das Wireguard-Protokoll ist zwar schon seit einer Weile im Kernel enthalten, die Unterstützung auf der grafischen Oberfläche bleibt indes noch stiefmütterlich. Die Einrichtung mit dem Network-Manager, den viele Distributionen einsetzen, ist umständlich. Abhilfe schafft die Software „Wireguird“. Sie finden auf der Projektseite https://github.com/UnnoTed/wireguird Binärpakete für die Installation. Anschließend wird die Nutzung sehr einfach. Die vom Server produzierte Konfigurationsdatei müssen Sie lediglich auf den Client kopieren. Danach starten Sie das Tool Wireguird und klicken auf „Add Tunnel“. Im Anschluss wählen Sie die Konfigurationsdatei aus. Mit einem Klick auf „Activate“ in der Mitte des Programmfensters starten Sie die Verbindung. Wird sie nicht mehr benötigt, beendet „Deactivate“ den Tunnel wieder. Suchen Sie Clients für andere Betriebssysteme, werden Sie auf der offiziellen Seite von Wireguard fündig.

Wireguard-VPN-Server mit Fritzbox

Auch die Fritzbox kann VPN. Melden Sie sich in einem potenziell unsicheren Netzwerk unterwegs an, dann kann der heimische Router eine sichere Umgebung bereitstellen. Voraussetzung dafür ist naturgemäß, dass Sie die Fritzbox von unterwegs erreichen können. Theoretisch können Sie dies wie bei jedem Router durch einen Dienst für dynamisches DNS erreichen. Das ist hier aber unnötig, weil AVM mit dem Dienst „MyFritz“ selbst eine Lösung anbietet. Sofern bisher nicht geschehen, richten Sie sich dazu zunächst via „Internet –› MyFRITZ!-Konto“ ein Benutzerkonto ein. Die Box führt Sie durch den Prozess, in dessen Verlauf Sie eine E-Mail zur Bestätigung bekommen. Sobald Sie diese bestätigt haben, ist die Fritzbox auch über eine öffentliche „MyFritz“-Adresse zu erreichen. Die öffentliche IP-Adresse finden Sie stets in der Fritzbox. Um einen Zugang via Wireguard einzurichten, wechseln Sie nach erfolgreicher Registrierung in das Menü „Internet –› Freigaben –› VPN (WireGuard)“. Dort klicken Sie auf „Verbindung hinzufügen“ und entscheiden sich für die Option „Einzelgerät verbinden“.
Danach legen Sie einen Namen für die Verbindung fest. Die Einrichtung müssen Sie mit einem Druck auf eine beliebige Fritzbox-Taste bestätigen. Ist die Verbindung eingerichtet, blendet die Box einen QR-Code ein. Diesen können Sie verwenden, wenn Sie auf Ihrem Smartphone die App von Wireguard installiert haben. Um den Zugang auf einem Linux-Rechner zu benutzen, entscheiden Sie sich für den Download der passenden Konfigurationsdatei, die Sie dann im Zugangsprogramm importieren.

Achtung: Die Zugangsdaten (Datei oder QR-Code) können Sie nur bei der erstmaligen Einrichtung ansehen und herunterladen. Schließen Sie die Ansicht also nicht vorschnell, sonst müssen Sie die Verbindung erneut einrichten.

