Raspberry Pi als VPN-Server

Raspberry PIs sind heutzutage ja, gemessen an den ebay Preisen, kleine Goldstücke geworden. Wie gut das der ein oder andere eventuell noch ein etwas älteres Modell Zuhause herumliegen hat. Doch was lässt sich heutzutage noch vernünftiges mit den Modellen der ersten oder zweiten Generation anstellen? Beispielsweise können wir diese VPN-Server betreiben!
Im folgenden Beitrag werden die einzelnen Schritte durchgegangen, von der Vorbereitung des Raspberrys hin zu der Einrichtung des DynDNS, um eine VPN-Instanz mit Hilfe von PiVPN aufzusetzen. Die Hardware und Software Grundlage der Komponenten werden ein Fritz-Box Router sein, der Domain-Dienstleister NO-IP, WireGuard als VPN Applikation, ein Android-Smartphone als Client und natürlich ein Raspberry Pi der ersten Generation.

Raspberry Pi vorbereiten

Einen Raspberry-Pi der ersten Generationen als VPN-Server zu gebrauchen mag durch die alte Hardware ein wenig gewagt sein, funktioniert aber durchaus. Besser wäre es natürlich, auf ein neueres Modell zurückzugreifen. Zumindest wird das alte Ding noch mit Updates versorgt und das ist doch schon mal die halbe Miete.
Installiert euch die neueste Version von Raspbian auf eine SD-Karte (eine installierte grafische Oberfläche ist nicht notwendig), verbindet den Raspberry-Pi mit einem LAN-Kabel sowie einer geeigneten Stromquelle und bootet ihn. Erledigt die formellen Dinge wie die Festlegung des Tastatur-Layouts, die Vergabe des Hostnamens und sorgt dafür, dass eine SSH-Verbindung steht.
Anschließend installieren wir uns als erstes sämtliche Updates…

apt update
apt upgrade

…und starten die Maschine einmal neu.
Danach wird eine feste IP-Adresse vergeben. Dies kann jeder handelsübliche Router in den Einstellungen anhand der MAC-Adresse des Rasperry-Pis entweder selber erledigen…

…oder es wird in den Netzwerkeinstellungen eine fixe IP vergeben.

DynDNS einrichten

Da wir logischerweise auch von außerhalb unseres privaten Netzwerkes den Raspberry-Pi VPN-Server erreichen wollen und sich unsere (vom Internet-Provider) zugewiesene IP-Adresse täglich ändert, brauchen wir eine Möglichkeit, entweder diesen IP-Adresswechsel zu unterbinden oder unseren Router alternativ mit Hilfe einer Namensauflösung zu erreichen. Im folgenden werde ich die Möglichkeit vorstellen, sich beim Hosting-Dienstleister No-IP einen Domänennamen einzurichten und diesen mit der Fritz-Box vertraut zu machen. Natürlich gibt es eine Vielzahl weiterer Anbieter und Möglichkeiten, das gewünschte Ziel zu erreichen.

Folgt diesem Link https://www.noip.com/de-DE und gebt den gewünschten Hostnamen, samt Domänen-Endung an und klickt auf ‘Registrieren’.

Legt auf der folgenden Seite einen Benutzernamen uns das Passwort fest. Akzeptiert die Servicebedingungen und Datenschutzrichtlinien und klickt auf Free Sign Up.

Nachdem wir die daraufhin versendete E-Mail bestätigt haben, können wir uns direkt mit den Account Daten anmelden. Unter Konto -> Kontodaten sollte bereits eure öffentliche IP-Adresse zu sehen sein. Vergebt auf derselben Seite nun noch einen Benutzernamen, um die Kontoeinrichtung abzuschließen.
Es geht weiter mit der Einrichtung an der Fritz-Box. Üblicherweise ist diese über die Weboberfläche und der Adresse http://fritz.box/ erreichbar. Nach dem Login kann unter Internet -> Freigaben -> DynDNS die DynDNS Funktion aktiviert und einer von mehreren Dienstleistern eingetragen werden.

Befüllt die Felder entsprechend und klickt auf Übernehmen. Sobald die Fritz-Box merkt, dass sie eine neue IP-Adresse vergeben bekommen hat, kommuniziert sie diese mit dem Provider NO-IP, sodass sie unter unserem eingerichteten Domänennamen (unter NO-IP gesetzt) auflösbar ist.

