Was ist ein VPN?

VPN ist zunächst einmal die Abkürzung für Virtuelles Privates Netzwerk. Virtuell, da es nicht über die Hardware erstellt wird, sondern vollständig über die Software. Da es sich um ein Netzwerk handelt, auf das Außenstehende keinen Zugriff haben, nennt man es privates Netzwerk. Die Datenpakete eines VPNs werden also von meinem Rechner über ein unbekanntes ungesichertes Netzwerk versendet und landen am Ende auf einem VPN-Server.

Über diesen VPN-Server erhält man nun Zugriff auf das Netzwerk, in dem der VPN-Server eingebunden ist. Das kann ein anderer Server sein, oder eben auch die Internetverbindung, die am Netzwerk des VPN-Servers verfügbar ist.

Warum braucht man so etwas?

Stellen Sie sich folgendes Szenario vor: Ich sitze in einem Café und trinke gerade einen heißen Kaffee. Da fällt mir plötzlich ein, dass ich noch dringend eine Überweisung machen muss. Zusätzlich muss ich aber in 10 Minuten zu einem wichtigen Termin und habe daher keine Zeit mehr zum Bankautomaten zu fahren.

Ohne VPN könnte ein anderer Kunde meine Datenpaket abgreifen und auslesen.

Glücklicherweise habe ich meinen Laptop zur Hand und kann die Überweisung darüber tätigen. Das WLAN des Café ist jedoch vollkommen ungeschützt. Es kann also eine dritte Person über ihren Laptop den Netzwerkverkehr des WLANs mitschneiden, was ich mit meinem Laptop dort im Internet mache. Mit dem VPN verbunden wird meine Verbindung abhörsicher über diesen geleitet.

Dadurch kann der andere Kunde meine Pakete nicht mehr so einfach mitlesen und müsste das VPN-Paket knacken bevor er an meine Daten kommt.

In Zeiten von KRACK sind solche Vorsichtsmaßnahmen sinnvoll, denn wer weiß welche Bugs und Hacks uns noch bevorstehen.

Wie erstelle ich mir ein VPN?

Es gibt verschiedenste Möglichkeiten sich ein eigenes VPN zu erstellen. Manche Router verfügen über diese Fähigkeiten, man kann seinen PC zuhause eingeschaltet lassen und dort einen VPN-Server installieren oder man nimmt sich ein Raspberry Pi und installiert dort einen VPN-Server. Da ich über die notwendige Hardware verfüge, erläutere ich eine VPN-Server Installation anhand einer virtuellen Maschine mit installiertem Debian 9.1. Als Software für den VPN-Server verwende ich pritunl.

Um den VPN-Server zu installieren, gilt es lediglich den Anweisungen in der Installationsanleitung zu folgen:

Hier wird zunächst die Quelle von pritunl zu dem installierten Paketmanager hinzugefügt, anschließend wird ein mit apt-key die nötigen Schlüsselsets von hkp://keyserver.ubuntu.com geladen. Danach wird pritunl und mongodb-server auf dem System installiert.
Mit systemctl start werden die beiden Dienste gestartet und mit enable dem Autostart hinzugefügt.

Die Installation ist nun abgeschlossen und es gilt das System zu konfigurieren.

Die pritunl Weboberfläche kann ganz einfach über die IP des Systems erreicht werden.

Mit pritunl:pritunl kann man sich dort anmelden.
Als nächstes muss eine Organisation angelegt werden. Dazu klickt am auf den Reiter Users und anschließend auf Add Organization.

Nachdem man eine Organisation angelegt hat kann man diese mit Benutzern füllen, mit einem Klick auf Add User kann man die nötigen Daten eingeben.

Die Pin am Ende gilt auch als Passwort für den VPN-Key welchen wir gleich herunterladen werden.
Nun legen wir unter dem Reiter Servers mit einem Klick auf Add Server einen Server an.

Die oben angegebenen Einstellungen gelten als sehr sicher. Allerdings können diese bei einem hohen Traffic und vielen Clients eine relativ starke Hardware voraussetzen. Da wir jedoch einen VPN für den privaten Gebrauch anlegen, können diese auf die höchste Sicherheit gestellt werden.

Die Einstellung Max Clients sollte so angelegt sein, dass keine extra Benutzer möglich sind. Das heißt wenn ich Laptop und Handy am VPN anmelden möchte, wähle ich Max Clients 2 und lege für beide Geräte einen Benutzer an. Es besteht die Möglichkeit mit Allow Multiple Devices mehrere Geräte über einen Benutzer zu erlauben.

Mit Block Outside DNS wird ein DNS Leak verhindert. Mit dieser Option ist sichergestellt, dass der im VPN eingetragene DNS benutzt wird und nicht der DNS welcher im Betriebssystem des Gerätes konfiguriert ist.
Mit Restrict Routing werden nur die Routen verwendet, die im VPN angelegt wurden.
Mit abschließendem Klick auf Add wird der Server erzeugt.

Um dem gerade erstellten Server die Organisation zuzuweisen klickt man auf Attach Organization und wählt die gewünschte Organisation und den Server aus.

Um Routen des Servers zu ändern klickt man auf Add Route und gibt das gewünschte Subnetz an.
Es ist darauf zu achten, dass die Standardroute anschließend gelöscht wird. Die Standardroute ist 0.0.0.0/0, welche alles über den VPN routen würde.

Nachdem die DH-Parameter generiert wurden kann der Server gestartet werden.

Nun gilt es noch den Client zu konfigurieren.

Dazu wählt man den Reiter Users und klickt auf seinen Benutzer. Dort erscheinen nun Schaltflächen. Man wählt die gezeigte an und startet damit den Download der Client Einstellungen.

Den Client selbst kann man sich hier herunterladen. Unter Android oder iOS kann man auch den OpenVPN Client verwenden.
Die Einstellungen werden nun noch importiert und wir können uns mit dem VPN verbinden.

Falls der Server hinter einem Router steht muss dieser noch den Port 18441 über UDP an den Server weiterleiten. Den Port findet man über die Server Einstellungen heraus.

Falls die eigene IP-Adresse dynamisch ist, muss man sich einen dynDNS-Client wie zum Beispiel DDClient auf seinem Debian installieren und damit die IP aktualisieren. In den Servereinstellungen muss dazu ebenfalls die Domain anstatt die IP hinterlegt werden. Dies betrifft auch die Client Einstellungen daher müssen diese neu heruntergeladen werden.

Um die Sicherheit des VPN Servers nicht zu kompromittieren darf dieser nur über den eingestellten UDP Port von außerhalb erreichbar sein.

Fazit

Mit einem eigenen VPN Server ist man so bestmöglich gerüstet um den Anforderungen eines öffentlichen WLAN´s standzuhalten. Auch ansonsten ist man in unbekannten Netzwerken, zum Beispiel das Netzwerk des Nachbarn oder das eines Freundes, auf der sicheren Seite. Man kann nie genau wissen wer in einem unbekannten Netzwerk gerade den Netzwerkverkehr mitliest. Durch den eigenen VPN Server hat man daher die Gewissheit, dass seine eigenen Daten geschützt sind.

Ein VPN Service ist zwar eine Alternative, jedoch kann man sich nie vollkommen sicher sein was am anderen Ende mit seinen Daten passiert.

Armin Marx

Armin Marx

Application Developer

Armin ist ein waschechter Saarländer mit einer Liebe für Technik, Kampfsport (MMA) und Musik. Besuchte die Mechatronik Vorlesungen bevor er realisierte, dass waschechter Code das coolste daran ist. Gewann einmal den ersten Preis beim Tischfußball und hat das seit dem nie wieder probiert. Studiert z.Z. an der HTW und macht das SMS Gateway jeden Tag ein bisschen besser. Darüber schreibt er auch in diesem Blog.

Gefällt dir der Artikel? Bitte teile ihn!
Share on Facebook7Share on Google+0Share on LinkedIn0Email this to someoneTweet about this on Twitter