Es gibt unterschiedliche Motivationen eine VPN-Lösung einzusetzen. In der Regel geht es um den Zugriff aus dem Internet auf Geräte/ Systeme, die in einem Netzwerk stehen und vor dem allgemeinen Zugriff geschützt sein sollen. Beispielsweise die Smart-Home Geräte im Heimnetzwerk. Vielfach bieten die Router Hersteller bereits eine VPN-Funktion an und geben Ihren Kunden damit die Möglichkeit von außen auf Ihre Geräte zu Hause zuzugreifen. In einem Unternehmensnetzwerk mit einer festen Internetverbindung und vielleicht sogar eigenen IP-Adressen ist dieses recht einfach aber bei einer DSL-Verbindung oder auch bei einer Glasfaseranbindung ist dieses komplizierter.

Folgende Punkte müssen erfüllt sein.

  1. Es muss zu der aktuell zugewiesenen IP-Adresse des WAN-Anschluss des Routers einen DNS-Namen geben, dynDNS-Service
  2. Die durch den ISP zugewiesene Adresse muss öffentlich sein und darf nicht durch NAT oder ähnliches des ISP von außerhalb gesperrt sein

Ein weiterer Aspekt kommt noch hinzu. Das Aktivieren einer VPN-Lösung im Router oder hinter dem Router im Heimnetzwerk öffnet Ports und stellt somit ein Sicherheitsrisiko dar, macht das Heimnetzwerk angreifbarer.

Wie kann eine alternative Lösung aussehen?

Ein VPS, also ein Virtueller Private Server, kann helfen einiges einfacher und sicherer zu machen. Der Server benötigt wenig Rechenleistung, Speicher und Festplattenplatz. Das Wichtigste ist, er hat eine permanente, sich nicht ändernde IPv4-Adresse. Vielfach sogar zusätzlich eine IPv6-Adresse, welche zusätzliche Optionen bietet. Mit einem Linux Betriebssystem wie Ubuntu lässt sich auf diesem System Docker betreiben. Darauf basierend wird eine VPN-Lösung in einem Container installiert und der Kern der VPN-Lösung ist in Betrieb.

Folgendes Bild zeigt einmal den Ressourcenbedarf einer solchen VPN-Lösung in einem Container.

Zurück zu dem virtuellen Server, die beiden Punkte die erfüllt sein müssen (siehe oben) sind mit dem vorhanden sein des VPS erfüllt. Zudem haben diese Systeme eine performante Internetanbindung und sind von überall aus dem Netz gut zu erreichen. Wer eine eigene Domain hat kann im DNS einen festen individuellen Namen für die IP-Adresse vergeben. Das ist nicht zwingend notwendig denn in der Regel sind die Systeme auch unter dem „Managementnamen“ des Providers erreichbar. Es gibt also auf jeden Fall eine Zuordnung von Namen zu IP-Adresse.

Nachdem das Betriebssystem, beispielsweise Ubuntu, auf dem System installiert ist folgt die Installation des Docker-Service. Prinzipiell kann auf dem Betriebssystem jetzt auch die VPN-Lösung installiert werden. Die Containervariante bringt allerdings ein paar Vorteile mit. Unter anderen …

  1. Automatisierte Installation
  2. Geringerer Installations- und Konfigurationsaufwand
  3. Mehere Instanzen können gleichzeitig auf dem System parallel ohne gegenseitige Beeinflussung laufen
  4. Bedingte Trennung zwischen Host- und Container
  5. Updates und Pflege der Umgebung sind vereinfacht

Ich verwende gern PiVPN. PiVPN ist quasi eine Sammlung von Skripten, welche den Betrieb einer VPN-Lösung stark vereinfachen. Nach der Installation ist das anlegen von neuen Benutzern einfach und auch einige Management-Werkzeuge wie Backup & Restore sind praktisch integriert. Nachdem der PiVPN-Container installiert und in Betrieb ist werden die Benutzer angelegt. Je Benutzer gibt es ein Konfigurationsfile mit allen notwendigen Informationen. Dieses File wird dem Benutzer zum Import gegeben und nach dem Verbindungsaufbau ist das Gerät des Benutzers mit dem VPN verbunden.

Wie werden nun die Geräte im Heimnetzwerk eingebunden?

Hierzu gibt es mehere Wege.

  1. Jedes Endgerät das mit in das VPN aufgenommen werden soll bekommt einen openVPN-Client und eine Konfigurationsdatei (Verfügbar für diverse Plattformen)
  2. Ein Endgerät fungiert als Gateway zwischen dem Heimnetzwerk und dem VPN-Server

Der erste Weg ist denkbar einfach und ergibt sich eigentlich von selbst. Der zweite Weg bedeutet etwas konzeptionelle Arbeit und hier kommt ein System in Betracht, welches im Heimnetzwerk steht. Das könnte ein Raspberry Pi sein mit einem openVPN-Client und je nachdem wie hoch die Anforderung an den Datendurchsatz ist kann hier ein 15€ Raspberry Pi Zero mit WLAN bereits gute Dienste leisten. Entscheidend ist hierbei der Vorteil, das Heimnetzwerk muss nicht mehr von aussen erreichbar sein, denn der Raspberry Pi mit dem openVPN-Client benötigt weder eine von aussen erreichbare IP-Adresse noch benötigt er ein „Loch“ in der Firewall des Routers. Das ist besonders Interessant für die Anbindung von Geräten die über Mobilfunk (LTE) angebunden sind. Hier wird in der Regel weder eine öffentliche Adresse vergeben noch ist der Zugriff auf solche IP-Adressen möglich.

Ein weiterer Aspekt ist, wenn der Client nur eine IPv6 Adresse bekommt. In diesem Fall kann der VPS zwischen den beiden IP-Versionen als Gateway fungieren enn er neben der IPv4-Adresse auch eine IPv6-Adresse hat.

Um meine Geräte im Heimnetzwerk zu erreichen benötige ich eine normalen Internetzugang auf dem Handy, Tablet, Notebook, …, installiert muss der openVPN Client sein. Danach kann ich wie gewohnt auf meine Systeme im Heimnetzwerk zugreifen.