openvpn auf dem Pi

Angeregt dies auszuprobieren wurde ich durch einen Artikel in dem Magazin ‚Raspberry‘, das PiVPN empfielt, das auf OpenVPN basiert. Ich habe mich im wesentlichen an die Anleitung von

https://www.experte.de/vpn/raspberry-pi

in Variante 1. Variante 2 beschreibt die Installation von OpenVPN, die sehr viel aufwändiger ist.

Auf einer vorhandenen Raspberry Pi OS- Umgebung (eine Lite-Version ist ausreichend) installiert man PiVPN mit dem Befehle:

curl -L https://install.pivpn.io | bash
Die Installation ist dann im Prinzip selbsterklärend. Details findet man gut erklärt auf der oben angegebenen Webseite. Der Pi sollte ein feste IP-Adresse per DHCP oder bei der Installation erhalten. Das Hausnetz auch bei wechselnder IP-Adresse z.B. per  DynDNS erreichbar sein.
Mit pivpn add generiert man dann eine Datei, die man dann auf den Client kopiert, der auf den Server zugreifen soll. Die Datei trägt den Namen <Name des User>.conf. Wenn man jetzt von einem Ubuntu oder debian-basierten Rechner den ovpn-Zugriff durchführen will, muss man am Ende der ovpn-Datei des Users noch
script-security 2
up /etc/openvpn/update-resolv-conf
down /etc/openvpn/update-resolv-conf

ergänzen, sonst gibt es bei der Namensauflösung Probleme.
Will man das VPN von außerhalb des eigenen Netzwerkes erreichen, muss man auf dem Router den Port 1194 auf den Pi mit dem VPN-Server forwarden.

Mit

openvpn – -config <Pfad zur Konfigdatei des Users>.conf

startet man den Client. Openvpn generiert beim Start einen virtuellen Raum in dem Adressraum 10.8.0.X und der Server erhält die IP 10.8.0.1. Die Clients erhalten sukzessive die nachfolgenden IP’s, die in die <clients>.conf eingetragen werden. Alles Clients bilden dann zusammen mit dem Server einen eigenen Raum. Will man auf das gesamte Heimnetz zugreifen, so sind weitere Konfigurationsmaßnahmen erforderlich.

Die Anmeldung auf dem Server dauert sehr lange. Zunächst erfolgt nach der Passworteingabe der IPv6-Verbindungsversuch, dann muss man erneut sein Passwort eingeben und es erfolgt der IPv4-Verbindungsversuch. Dies kann man abkürzen, wenn man weiß, welche Verbindung man benötigt, indem man in der Datei <username>.ovpn foldende Zeilen ändert:


proto udp4
remote <Dein Server> <ort> udp4

für IPv4. Entsprechende udp6 für IPv6.
PiVPN spannt dann einen virtuellen Raum auf entsprechend der Konfiguration. Bei mir ist das 10.8.0.X, dabei steht X=1 für den Server, also den Pi. Die User erhalten dann mit pivpn add die weiteren Adressen. Im Gegensatz zur in Variante 2 vorgeschriebenen Installation richtet PiVPN sofort automatisch das Routing zum Heimnetzwerk und zum Internet ein. Der Pi ist dann sowohl unter 10.8.0.1 als auch unter seiner IP-Adresse im Heimnetz ansprechbar. Ein Netzwerkdrucker im Netz oder ein NAS kann angesprochen werden.