In den wenig vertrauenswürdigen Gewässern öffentlicher Internetverbindungen ist das Virtual Private Network ein sicherer Hafen. Ein VPN verschlüsselt den gesamten Datenverkehr auf Netzwerkebene. Es ist auch ein sicheres Eingangstor zum Netzwerk dahinter und kann mit dem richtigen Routing eine Verbindung zum gesamten Netzwerk herstellen. Für diese Rolle ist der Raspberry Pi geradezu prädestiniert, da hier alle Werkzeuge zur Verfügung stehen. Die Leistung der CPU und die Geschwindigkeit des 100-MBit- Ethernet-Ports reichen für ein kleineres Netzwerk, das per DSL an die Außenwelt angebunden wird.
Einfachere Einrichtung durch Pi VPN
Open VPN ist die verbreitete VPN-Lösung für Linux-Systeme. Es ist Open Source, gilt als sehr sicher, was ein unabhängiger Sicherheitsaudit im Mai 2017 wieder bestätigt hat. Open VPN ist aber für den professionellen Einsatz geschaffen und die Konfiguration des Servers stellt eine Hürde dar. Diese erfolgt ganz nach Linux-Tradition in der Kommandozeile und mittels textbasierenden Konfigurationsdateien. Bevor das VPN steht, gilt es, eine Menge an Dokumentation zu wälzen. Ungeduldige Anwender werden lieber gleich etliche Konfigurationsbeispiele durchprobieren. So oder so macht einem Open VPN den Anfang nicht leicht. Es geht aber inzwischen deutlich einfacher: Pi VPN ist ein Bash-Script, das alle wesentlichen Konfigurationsschritte in textbasierten Menüs im Terminal abhakt. Zwar ist das Pi im Namen ein Hinweis auf den Raspberry Pi, da die Platine oft als kleiner VPN-Server eingesetzt wird. Pi VPN arbeitet aber an sich auf beliebiger Hardware und auf vielen Linux-Distributionen. Unterstützt wird nicht nur Raspbian, sondern auch Debian, Ubuntu und alle Abkömmlinge. Pi VPN ist schon ein paar Jahre verfügbar, von seinen Entwicklern aber erst vor kurzem fit für die aktuellen Debian- und Ubuntu-Ausgaben gemacht worden. Weil es sich um Open VPN handelt, gibt es an Clientsoftware sowieso keinen Mangel: Für Linux, Windows, Mac-OS X, Android und iOS gibt es Clients.
Siehe auch: Sicheres VPN mit der Fritzbox in fünf Schritten
Die Vorbereitungen für Pi VPN

Bei den Vorarbeiten unterscheidet sich der VPN-Aufbau mittels Pi VPN nicht von anderen Lösungen: 1. Der VPN-Server, also der Raspberry Pi oder der Linux-Rechner, braucht im LAN eine feste IP-Adresse vom Router. Diese Vorarbeit erledigt man in der Administrationsoberfläche des Routers anhand der MAC-Adresse des VPN-Servers. Je nach Routermodell unterscheidet sich die Einrichtung der festen IP für einen Rechner im LAN. Bei der AVM Fritzbox lautet die Funktion „Diesem Netzwerkgerät immer die gleiche IPv4-Adresse zuweisen“ und ist unter Heimnetz -> Heimnetzübersicht -> Netzwerkverbindungen -> Bearbeiten“ zu finden. 2. Diese feste lokale IP-Adresse muss nun durch eine Portweiterleitung des Routers von außen aus dem Internet erreichbar sein. Ein Beispiel dazu: Der übliche Port für Open VPN ist der Port 1194. Wenn der Open-VPN-Server im LAN die IP 192.168.1.77 hat, dann muss der Router den Verkehr vom Typ UDP des Ports 1194 auf die lokale IP-Adresse des Raspberry und den dortigen Port 1194 umleiten. 3. Die öffentliche Internet-IP ist bei DSL-Anbindung nicht feststehend, da der Provider bei jedem Verbindungsaufbau und mindestens einmal täglich eine zufällige neue IP-Adresse vergibt. Hier kommt ein dynamischer DNS-Dienst wie beispielsweise das kostenlose No-IP zur Hilfe, das einer sich ändernden IP-Adresse nach Rückmeldung durch den Router einen festen Hostnamen zuteilt. Die meisten DSL-Router unterstützen No-IP und teilen dem Dienst automatisch bei jeder Neuverbindung die zugeteilte IP mit.
Tipp: Raspbian-Image mit Nextcloud installieren
Pi VPN: Erster Start

Weil es sich um ein Bash-Script handelt, verlangt Pi VPN keine Installation im eigentlichen Sinne. In der Kommandozeile laden Sie mit wget
wget -O pivpn https://install.pivpn.io
einfach das Script in das aktuelle Verzeichnis herunter und starten es von dort:
bash pivpn
Für einige Aktionen wird das Script nach dem sudo-Passwort fragen und zunächst automatisch per apt-get die noch benötigten Pakete installieren. Danach beginnt die eigentliche Einrichtung von Open VPN über die englischsprachigen Menüs von Pi VPN: Die Pfeiltasten bewegen den Cursor zwischen Optionen und Tab wechselt zu „OK“ beziehungsweise „Cancel“. Pi VPN beginnt mit dem Hinweis, dass eine statische IP-Adresse konfiguriert werden sollte. Wenn dieser Schritt schon in den Vorarbeiten auf dem Router erledigt wurde, überspringen Sie diesen Punkt. Der nächste Dialog „Choose a local user that will hold your ovpn configurations“ fragt nach einem lokalen Benutzerkonto, in dem die Open-VPN-Konfiguration liegen soll. Hier wählen Sie das eigene Benutzerkonto aus. Im folgenden Schritt schlägt Pi VPN vor, automatische Updates („unattended upgrades“) einzuschalten, falls dies noch nicht der Fall ist. Die anschließende Frage, ob UDP oder TCP als VPN-Protokoll zum Einsatz kommen soll, belässt man auf UDP. Auch die vorgeschlagene Portnummer sollte bei 1194 bleiben, da dies der Standardport für Open VPN ist. Die empfohlene Schlüssellänge von 2048 Bit ist ebenfalls in Ordnung.

Danach erstellt Pi VPN die serverseitigen kryptografischen Schlüssel, was auf kleinen Platinenrechnern wie dem Raspberry Pi eine Weile dauert. Der Dialog „Public IP or DNS“ fragt dann, ob der VPN-Server per IP-Adresse oder per Hostname („DNS Entry“) erreichbar ist. Im Fall eines heimischen Servers ist das der dynamische Hostname, den sich der Router bei einem der eingerichteten DNS-Dienste holt (No-IP oder vergleichbar). Der nächste Schritt gibt eine Reihe an DNS-Servern zur Auswahl, die Clients verwenden sollen, wenn diese über das VPN das Internet nutzen. Danach schlägt Pi VPN einen Neustart vor, um den Open-VPN-Dienst in Gang zu setzen.
Siehe auch: Cleveres Zubehör für Raspberry Pi & Odroid
Die Netzwerkclients hinzufügen
Auch für das Erzeugen von VPN-Zertifikaten, mit der sich Clientrechner bei Open VPN anmelden, hat Pi VPN ein Hilfs-Script parat: Mit dem Kommando
pivpn add
erstellt man im Nu die Clientkonfigurationsdateien. Dieses Script fragt nur nach dem gewünschten Clientnamen und einem Passwort, anschließend liegt die fertige Konfigurationsdatei mit dem Namen „[Client].ovpn“ im Ordner „~/ovpns“. Nur diese eine Datei benötigt man auf den zugreifenden Clients und kann sie dort in den verwendeten Open-VPN-Client importieren. Der Clou: Auch alle Schlüssel und das Serverzertifikat sind in dieser einen Datei untergebracht. Das Script kann mittels
pivpn revoke
auf Wunsch einen Client jederzeit auch wieder entfernen.