Aus Raspberry Pi Geek 08/2017

PiVPN installiert OpenVPN auf dem Raspberry Pi (Seite 2)

Das Skript lädt zuerst alle anstehenden Updates über die Paketverwaltung auf das System und spielt auf demselben Weg OpenVPN ein (Abbildung 1). Die Konfiguration des Diensts erfolgt im weiteren Verlauf über eine textbasierte Ncurses-Oberfläche. Das System benötigt nun eine statische IP-Adresse; das Skript bietet an, die aktuellen Einstellungen für das Netzwerk (die in der Regel vom WLAN-Router kommen) zu übernehmen oder diese noch weiter anzupassen.

Abbildung 1: Die Installation von PiVPN erfolgt über ein Skript, das OpenVPN mitsamt den Werkzeugen zum Verwalten installiert.

Abbildung 1: Die Installation von PiVPN erfolgt über ein Skript, das OpenVPN mitsamt den Werkzeugen zum Verwalten installiert.

Außerdem wählen Sie den Nutzer aus, der die VPN-Einstellungen verwaltet (üblicherweise pi) und aktivieren anschließend die automatische Installation der von Raspbian bereitgestellten Sicherheitsupdates. Danach wählen Sie das Protokoll (im Normalfall UDP) sowie den Port (die Vorgabe ist hier 1194) aus.

Von UDP als Protokoll sollten Sie in der Regel nicht abweichen. Wählen Sie einen anderen Port, hat dies keine Konsequenzen. Dann liegt es nur an Ihnen, sich zu erinnern, dass Ihr VPN von der Port-Empfehlung abweicht. Das Port-Forwarding (siehe Kasten “Port-Weiterleitung”) passen Sie entsprechend an. PiVPN berücksichtigt den hier gesetzten Port später beim Erstellen von Zertifikaten und schreibt ihn direkt in die daraus resultierende Konfigurationsdatei.

Port-Weiterleitung

Möchten Sie einen Server wie OpenVPN hinter einem WLAN-Router betreiben, funktioniert das in der Regel nicht. Der Router trennt per NAT (Network Adress Translation) das interne Netzwerk vom Internet. Über eine Port-Weiterleitung sorgen Sie jedoch dafür, dass Sie Dienste auf einem Server in den eigenen vier Wänden aus dem Internet erreichen. Dazu leiten Sie gezielt Anfragen an die Internet-IP des Routers auf zuvor konfigurierte Ports (etwa Port 80/TCP für HTTP oder Port 443/TCP für HTTPS) an den jeweiligen Host im LAN weiter.

Für PiVPN schleifen Sie nun Port 1194/UDP an die IP-Adresse des Raspberry Pi durch. Des Weiteren sollten Sie den Router so konfigurieren, dass er dem RasPi immer dieselbe IP-Adresse zuweist. Im selben Schritt bietet es sich an, eine DynDNS-Adresse einzurichten. Konsultieren Sie dazu die Dokumentation des Routers.

Installation per Skript

Anschließend fragt das Skript die gewünschte Stärke des Schlüssels ab (Abbildung 2). Die Vorgabe eines 2048 Bit langen Schlüssels entspricht gängiger Praxis, mit einem 4096 Bit starken Key schaffen Sie noch mehr Sicherheit gegen das Knacken der Verschlüsselung. Allerdings setzt das voraus, dass der RasPi einen solchen Schlüssel zuvor errechnet – besonders auf RasPis der ersten Generation dauert das eine ganze Weile. In der Praxis genügt ein Schlüssel mit 2048 Bit.

Abbildung 2: Je länger der VPN-Schlüssel, desto höher die Sicherheit: 2048 Bit lange Schlüssel gelten allerdings nach wie vor als sicher für den Einsatz im Alltag.

Abbildung 2: Je länger der VPN-Schlüssel, desto höher die Sicherheit: 2048 Bit lange Schlüssel gelten allerdings nach wie vor als sicher für den Einsatz im Alltag.

Bei der Frage nach Public IP or DNS (Abbildung 3) geht es wieder um das Thema der DynDNS-Adresse: In der Regel weist der Internet-Anbieter Ihrem WLAN-Router in bestimmten Abständen (oder spätestens bei erneuten Einwahl ins Netz) eine neue Adresse zu. Dadurch wäre die VPN-Konfiguration mit einer vorherigen IP hinfällig. Sie sollten daher eine DynDNS-Domain einrichten und diese in PiVPN nach der Wahl von DNS Entry eingeben (siehe Kasten “Port-Weiterleitung”).

Abbildung 3: Damit ihr VPN-Server immer unter derselben Adresse zu erreichen ist, sollten Sie eine DynDNS-Domain einrichten.

Abbildung 3: Damit ihr VPN-Server immer unter derselben Adresse zu erreichen ist, sollten Sie eine DynDNS-Domain einrichten.

Letztendlich stellt das Skript noch eine Reihe von DNS-Servern zu Wahl, die OpenVPN später den angebundenen Geräten zuweist. Die DNS-Server von Google arbeiten sehr schnell und zuverlässig, die Server von DNS.WATCH [6] schaffen hingegen mehr Privatsphäre. Alternativ tragen Sie zu nutzende DNS-Server von Hand ein, etwas solche aus dem vom Chaos Computer Club (CCC) geförderten OpenNIC-Projekt [7].

Damit ist die Installation des OpenVPN-Servers an sich abgeschlossen. Die Routine für die Installation gibt noch ein paar Informationen zum Bedienen aus, anschließend empfiehlt sie einen Neustart des Systems. Loggen Sie sich nach diesem wieder per SSH oder in einem Terminal auf dem RasPi ein. Haben Sie die Einstellungen für das Netzwerk von Hand angepasst, finden Sie diesen nun unter seiner neuen IP im Netz.

Profile erstellen

Zum Einrichten der VPN-Verbindung benötigen Sie nun ein VPN-Profil – quasi ein Set aus Schlüsseln, mit denen Sie beziehungsweise der Client auf dem Gerät sich gegenüber dem Server authentifizieren. Jeder Nutzer erhält solch ein eigenes Profil, das Sie (etwa bei Verlust des Geräts) löschen, ohne den Einsatz des Dienstes bei anderen Anwendern zu stören.

Die Konfiguration dafür erfolgt mit dem Kommando pivpn. Ohne Angabe einer Option (oder per pivpn help) gibt der Befehl die Syntax mit allen Optionen aus (Listing 2).

Listing 2

 

$ pivpn help
::: Control all PiVPN specific functions!
:::
::: Usage: pivpn <command> [option]
:::
::: Commands:
:::  -a, add [nopass]     Create a client ovpn profile, optional nopass
:::  -c, clients          List any connected clients to the server
:::  -d, debug            Start a debugging session if having trouble
:::  -l, list             List all valid and revoked certificates
:::  -r, revoke           Revoke a client ovpn profile
:::  -h, help             Show this help dialog
:::  -u, uninstall        Uninstall PiVPN from your system!

Ein Profil erstellen Sie mit pivpn add, wobei das Skript einen Namen für das Profil sowie ein Passwort abfragt (Listing 3). Linux-typisch erscheinen bei Eingabe des Kennworts keine Sternchen oder andere Platzhalter auf dem Schirm. Anschließend finden Sie das Profil mit der Endung .ovpn im Ordner /home/pi/ovpns/ auf dem Datenträger.

Listing 3

 

$ pivpn add
Enter a Name for the Client:  Christoph
Enter the password for the client:
Enter the password again to verify:
spawn ./easyrsa build-client-full Christoph
[...]
========================================================
Done! Christoph.ovpn successfully created!
Christoph.ovpn was copied to:
  /home/pi/ovpns
for easy transfer.
========================================================

Alternativ verzichten Sie beim Anlegen des Zertifikats mit pivpn add nopass auf ein Passwort. In diesem Fall genügt es, wenn der Nutzer nur die Zertifikatsdatei auf seinem Rechner ablegt beziehungsweise in den VPN-Client importiert. Zum Aufbau der Verbindung ist dann kein Passwort nötig.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 5 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
RASPBERRY PI GEEK KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Raspberry Pi Geek bei Google Play Readly Logo
Nach oben