Dies ist eine alte Version des Dokuments!
Die Frage, wozu man ein VPN benötigt ist einfach zu beantworten, er bietet die Möglichkeit die eigenen Infrastruktur auch unterwegs sinnvoll zu nutzen. Konkrete Beispiele:
VPNs werden von den unterschiedlichsten Providern angeboten, sind aber in der Regel kostenpflichtig oder im Datenvolumen beschränkt. Hinzu kommt die Überlegung das man dem Anbieter vertrauen muss, denn aller Netzwerkverkehr läuft über dessen Server und kann dort mitgelesen werden.
Für eine eigene VPN Lösung kommen
Einige Routerhersteller bieten in im Gerät die Möglichkeit zum Aufbau eines VPN an. Ich selbst habe eine Fritz!Box und finde dort die Möglichkeit einen VPN einzurichten. Die AVM Webseite bietet sehr gute HowTo Einträge dazu an. Allerdings lässt die Implementierung nur „IPsec“ mit „Xauth“ an, was auf vielen Geräten nicht unterstützt wird. Auf SmartPhones hilft eine App der Firma AVM aber um z.B. einen Windows 10 Laptop anzubinden erfordert Software von Drittherstellern.
Einen Computer zu Hause zu betreiben hört sich aufwendig an, ist es aber nicht. Der RaspBerry Pi, ein billiger (sowohl in der Anschaffung als auch im Betrieb) Server für Zuhause. Das Software Angebot ist überwältigend, wie bei Linux üblich, und auch kostenlos.
Für eine eigene VPN Lösung kommt OpenVPN zu Zuge. OpenVPN unterstützt alle gängigen Plattformen und benötigt keine Server eines Providers.
Wie kommt nun PiVPN ins Spiel? Einen OpenVPN Server zu installieren, konfigurieren und zu betreiben erfordert Fachkenntnisse, die sich nicht jedermann aneignen möchte. Um dieses Problem zu umgehen wurde mit PiVPN ein Tool zu Verfügung gestellt, das diese Aufgaben in einfacher Weise übernimmt. Die offizielle Webseite des PiVPN Projektes bietet Informationen rund um das Projekt, auf der GitHub Seite des Projektes kann der Source Code eingesehen werden.
Lesenswerte Artikel zu diesem Thema (u.a. hilfreiche Quellen meiner ersten Versuche mit PiVPN):
Vor der Installation sollte man einige Informationen zusammenstellen, die während der Installation benötigt werden. Die wichtigsten sind hier gelistet, in den meisten Fällen werden geeignete Vorschläge gemacht.
curl -L https://install.pivpn.io | bash
Das war es schon, es werden im Verlauf der Installations eingie Fragen gestellt, deren Antworten für den „normalen“ VPN Nutzer sinnvoll vorbelegt sind. Es empfiehlt sich, einen Blick in die englische Step-by-Step Anleitung zu werfen, um einen Eindruck über die auszuwählenden Antworten zu bekommen.
Nach erfolgter Installation ist PiVPN einsatzbereit.Es können sofort Profile für die Clients angelegt werden, die mit jeder Plattform (Windows, Mac, Android, IOS oder auch Raspberry Pi) genutzt werden können. Download Links für die Clients führe ich hier auf:
Wir haben nun ein funktionierendes VPN (Virtual Privat Network) in dem alle teilnehmenden Geräte miteinander verbunden sind. Alle Teilnehmer (Clients) benutzen den Internetzugang des OpenVPN Servers (in diesem Fall unser Raspberry Pi) und jeglicher Internetzugriff erfolgt über das heimische Netz. Dabei ist der Verkehr zwischen OpenVPN Client und OpenVPN Server immer verschlüsselt. Damit ist auch in öffentlichen HotSpots eine gesicherte Verbindung gewährleistet.
Manchmal wollen wir aber mehr, z.B. Zugriff auf andere Geräte in unserem Heimnetz, das NAS Laufwerk ist dafür ein Beispiel. Um Zugriff auf das Heimnetz zu erhalten, muss eine „Route“, also der Weg von Client über das VPN zum Heimnetz, definiert werden.
Dazu muss die Konfigurationsdatei des OpenVPN Servers (etc/openvpn/server.conf) geändert werden und um folgende Zeilen (am Besten am Ende der Datei) ergänzt werden:
push "route 192.168.178.0 255.255.255.0 10.8.0.1" route 192.168.178.0 255.255.255.0 10.8.0.1
Damit kommen wir nun über den VPN an die Geräte in unserem Heimnetz, können diese aber nicht mit einem Namen ansprechen. Sollte der heimische Router einen DNS Service für das Heimnetz (wie z.B. die Fritz Box) zur Verfügung stellen, können die Geräte auch über Namen angesprochen werden. In der /etc/openvpn/server.conf muss dazu der Eintrag
push "dhcp-option DNS 192.168.178.1" push "dhcp-option DOMAIN fritz.box
ergänzt werden.