Portweiterleitung aktivieren

Um den Raspberry-Pi von außen auch erreichar zu machen, benötigen wir noch eine Portweiterleitung, die wir ebenfalls an unserem Router einrichten. Es folgt wieder eine Anleitung, wie dies an der Fritz-Box erledigt wird.
Wir navigieren zu Internet -> Freigaben und wählen Gerät für Freigaben hinzufügen.

Dort wählen wir im oberen Dropdown-Menü den Raspberry-Pi anhand des Hostnamens (den Namen vom Raspberry-Pi selbst) aus. Anschließend klicken wir auf ‘Neue Freigabe’. Hier wählen wir das Protokoll UDP mit dem Port 51820.

Anschließend bestätigen wir mit einem zweimaligen Klick auf OK und Übernehmen.

VPN-Installation mit PiVPN

Nun geht es endlich los mit der eigentlichen Installation über PiVPN. Im Prinzip ist PiVPN nichts anderes, als eine Skript-Sammlung zur Installation und Einrichtung einer VPN-Instanz. Wir besorgen uns diese Installationsdatei aus dem Internet und starten sie direkt.

curl -L https://install.pivpn.io | bash

Ist das Installationsmenü geladen…

… werden wir auf den Hinweis aufmerksam gemacht, unserem Server eine statische IP-Adresse zuzuweisen, was wir im Vorfeld ja bereits erledigt haben.

In unserem Fall haben wir eine IP-Adressreservierung vorgenommen, was uns genügt.

Wir wählen einen Benutzer, bei dem die Konfigurationsdateien von PiVPN liegen werden.

Als nächstes wird die VPN-Software festgelegt. Hier wählen wir Wireguard.

Den Standardport belassen wir auf den Wert 51820.

Als nächstes suchen wir uns einen DNS-Provider aus. Entscheidet nach persönlicher Präferenz.

Die Clients sollen sich natürlich über unserem neu erstellten DNS-Namen anmelden, deswegen wählen wir hier die Option DNS Entry und geben den Hostname von NO-IP an.

Abschließend werden die Schlüsselpaare zur Authentifizierung erzeugt. Es folgt ein Warnhinweis, dass sich der VPN-Server im Internet befindet, dadurch ein Sicherheitsrisiko darstellt und stets aktuell gehalten werden sollte (und ggf. hin und wieder mal neugestartet werden müsste um diese Updates auch wirksam zu machen).

Das Angebot für die Einschaltung automatischer Updates kann auch gleich angenommen werden.

Damit wäre soweit alles erledigt. Führt nach der Installation ein Neustart durch.

Einbindung eines Clients

Um nun einen Client in das VPN zu integrieren, erstellen wir uns mit Hilfe des folgenden Befehls ein Profil für diesen:

pivpn add

Nach der zusätzliche Eingabe des Client-Namens erfolgt die weitere Erstellung automatisch. Die Konfigurationsdatei dazu wird im Home-Verzeichnis des Benutzers abgelegt, der während der PiVPN Installationsroutine angegeben wurde (beispielsweise /home/pi/configs/).

Richtet das VPN nun noch auf dem Smartphone ein. Hierfür ladet ihr euch die WireGuard App aus dem Play- oder App Store herunter. Nach erfolgreicher Installation, öffnet ihr sie und und fügt eine neue Verbindung mit dem blauen Plus-Symbol in der unteren rechten Ecke hinzu.

Hier lässt uns die Applikation die Möglichkeit offen, alles von Hand einzutippen (Neu erstellen) oder die Informationen aus einer Datei heraus automatisch lesen zu lassen (Aus Datei oder Archiv importieren). Wählen wir erstere Methode, können wir die benötigten Informationen aus der eben automatisch erzeugten Konfigurationsdatei entnehmen (beispielsweise /home/pi/configs/smartphone.conf).
Wir geben hier nun also brav alle Informationen für das Interface und die Gegenstelle ein und klicken auf das Diskettensymbol oben rechts, sobald alles vollständig ausgefüllt wurde.
Steht der VPN-Tunnel sollte in den Eigenschaften der Verbindung in der untersten Zeile unter Transfer sowohl bei empfangen als auch gesendet eine Übertragungsrate >=0 KiB stehen.

Kommentar verfassen

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

Nach oben scrollen