Aus Raspberry Pi Geek 02/2020

Dead Simple VPN bohrt spielend leicht einen Tunnel durchs Netz

© tang90246, 123RF

Keep it simple

Christoph Langner

Die sichere Konfiguration eines VPNs gehört zu den komplizierteren Disziplinen eines Netzwerkadministrators. Das Dead Simple VPN verspricht, den Aufwand auf ein Minimum zu reduzieren.

Es gibt immer wieder Situationen, in denen man einen sicheren Tunnel ins Internet oder eine sichere Verbindung ins heimische Netzwerk aufbauen muss – etwa, falls man auf einer Geschäftsreise aus einem offenen Hotel-WLAN heraus Daten auf das NAS-Gerät im Büro schieben möchte, oder wenn man auf einer Konferenz das unverschlüsselte WLAN nutzen muss und vermeiden will, dass Fremde Logins oder Hash-Werte aus dem ungesicherten Datenstrom herausfischen.

Der klassische Weg für diesen Schutz führt über ein virtuelles privates Netz oder kurz VPN. Es bohrt quasi einen Tunnel aus dem gerade genutzten Netz von Ihrem Rechner durch das Internet zu einem vertrauenswürdigen Server in einem vertrauenswürdigen Netzwerk. Dritte haben dadurch keinen Zugriff mehr auf die übertragenen Daten.

Zu den klassischen Werkzeugen für den Aufbau eines VPNs gehören OpenVPN und das etwas modernere Wireguard [1]. In der Praxis fällt die Handhabung dieser Tools allerdings nicht gerade leicht. Abhilfe verspricht hier das Dead Simple VPN [2]: Hier genügt nach der Installation ein einziges Kommando, um die VPN-Verbindung aufzubauen.

Installation

Bislang findet sich Dead Simple VPN (DSVPN) noch nicht in den Paketquellen der gängigen Distributionen. Lediglich Arch Linux führt das Programm im AUR. Dort genügt für die Installation der Befehl yay -S dsvpn im AUR-Helper Yay.

Bei anderen Distributionen müssen Sie die Anwendung aus dem Quellcode kompilieren. Das hört sich allerdings schwieriger an, als es in der Praxis ist. Listing 1 demonstriert das Vorgehen auf einem frisch installierten Raspbian. Das letzte Kommando im Listing führt bereits das VPN-Programm aus und zeigt die Hilfe zu den einzelnen Parametern an (Abbildung 1).

Listing 1

$ sudo apt install git
$ git clone https://github.com/jedisct1/dsvpn.git
$ cd dsvpn
$ env OPTFLAGS=-mfpu=neon make
$ make
$ sudo make install
$ dsvpn --help
DSVPN 0.1.3 usage:
dsvpn "server"
      <key file>
      <vpn server ip or name>|"auto"
[...]

Der Befehl make install installiert DSVPN an der Paketverwaltung vorbei, es erscheint daher nicht in den üblichen Paketmanagementwerkzeugen. Um das Programm wieder sauber aus dem System zu entfernen, führen Sie es entweder im Quellcode-Verzeichnis sudo make uninstall aus oder löschen mit Root-Rechten die Datei /usr/local/sbin/dsvpn. Weitere Programmdateien oder Verzeichnisse entstehen bei der Installation nicht.

Abbildung 1: Dead Simple VPN l&auml;sst sich in wenigen Momenten direkt mit den Bordwerkzeugen von Raspbian bauen. Nach der Installation liefert die Hilfe erste Hinweise zur Bedienung.

Abbildung 1: Dead Simple VPN lässt sich in wenigen Momenten direkt mit den Bordwerkzeugen von Raspbian bauen. Nach der Installation liefert die Hilfe erste Hinweise zur Bedienung.

Raspberry Pi

Die ARM-CPU des Raspberry Pi arbeitet mit der Multimedia- und Signalverarbeitungserweiterung Neon. Dead Simple VPN unterstützt diese Funktion, jedoch müssen Sie den Neon-Befehlssatz mit dem Kommando env OPTFLAGS=-mfpu=neon make beim Bauen aktivieren.

