Raspberry Pi: PPTP VPN-Server installieren
Ab und zu ist man in öffentlichen W-LAN Netzwerken, wie in einem Café oder an der Uni. Verwendet man dort das Internet einfach, so können meist alle Personen, die zur selben Zeit in dem W-LAN eingewählt sind, den Datenverkehr mitschneiden – ganz abgesehen vom Betreiber des Netzwerkes. Damit können auch Zugangsdaten und persönliche Informationen mitgeschnitten werden. Um dies zu verhindern, kann man den Internetverkehr durch eine verschlüsselte Verbindung leiten, einen sogenannten VPN-Tunnel. Dabei wird der Datenverkehr verschlüsselt an einen Server (in unserem Fall der Raspberry Pi zu Hause) geleitet, der wiederum die eigentlich gewünschten Abfragen ausführt und die Antworten wieder verschlüsselt zurück zu dir in das öffentliche Netzwerk sendet. Ein beliebter VPN Server, da er mit vielen Geräten von Haus aus kompatibel ist, ist PPTP. Daneben gibt es noch OpenVPN, der ebenfalls beliebt ist und zu dem ich bereits eine Installationsanleitung veröffentlicht habe. Auf die Vor- und Nachteile beider VPN-Server möchte ich an dieser Stelle jedoch nicht eingehen. Stattdessen erkläre ich im Folgenden wie man einen PPTP VPN-Server auf den Raspberry Pi installiert.
Voraussetzung: Raspbian oder vergleichbare Distribution installiert
Wichtige Info: Sherlock hat in den Kommentaren angemerkt, das die Authentifizierung PPTP seit August 2012 als unsicher gilt. Dies wurde damals durch Heise Security getestet. Mir war diese Umstand zum Zeitpunkt als das Tutorial verfasst wurde nicht bekannt. Ich kann euch an dieser Stelle nur dazu raten OpenVPN anstatt PPTP zu installieren.
Zunächst aktualisieren wir die bereits installierten Pakete des Betriebssystem, um sicherzugehen, dass diese aktuell sind.
sudo apt-get update && sudo apt-get upgrade
Nun installieren wir mittels des Paketmanagers APT den VPN-Server PPTP.
sudo apt-get install pptpd
Wir müssen nun in der Datei /etc/pptp.conf die lokale IP-Adresse des Raspberry Pis eintragen. Falls dir diese nicht bekannt sein sollte, kannst du diese im Router meist unter Netzwerk, Verbundene Geräte o.ä. herausfinden. In meinem Fall lautet die IP-Adresse 192.168.178.28 (muss im Folgenden durch die eigene IP-Adresse ersetzt werden). In dem Editor nano kann man mittels STRG + X, Y und Enter speichern.
sudo nano /etc/pptpd.conf
#localip 192.168.0.1
ersetzen durch
localip 192.168.178.28
Jetzt müssen wir am Ende der Datei /etc/ppp/pptpd-options folgende Zeilen einfügen. Der Parameter ms-dns definiert den DNS-Server, über den Domains aufgelöst werden. Hierbei kann natürlich auch ein anderer Server, z.B. aus der folgenden Liste, verwendet werden.
Öffentliche DNS-Server:
- OpenDNS: 208.67.222.222
- Chaos Computer Club Berlin: 213.73.91.35
- Google: 8.8.8.8
sudo nano /etc/ppp/pptpd-options
ms-dns 8.8.8.8 noipx mtu 1490 mru 1490
Wir müssen nun noch eine Weiterleitung des Internetzugangs einrichten, sodass man über den Raspberry Pi auf das heimische Internet zugreifen kann.
sudo nano /etc/sysctl.conf
#net.ipv4.ip_forward=1
ersetzen durch
net.ipv4.ip_forward=1
Der Firewall auf dem Raspberry Pi müssen wir nun auch noch sagen, dass sie den Datenverkehr weiterleiten soll.
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Da die Firewall diese Anweisung nach jedem Neustart des Rapberry Pis löscht, müssen wir diese als Crontab eintragen, sodass sie bei jedem Start wieder definiert wird. Hierzu tragen wir einfach folgende Zeile am Ende der Crontab Datei ein.
sudo crontab -e
@reboot sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Nun ist es an der Zeit, Benutzer anzulegen, die sich später mit dem PPTP VPN-Server verbinden können. Deren Zugangsdaten müssen wir nach folgendem Schema in die /etc/ppp/chap-secrets Datei eintragen. Pro Zeile darf ein Benutzer eingetragen werden.
sudo nano /etc/ppp/chap-secrets
Schema
Benutzername[TAB]*[TAB]Kennwort[TAB]*
Beispiel
Jan * SuperGeheimesPasswort *
Damit alle Änderungen übernommen werden, starten wir mittels folgenden Kommandos den PPTP VPN-Server neu.
sudo service pptpd restart
Fertig! Auf dem Raspberry Pi befindet sich nun ein einsatzbereiter PPTP VPN-Server. Wie man sich mit diesem unter verschiedenen Betriebssystemen verbindet, wird euch in den folgenden Anleitungen von anderen Bloggern/Webseiten erklärt. Was ich noch beim schreiben dieses Artikels bemerkt habe, ist, dass es manchmal bis zu einer Minute nach dem erfolgreichen Anmelden an den VPN-Server dauert, bis man über diesen auf das Internet zugreifen kann.
Anleitungen nach Betriebssystemen:
Zugriff außerhalb des eigenen Netzwerks
Portfreigabe im Router
Soll der soeben installierte Dienst auch außerhalb des eigenen Netzwerkes verfügbar sein, so müssen folgende Ports im Router freigegeben werden. Wie man freigibt, beschrieb ich in dem Artikel Portforwarding bei Fritz!Box und Speedport.
19 Kommentare. Hinterlasse eine Antwort
Auch wenn man nicht groß auf die Unterschiede zwischen PPTP und OpenVPN eingehen will sollte man doch zumindest erwähnen, daß PPTP geknackt ist und Microsoft selber vom Einsatz abrät: http://www.heise.de/security/meldung/Microsoft-warnt-vor-PPTP-und-MS-CHAP-1671706.html
Danke für den Hinweis. Mir fahren Sicherheitsprobleme von vor 2012 bekannt, welche gefixt wurden. Jedoch ging dieses endgültige Ende von PPTP an mir vorüber. Habe es natürlich im Beitrag ergänzt!
Gute Anleitung (wie bisher alles, was ich hier als Anleitungen hier lesen konnte). Und es ist auch sehr wichtig, dass du so schnell auf den Hinweis von SHERLOCK eingegangen bist. Für die Nutzung von PPTP gibt es kaum noch einen Grund (außer vielleicht bei einem Client, der nix anderes kann).
Wenn du jetzt noch eine der in Netz vorhandenen Anleitungen für ein IPsec-Gateway „aufbereiten“ könntest (StrongSWAN), dann hättest du hier mit allen drei gängigen Varianten ein Rundum-Paket für alle Ansprüche geliefert.
MfG Peter
Den Vorschlag ich mal in die Todo-Liste aufgenommen 😉
Hallo Jan. Welche Ports muss ich denn freigeben? Lokal funktioniert alles. Extern geht aber überhaupt nichts
Solle mit einer Freigabe von Port 1723 getan sein.
Deine Anleitung(en) sind Spitze und für mich immer nachvollziehbar und funktionstüchtig.
Da PPTP ja nun geknackt ist und nicht mehr verwendet werden sollte, habe ich nach einer funktionierenden Installation für einen VPN-Server mit L2TP/IPSec auf dem Raspberry gesucht. Keine hat beim Zugriff von außen funktioniert.
Dieser soll den Zugriff auf mein zuhauseNAS mit Notebook und AndroidMobile absichern.
Das wär doch vielleicht für dich einfach und für viele „Schutzbedürftigen“ ein lohnendes Thema.
Mfg Karsten
Steht schon auf der Todo-Liste, jedoch habe ich noch andere Themen, über die ich zuvor schreiben möchte.
Super Anleitung. Verbindung konnte ich erfolgreich herstellen. Aber ich kann keine Verbindung zu anderen Netzwerkgeräten im LAN herstellen? Was muss dafür noch konfiguriert werden?
Kann ich dir auf die Schnelle nicht beantworten, da meine Stärke nicht gerade im Thema Netzwerktechnik liegt. Aber mit etwas Googeln sollte man das schon rausbekommen können 😉
Hallo Jan
Erst einmal vielen Dank für die vielen Infos und Anleitungen zu dem Raspberry Pi.
Da ich mit OpenVPN noch grössere Probleme habe, möchte ich vorerst den PPTP einrichten.
Die Anleitung habe ich befolgt und ich konnte auch eine Verbindung aufbauen, aber sobald ich die SSH Verbindung mit Putty trenne, dann kann ich keine Verbindung mehr aufbauen. Erst wenn ich micht wieder mit SSH anmelde und die Zeile sudo service pptpd restart ausführe, dann kann ich auch wieder eine PPTP-Verbindung aufbauen, aber nur solange ich mit SSH angemeldet bin.
Woran kann das liegen und was kann ich dagegen machen?
Das kann ich mir eigentlich nicht wirklich vorstellen. Bist du dir sicher, dass es einen Zusammenhang zum offenen Terminal gibt…?
Das machten nach 3x prüfen genau den anschein, aber irgendwie musste das mehr ein Zufall gewesen sein. Jetzt läuft die PPTP-Verbindung teilweise, aber wirklich nur teilweise. Ich werde das in den nächsten Tagen noch weiter prüfen.
Danke Dir.
Kann man den Server auch für IPv6 konfigurieren?
Ich kann dir auf Grund der Sicherheitslage, wie im Artikel beschrieben, von der Nutzung von PPTP nur abraten, weshalb ich hier keinen Support mehr gebe.
Dein Tutorial ist leider immer noch nützlich,….wenn man ein Windows Phone hat. Dies kann zwar L2TP/IPSec. Lieder geht es aber nicht mit der allseits beliebten Lösung Softether als Server.
Hallo,
danke für die gute Anleitung. Bei Step 6 bekomme ich folgende Fehlermedung
pi@raspberrypi ~ $ sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
libkmod: ERROR ../libkmod/libkmod.c:554 kmod_search_moddep: could not open moddep file ‚/lib/modules/3.18.11+/modules.dep.bin‘
iptables v1.4.14: can’t initialize iptables table `nat‘: Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.
Was mache ich falsch?
Du musst neustarten…. wahrscheinlich hast du es schon gemacht 🙂
Hallo,
ich weiß es ist schon alles etwas älter. Ich habe jetzt mehrere Jahre diesen weg für den VPN-Tunnel in Benutzung gehabt und auch keinerlei Probleme. Nun habe ich allerdings das Problem, dass ich keine öffentliche IPv4-Adresse mehr von meinem neuen Anbieter bekomme und es auch keine buchbare Option gibt. Ich habe schon, wie in „Step 5“ beschrieben den „ipv6 forward“ eingeschaltet. leider ohne Erfolg. gibt es eine Möglichkeit, den Tunnel über IPv6 zum Laufen zu bekommen?
Gruß