Raspberry Pi als VPN-Server

VPN-Verbindungen (Virtual Private Network) sind praktisch. In öffentlichen WLANs erhöhen sie die Sicherheit, im Home Office ermöglichen sie die sichere Verbindung zum Firmenserver und bei Auslandsaufenthalten den Zugriff auf durch Geoblocking geschützte Inhalte.

Viele Jahre habe ich eine ältere Fritzbox als VPN-Server genutzt. Vor einiger Zeit habe ich von Unitymedia/Vodafone eine ConnectBox für meinen Kabelzugang erhalten. Entgegen seinem Ruf funktioniert der Kabelrouter zuverlässig und gut. Allerdings sind die Funktionen der ConnectBox arg eingeschränkt; so verfügt sie auch über keine Möglichkeiten, einen VPN-Zugang einzurichten.

Deshalb habe ich mich dazu entschlossen, einen Raspberry Pi als VPN-Server einzurichten. Als Software-Paket habe ich PiVPN ausgewählt, welches besonders einfach zu installieren und einzurichten ist.

Es gibt einige gute und ausführliche Anleitungen zu ViVPN im Internet. Ich beschränke mich deshalb im Folgenden auf die wesentlichen Schritte.

Raspberry Pi einrichten

Geeignet ist jeder beliebige Raspberry Pi; es kann sein, dass der Pi 1 etwas lahm ist. Als Betriebssystem ist Raspbian zu empfehlen. Soll der Raspberry Pi lediglich als VPN-Server herhalten, genügen Raspbian Buster Lite und eine 4GB SD-Card.

Raspbian Buster Lite herunterladen und die Zip-Datei mit balenaEtcher auf eine SD-Card schreiben. Die Karte in den Raspberry Pi einlegen, Monitor, Tastatur, Netzwerkkabel und ein Netzteil anschließen. Nach dem erfolgreichen Start des Betriebssystem als User „pi“ mit dem Passwort „raspberry“ einloggen und „raspi-config“ aufrufen, um einige Einstellungen wie beispielsweise Change User Password, Localisation Options und Interfacing Options vornehmen. Unter Interfacing Options sollte unbedingt SSH ausgewählt werden, damit der Raspberry Pi künftig ohne Monitor und Tastatur von einem anderen Rechner aus gesteuert werden kann. Den Raspi neu booten.

PiVPN installieren und einrichten

Es wird hier davon ausgegangen, dass die IP-Adresse des Raspberry Pi bekannt ist und per SSH von einem anderen Rechner aus auf den Raspi zugegriffen wird („ssh pi@xxx.xxx.xxx.xxx)“. Außerdem sollte man im Router einstellen, dass sich die IP-Adresse des Raspberry Pi nicht ändert.

Die Installation von PiVPN erfolgt mit einem einzigen Befehl:

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

Darauf erfolgt die Einrichtung von PiVPN mit einer ganzen Reihe von „Abfragefenstern“ im Terminal. Diese Anleitung führt Schritt für Schritt durch den Prozess der Einrichtung. Allerdings ist sie nicht ganz aktuell und bezieht sich nur auf die Einrichtung eines OpenVPN-Servers. Hilfreich sind auch Anleitung (englisch), Grundlagen WireGuard, Ratgeber PiVPN.

Ich habe mich für das neuere WireGuard-VPN entschieden. Man kann bei der Einrichtung von PiVPN zwischen WireGuard und OpenVPN auswählen. Zahlreiche Voreinstellungen kann man bei der Einrichtung von PiVPN einfach übernehmen. Besondere Aufmerksamkeit verlangen die folgenden Punkte:

  • Default Port: Vorgegebenen Standardport übernehmen oder einen anderen Port eintragen und notieren (empfohlen). Diesen Port im heimischen Router freigeben/weiterleiten.
  • Public IP or DNS: Nur wer eine statische IP-Adresse vom Provider erhält oder dessen IP sich sehr selten ändert, sollte hier „Public IP“ wählen. Alle anderen/die meisten müssen „Use a public DNS“ auswählen.
  • Im folgenden Fenster ist der DynDNS-Name einzutragen.

Einen DynDNS-Namen kann man bei zahlreichen Diensten bekommen, kostenlos oder kostenpflichtig. Dieser Artikel bietet einen Überblick.

Zum Schluss müssen noch Profile für alle Geräte eingerichtet werden, mit denen auf den VPN-Server zugegriffen werden soll. Dies geschieht mit dem Befehl

pivpn add

Danach einen Benutzernamen und ein Passwort eingeben.

WireGuard Clients einrichten

Pcs, Laptops, Smartphones usw. können erst dann Verbindung mit dem heimischen WireGuard-Server aufnehmen, wenn sie über einen WireGuard-Client verfügen. Solche Clients gibt es für MacOS, Linux und Windows sowie für Android und iOS.

Ich zeige die Einrichtung Beispiel der Android/iOS-Clients, die man im Playstore bzw. App Store kostenlos herunterladen kann. Ihre Einrichtung ist beispielhaft einfach.

Damit die Einrichtung klappt ist auf dem Raspberry Pi zuerst ein Befehl einzugeben, der einen QR Code für die einfache Registrierung der Clients am Server zur Verfügung stellt (Bitte den Name der conf-Datei anpassen):

qrencode -t ansiutf8 /home/pi/configs/android.conf

Es wird ein QR-Code angezeigt; das klappt auch über eine SSH-Verbindung.

qr code

Den WireGuard Client auf das Smartphone herunterladen/installieren, auf das + Zeichen gehen und „Create from QR code“ auswählen. Dann den QR Code einscannen. Das war es auch schon.

wireguard

Testen

Um im heimischen Netz zu testen, ob der VPN-Tunnel funktioniert, muss WLAN am Smartphone unbedingt abgeschaltet werden. Im heimischen Netz wird die Verbindung nur über Mobilfunk funktionieren. Außerdem muss die Portweiterleitung/Portfreigabe im Router aktiv sein.

In den Smartphone-Einstellungen zu „Netzwerk und Internet“ gehen, WLAN abschalten und unter „Erweitert“ VPN auswählen. Anschließend VPN in der WireGuard App aktivieren (Android 9). Unter iOS geht es so: „Einstellungen“ – „WLAN“ aus – „VPN“ an. Im Browser eine beliebige Internet-Adresse aufrufen oder eine App starten. Wenn alles normal funktioniert hat die Einrichtung des VPN geklappt.

Dieser Beitrag wurde unter Allgemein veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Schreibe einen Kommentar

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