Konfiguration

Für den Verbindungsaufbau benötigen Sie zunächst einen Schlüssel. DSVPN unterscheidet dabei nicht zwischen einem privaten und einem öffentlichen Key. Mit dem folgenden Kommando erstellen Sie die Schlüsseldatei vpn.key im aktuellen Verzeichnis mithilfe des im System vorhandenen Zufallsgenerators /dev/urandom:

$ dd if=/dev/urandom of=vpn.key count=1 bs=32

Später benötigen Sie den Key auch auf den Client-Rechnern, die sich in das DSVPN des Servers einklinken sollen. Kopieren Sie die Schlüsseldatei daher schon jetzt auf einen USB-Stick.

Damit haben Sie die Grundlagen gelegt und die Installation auf dem Server vollständig abgeschlossen. Wiederholen Sie nun sämtliche Schritte auf dem Client-Rechner, bis auf das Erstellen der Schlüsseldatei. Nehmen Sie stattdessen den vorbereiteten USB-Stick, und kopieren Sie die Datei vpn.key auf das Client-System. Als Ablageort empfiehlt sich zum Beispiel ein Unterordner VPN/ im Home-Verzeichnis oder der Home-Ordner selbst.

Nun rufen Sie, wie in Listing 2 gezeigt, den VPN-Dienst auf dem Server auf. In der Grundkonfiguration lauscht das System auf Port 443. Das hat den Vorteil, dass der eigentlich für HTTPS-Verbindungen genutzte Port in der Regel auch bei öffentlichen Hotspots (etwa solchen von Hotels oder Veranstaltungen) funktioniert.

Da Sie allerdings eine Port-Weiterleitung des Ports vom Router auf den DSVPN-Server benötigen, kommen Sie damit jedoch eventuell einem NAS in die Quere, das in der Regel die Ports 80 und 443 für verschlüsselte Verbindungen benötigt (siehe Kasten “Weitergeleitet”). Erweitern Sie den Aufruf daher bei Bedarf um die gewünschte Port-Nummer (Zeile 5).

Listing 2

$ sudo dsvpn server vpn.key auto
Interface: [tun0]
net.ipv4.ip_forward = 1
Listening to *:443
$ sudo dsvpn server vpn.key auto 4443
Interface: [tun0]
net.ipv4.ip_forward = 1
Listening to *:4443

Weitergeleitet

In einem typischen Heimnetzwerk sorgt ein WLAN-Router dafür, dass die angebundenen Rechner den Weg ins Internet finden. Der umgekehrte Weg, vom Internet auf einen bestimmten Rechner im LAN, ist jedoch nicht ohne Weiteres möglich: Unaufgefordert zugesandte Anfragen aus dem Internet lässt der WLAN-Router in der Regel einfach fallen.

Für das VPN-Netzwerk müssen Sie daher eine Port-Weiterleitung vom WLAN-Router auf den mit DSVPN ausgestatteten Rechner einrichten. Das Vorgehen unterscheidet sich von Hersteller zu Hersteller kaum; wir konzentrieren uns auf eine Fritzbox mit aktueller Firmware in der Version 7.10. Öffnen Sie mit der URL http://fritz.box das Administrationsbackend in einem Webbrowser. Dort gelangen Sie über Internet | Freigaben in den Reiter Portfreigaben.

Mit einem Klick auf die Option Gerät für Freigaben hinzufügen am Ende der Seite starten Sie einen Assistenten, der Ihnen bei der folgenden Konfiguration hilft. Zuerst wählen Sie das passende Gerät aus, danach klicken Sie auf den Schalter Neue Freigabe. Im Dialog ändern Sie nun die Auswahl auf Portfreigabe und tragen die Daten wie in Abbildung 2 gezeigt ein. Die Bezeichnung dürfen Sie frei wählen, beim Port müssen Sie sich an dem beim Aufruf von dsvpn angegebenen Port orientieren.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben