Installation PiVPN – Den Raspberry Pi einfach zum VPN-Server ausbauen

Die Artikelserie zum Raspberry Pi
Teil 1 (Link): Der Raspberry Pi 3 – der Alleskönner im Scheckkartenformat
Teil 2 (Link): Installation und Konfiguration von Raspbian Stretch auf Raspberry Pi 3
Teil 3 (Link): Fernzugriff per SSH und VNC auf den Raspberry Pi
Teil 4: Dieser Artikel
Teil 5 (Link): OpenVPN/PiVPN Benutzerverwaltung auf dem Raspberry Pi
Teil 6 (Link): Installation und Konfiguration von Raspbian Stretch Lite auf Raspberry Pi 3 (ohne Desktop)
Teil 7 (Link): etherwake – Der Raspberry Pi als Wake On LAN-Server
Teil 8 (Link): Adblocker mit Pi-hole: Das schwarze Loch für Werbung im Internet
Teil 9 (Link): Die private Cloud auf dem Raspberry Pi – Seafile Server auf Raspian Stretch Lite installieren

Ein Vorwort der Entwarnung

Lasst euch von dem Artikel und den paar Fachbegriffen nicht abschrecken! Die Installation, gerade von PiVPN als OpenVPN-Server ist wirklich einfach und für jedermann ohne Probleme zu machen. Jeder Schritt dieses Tutorials ist bebildert beschrieben, so sollte eigentlich jeder klar kommen.

Also traut euch, ihr habt nix zu verlieren! Denn sollte was schiefgehen, löscht ihr einfach die SD-Karte und fangt von vorne an. Falls ihr Fragen habt oder dennoch Probleme auftreten sollten, schreibt mir unten in die Kommentar-Box!

Was ist VPN überhaupt?

Kurz gesagt bietet euch ein VPN die Möglichkeit, von überall auf der Welt auf euer Netzwerk daheim zuzugreifen. Voraussetzung ist natürlich, dass ihr einen Internet-Anschluss habt.

Ausführliche Infos zu VPN findet ihr auf Wikipedia (Link).

Ein VPN-Server für das Heim-Netzwerk. Warum überhaupt?

Ein VPN-Server daheim? Nerd-Stuff mag man meinen. Hier mal zwei Gründe, warum man auch als „Normalo“ ein VPN brauchen könnte.

Szenario 1: Daheim in eurem Netzwerk laufen Geräte, auf die ihr ab und an zugreifen wollt oder müsst. Mittlerweile nutzen viele ein NAS, also eine Netzwerkfestplatte. Die Hersteller von NAS-Systemen bieten Möglichkeiten an, diese Geräte über das Internet erreichbar zu machen. Das ist ungemein praktisch, denn man kann von unterwegs mal eben auf die Urlaubsbilder zugreifen und sie den Verwandten zeigen.

Das Problem dabei ist, dass die Anmeldeseiten für jedermann im Netz erreichbar sind und so eine Angriffsfläche bieten. Das heißt, ein Angreifer kann euer NAS hacken und sich Zugriff auf die darauf gespeicherten Daten verschaffen. Teils sind das mehrere Gigabyte an privaten Bildern, Backups von wichtigen Dateien, usw.

Ein vorgeschalteter VPN-Server bietet eine zusätzliche Hürde für Angreifer. Die Programme wie in unserem Fall OpenVPN/PiVPN sind auf Sicherheit getrimmt und nicht darauf, mal eben schnell und für jeden „Idioten“ ein NAS ans Internet zu bringen.

Szenario 2: Ihr seid in Urlaub, geht in ein Café und loggt euch dort ins WLAN ein, um mal eure Mails zu checken, ein bisschen im Netz zu recherchieren und vielleicht Geld vom Konto auf die Kreditkarte zu überweisen.

Es kann sein, dass in dem Netzwerk, in dem ihr euch befindet, jemand alles mitliest, was ihr im Internet treibt. Zwar ist Online-Banking verschlüsselt und mittlerweile auch bei den meisten Nutzern das E-Mail. Dennoch muss man immer damit rechnen, dass ein böswilliger Nutzer mitliest und die Daten mitschneidet.

Ein VPN-Server daheim bietet euch die Möglichkeit, einen komplett verschlüsselten Tunnel von eurem PC/Tablet/Notebook/Handy nach zuhause aufzubauen, durch den dann alle Daten verschickt werden. Ein Angreifer, der euren Datenverkehr im WLAN mitschneidet, sieht nur Datenmüll und hat keine Möglichkeit, die Daten zu nutzen.

Wichtige Infos und Vorarbeiten

Bitte aufpassen: Vorsicht, dass ihr nicht voreilig mit Enter zum nächsten Schritt springt! Je nachdem, bei welchem Schritt ihr gerade seid kann es passieren, dass ihr nicht mehr zurück kommt und die PiVPN-Installation von vorne beginnen müsst! Also immer genau schauen, dass alles richtig eingestellt ist, bevor ihr einen Bildschirm bestätigt!

Vorarbeiten: Die wirklich allermeisten Internet-Anschlüsse von Privatpersonen bekommen jeden Tag vom Provider eine neue IP-Adresse zugewiesen, über die der Anschluss mit dem Internet kommuniziert. Da sich also auch jeden Tag die Adresse ändert, über die ihr von außen auf euer VPN zugreifen könnt, benötigt ihr eine Adresse, die ihr stattdessen „anwählt“, wenn ihr das VPN verbinden möchtet. Diese Adressen nennt man DynDNS.

Geht hierfür z. B. auf ddnss.de (Link) und legt euch dort einen neuen Account an. Eine Anleitung dazu findet ihr hier.

Solltet ihr noch keinen oder einen Raspi zu wenig haben, dann schlagt doch gleich bei Amazon zu: Raspberry Pi 3 Official Desktop Starter Kit (16GB, White) (*)

* Bei dem Link handelt es sich um einen Amazon Affiliate-Link. Für euch ändert das nichts am Preis, aber ich erhalte von Amazon eine kleine Provision.

Die PiVPN-Installation – Schritt für Schritt zum eigenen VPN-Server

Ihr habt Raspbian installiert und konfiguriert, der SSH-Zugang läuft? Wunderbar, dann machen wir weiter.

Wir verbinden uns per SSH auf unseren Raspberry Pi. Der hat in meinem Fall die IP 192.168.1.45. Der Port ist, soweit ihr das nicht geändert habt, für SSH immer die 22.

Zuerst bringen wir unser System auf den aktuellsten Stand:

und dann

Auf der Projekt Projektseite von PiVPN (Link) findet ihr das Kommando, mit dem ihr die Installation von PiVPN startet. Dieses lautet:

Wichtig: Ihr solltet solche Kommandos nicht unbedacht auf der Konsole/Shell eines Linux ausführen!
Das Kommando lädt ein Skript von der Webseite pivpn.io und führt es mit Administrator-Rechten auf eurem System aus. Darin versteckt könnte also so ziemlich alles sein, auch schadhafter Code. In unserem Fall, also dem des Installationsskripts von PiVPN, ist das aber in Ordnung. Wenn ihr prüfen wollt, was das besagte Skript macht, öffnet ihr den Installations-Link in eurem Browser und schaut euch den Programmcode an.

Auch solltet ihr, entgegen der Empfehlung auf der Projektseite, nicht mehr Raspbian Jessie sondern das neuere Stretch installieren. Das hat mir der Entwickler hier im Support-Forum selbst empfohlen.

 

Ihr müsst das Kommando übrigens nicht von Hand eingeben.
Kopiert den Befehl einfach mit Rechtsklick + Kopieren bzw. Strg + C in eure Zwischenablage. Danach wechselt ihr in das Putty-Fenster und macht einfach einen Rechtsklick auf den schwarzen Bereich des Fensters. Der kopierte Befehl wird durch den Rechtsklick direkt eingefügt, ihr müsst nur noch mit Enter bestätigen.

Nachdem ihr das Kommando oben eingegeben und ausgeführt habt werden ein paar Pakete geladen und die Installation von PiVPN beginnt. Alle weiteren Schritte werden direkt in den nächsten Bildern beschrieben.

Nach der Basisinstallation legen wir ein paar Parameter fest, wie genau unser VPN-Server von außen erreichbar sein soll.

So,  das meiste wäre damit erledigt! Der OpenVPN-Server auf Basis von PiVPN läuft und wir können jetzt damit beginnen, Benutzern den Zugriff auf unser Netzwerk zu gewähren. Vorher sollter ihr den Raspberry Pi aber noch mal neustarten, was er euch auch noch mitteilt.

Nachdem die Installation von PiVPN auf unserem Raspberry Pi komplett durchgelaufen ist und der Raspi neugestartet hat, können wir uns wieder per SSH einloggen und den/die Benutzer anlegen, die von außen auf unser Netzwerk zugreifen sollen.

Im Anschluss müsst ihr noch den gewählten UDP-Port (11948?) in eurem Router öffnen und auf die IP-Adresse des Raspberry Pi weiterleiten, also in meinem Beispiel die 192.168.1.45. Solltet ihr nicht wissen, wie das funktioniert, dann habt ein wenig Geduld, in einem meiner nächsten Artikel werde ich das exemplarisch ebenfalls erklären.

Benutzer in PiVPN anlegen

Das Anlegen neuer und die Verwaltung existierender Benutzer erkläre ich euch in Teil 5 meiner Raspberry Pi Artikelserie.

 

36 Antworten auf „Installation PiVPN – Den Raspberry Pi einfach zum VPN-Server ausbauen“

  1. Hallo, erstmal Danke für diese Top-Beschreibung.
    Habe aber ein Problem. Das Fenster wo ich die DynDNS eigeben soll, erscheint nicht.
    Das ganze habe ich jetzt schon drei Mal mit neu Installation von Jessi durchlaufen lassen,
    aber es klappt nicht.
    Hast du vielleicht einen Tipp für mich?
    Es gibt bestimmt etwas, wo ich mich zu Blöd anstelle.

    Danke für Deine Bemühungen.
    mfg Uwe

    1. Hey Uwe,
      danke für deinen Kommentar.
      Gibt es einen Grund, dass du Jessie statt Stretch nimmst?
      Auf der Seite von PiVPN steht zwar, man sollte Jessie nehmen, allerdings hatte mir sogar der Entwickler schon mal zu Stretch geraten. Ich sollte wohl meinen Artikel mal um den Hinweis erweitern 😉
      Also wenn du die Möglichkeit hast, installiere dir doch lieber zuerst mal Stretch und teste es damit. Bei mir hat alles einwandfrei geklappt.
      Solltest du noch Probleme haben, dann wäre genauere Infos sehr hilfreich. Welche Meldung siehst du zuletzt? Kannst du mir Screenshots zeigen, damit ich nachvollziehen kann, was passiert, o. ä.

      Viele Grüße,
      Dennis

    2. nicht vergessen, dass die auswahl mit der leertaste gemacht wird. Enter bestätigt die mit dem sternchen ausgewählte Option. also runter auf dns, leertaste, sternchen sollte nun davor sein, dann enter
      LG

  2. Moin Dennis,
    Danke für die Anleitung. Ich habe aber leider ein Problem bei der Installation. Nachdem ich curl -L https://install.pivpn.io | bash eingegeben habe, öffnet sich das Installationsfenster nur ganz kurz und schließt dann automatisch wieder. Installiert ist pivpn aber offensichtlich nicht, da der Befehl pivn -u nicht bekannt ist. Ich kann den pi leider auch nicht komplett neu aufsetzen, da ich noch andere Sachen da drauf laufen habe (u.a. pihole). Hast du vlt. einen Tipp, was ich jetzt versuchen kann?
    Gruß,
    Mo

    1. Hey Moritz,

      puh, das ist so ohne weitere Infos schwer zu sagen.
      Welche Version von Raspbian läuft denn auf deinem Raspberry Pi? Ist das die aktuelle Stretch? Ich hatte mit Jessie z. B. auch einige Probleme mit der Installation und habe dann im Supportforum vom Entwickler gesagt bekommen, ich soll lieber Stretch nehmen.
      Falls du noch auf Jessie sein solltest, würde ich mal über ein Update nachdenken, habe ich mit einem Test-Raspi letztens auch gemacht und das hat gut geklappt.
      Andernfalls stellt sich mir noch die Frage, was genau du mit „geht nur kurz auf und schließt sich dann“ meinst? Bist du in der Shell? Und was, ganz genau, passiert da nachdem du das Kommando eingegeben hast?
      Alternativ, versuche doch mal, vor dem Start der Installation eine Root-Shell zu starten. Das machst du, indem du in der normalen Shell „sudo -i“ eingibst. Danach startest du noch mal die Installation von PiVPN.

      Ich drücke dir die Daumen, dass eine der Varianten funktionert! Kannst ja noch mal kurz Feedback geben, ob es läuft.

      Viele Grüße,
      Dennis

      1. bei mir geht das auch nicht nach 1:03 wird der download abgebrochen. pivpn.io ist derzeit nicht erreichbar, weiss jemand was da los ist?

    1. Hi Uwe,

      echt jetzt? Kann ich mir kaum vorstellen, aber unmöglich ist ja bekanntlich nichts 🙂
      Was ich mich dabei aber frage ist, wie es sich dann bei Raspbian Lite verhält? Ohne Desktop gibt es ja vermutlich kein Wolfram, oder?
      Leider fehlt mir im Moment die Zeit, das mal auszuprobieren.

      Viele Grüße,
      Dennis

  3. Also bei mir klappt es ohne Desktop. Verwende Raspbian Strech Lite. Habe nur Probleme mit der DynDNS Aktualisierung. Sprich er Aktualisiert die IP-Adresse nicht mit der Free-Domaine von No-Ip.com. Eventuell wird das Problem behoben, wenn ich noch manuell den Service von No-Ip.com installiere.

    1. Eins meiner Projekte für demnächst irgendwann wäre noch, von Rapsbian Stretch Desktop auf Lite umzuziehen, denn den Desktop nutze ich im Endeffekt sowieso nie.
      Was dein Problem mit der DynDNS angeht, bietet dir dein Router da keine Optionen? Ich habe meine DynDNS z. B. in meiner FritzBox eingetragen, das lief bisher absolut problemlos!

  4. Hi,
    Danke für die Mühen hier 🙂
    Ich habe auf einem Stretch das gleiche Problem wie Uwe:
    „Das Fenster wo ich die DynDNS eingeben soll, erscheint nicht“
    Bei einem Test (Im gleichen Subnetz, also Rechner –> raus und wieder rein <– auf Server) kommt folgender Fehler auf dem Server: TLS Error: cannot locate HMAC in incoming packet from [AF_INET] …
    Kann man überhaupt im gleichen Netz testen?
    Habt Ihr einen Tipp?
    VG Horst

  5. Abend zusammen,
    ich habe folgendes Problem,… installation läuft durch incl. RSA Key erstellen und dann wo die DNS Fragen kommt springt er zum Ende und sagt mit den Befehlen xyz kannst du jetzt User anlegen.

    Gruß Benny

  6. Guten Tag, erstmal vielen Dank für die tollen Anleitungen.
    ich hätte da eine Frage.
    Wie richte ich Air VPN(VPN Anbieter) mit Pihole ein ?

    Mit freundlichen Grüßen

    1. Hi Matthias,

      danke für das Lob! 🙂
      Was genau hast du denn vor? Wenn du dir im LAN Pihole einrichtest und als DNS-Server nutzt, dann müsstest du von dort aus, also vom Raspberry Pi (Raspbian) oder deinem Router wiederum die Verbindung zum VPN-Server von Air VPN aufbauen.
      Habe ich aber noch nicht gemacht, weil ich keinen externen VPN-Server nutze. Sinn macht das ja eigentlich nur, wenn du deine tatsächliche IP verschleiern willst, um beispielsweise auf Streamingangebote aus anderen Ländern zuzugreifen.

      Oder was genau hast du vor?

      Viele Grüße,
      Dennis

  7. Hallo und Danke für die Anleitung.
    Wie stelle ich den VPN Server so ein, um einem bestimmten Client ausschließlich den Internetzugang zu ermöglichen, nicht aber den Zugriff auf mein LAN? Der Client greift aus einem öffentlichen WLAN zu.

    1. Hey. Was ist denn der Use-Case deiner Anfrage? Sprich, warum willst du einem Client, der schon im Internet ist, Zugriff auf deinen VPN-Server geben, aber nicht auf das dahinterliegende Netzwerk?
      So aus dem Stehgreif kann ich dir deine Frage nicht beantworten. Meines Wissens nach verteilt OpenVPN immer Adressen aus dem gleichen Bereich an die Clients. Man müsste also evtl. mal prüfen ob es möglich ist, einem Client eine andere Adresse zuzuweisen, die keinen Zugriff auf die anderen IP-Adressen im LAN hat. Aber wie gesagt, ist nur so ein Gedanke, ich habe so was noch nicht gemacht.
      Viele Grüße, Dennis

  8. Ich habe den VPNServer PIVPN auf einen Raspberry 3B+ installiert. Ich kann auch einen VPN-Tunnel zwischen einen Android-Client wie zum Beispiel ein Smartphone oder ein Tablett mit der OpenVPN-App aufbauen. Ich scheitere aber daran, einen Rechner mit Ubuntu16.04 als Client einzusetzen. Sowohl die GUI als auch die Konsole mit dem Befehl openvpn laptop.ovpn geben nur eine Fehlermeldung heraus. Die Datei laptop.ovpn habe ich mit dem Raspberry pi generiert mit dem Befehl pivpn –add. Ich weiß nun nicht weiter.

  9. Hallo,
    ich bin durch die Suche nach einer Lösung für Installationsprobleme auf die Seite gestoßen. Ich habe ein ähnliches Problem wie der user Uwe: ich starte die Installation, aber das Setup scheint unvollständig zu sein. Nach dem Dialog „unattended update“ beendet sich das Setup mit der Meldung „installation complete“ – allerdings wird weder das Programm vollständig installiert, noch ein Zertifikat generiert, da die jeweiligen Dialogfelder ja nicht aufscheinen. Alle Befehle mit „pivpn“ kennt der Raspi dann nicht: -bash: pivpn: Kommando nicht gefunden.
    Gibt es hierfür eine Lösung?
    Ich nutze Raspbian Stretch lite, und habe bereits pihole auf dem Raspi installiert.
    Danke im Voraus!

    1. Hey Mario,
      welche Version hast du denn ganz genau von Stretch Lite? Ich hatte mit einer, ich weiß leider nicht mehr mit welcher, Version auch Probleme mit der Installation von PiVPN.
      Viele Grüße,
      Dennis

      1. Ich nutze aktuell das raspbian stretch lite image 2019-04-08. Ich habe eben die Installation von pivpn auf einem leeren System versucht, die Installation schlägt ebenfalls fehl. Ich ziehe mir mal ein neues Image und versuche es nochmal.

  10. Hallo, bin auch am Rand der Aufgabe.
    Raspberry Pi3 Modell B+
    Raspbian-buster-full
    Pihole installiert, funktioniert auch
    Nun möchte ich nach unzähligen Versuchen PiholeVPN installieren.
    Dieses scheitert schon an der custom DNS Eingabe. Diese habe ich bereits bei drei Anbietern eine Dyndns erstellt, bekomme aber bei der Eingabe der Konfiguration des PiVPN mitgeteilt keine korrekte Adresse.
    Meistens liegt ja der Fehler an einem selber. Ich komme nur nicht drauf.
    Ich mache das Ganze mit dem Terminal einer Debian Linux mx Distrubition. Vielleicht weiß ja jemand Rat und Abhilfe. Vielen Dank

  11. Hi
    ich hab PIVPN zusammen mit PIHOLE auf demselben Raspi (3b+) installiert. es funktioniert alles tadellos.
    mir ist jedoch aufgefallen, daß wenn ich openvpn auf dem IPAD aktiviere der Pihole wohl nicht zu Zuge kommt.
    D.h. bei spiegel.de kommt auf der rechten Seite werbung – deaktiviere ich openvpn wird die Werbung unterdrückt.
    Frage: kann man da was machen ?

    Danke

  12. Moinsen…. Das ist aber mal ne Anleitung!!! Respekt!
    Hätte da aber noch eine Frage!
    Ich würde gerne vom Client aus nur in das Heimnetz um dort eine Webseite aufzurufen im Internen Netz z.B. 192.168.178.1
    Das funktioniert wunderbar! Allerdings läuft sobald ich verbunden bin per VPN geht der gesamte Traffic über den VPN! Klar denn das ist hier auch das Ziel der ganzen Anleitung. Allerdings ist meine Leitung zuhause EXTEM Langsam. Kannst du mir verraten wie man das abstellen kann?

  13. Hallo,
    vielen Dank für die wirklich gelungenen Anleitungen.
    Ein kleiner Hinweis für die Nutzer: bei den Einstellungen per ssh hat sich die Reihenfolge geändert; also bei den Bilder ggf. vor bzw. zurück klicken!
    Viele Grüße

  14. hi bei der installation kommt dieser bereich nicht mehr oder ist das nicht mehr aktuell

    Hier wählen wir die Stärke der Verschlüsselung aus. 2048 bit sollten für den privaten Gebrauch locker ausreichen, deshalb behalten wir die Vorgabe.

    lg Sepp

  15. hi wenn ich auf den VPN von der Ferne über meinen Handy zugreife ist der Speed sehr langsam ist das normal 4-5 Mbit Handy Speed is bis zu 100 Mbit habe einen Raspi 4 B+ 4 gb ?

    Kann man das wo Config….?

    lg Chris

    1. Das liegt vermutlich am limitierten Upload bei dir daheim. Wenn du von extern über deinen Anschluss daheim surfst, dann ist deine Bandbreite im Upload zu Hause das, was du am Handy als Download erreichen kannst, da der komplette Traffic über deinen Anschluss daheim geroutet wird.
      VG Dennis

      1. Habe 100 / 10 Mbit/s unlimitiert Traffic habe jetzt was umgesteckt jetzt habe ich 10 Mbit/s zu 10 Mbit/s aber mehr bringe ich nicht durch .
        Einstellen kann man in der Config nichts mehr ?

          1. Du schreibst es doch selbst „Habe 100 / 10 Mbit/s“. Das heißt, du hast 10 Mbit/s im Upload und das kann (aber auch nur in der Theorie) dann bei dir am Handy ankommen, wenn du unterwegs bist.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert