VPN

VPN (Virtual Private Network) ist eine Technik, um verschlüsselte Verbindungen zwischen Geräten herzustellen.

Bei smartWoMo kannst du VPN für folgende Funktionen verwenden:

  • es wird eine verschlüsselte Verbindung zwischen deinem Haus (oder deiner Wohnung) und deinem Wohnmobil aufgebaut. Dadurch hast du von zu Hause aus Zugriff auf den Raspberry in deinem Wohnmobil – selbst wenn sich das Wohnmobil nicht in der Nähe deines Hauses befindet.
  • es wird eine verschlüsselte Verbindung zwischen deinem Smartphone und deinem Wohnmobil aufgebaut. Dadurch hast du vom Smartphone aus direkten Zugriff auf den Raspberry in deinem Wohnmobil – selbst wenn sich das Wohnmobil nicht in der Nähe deines Hauses befindet. In diesem Fall kannst du smartWoMo mit deinem Smartphone auch ohne den myopenhab.org Service steuern.
  • es wird eine verschlüsselte Verbindung zwischen deinem Haus (oder deiner Wohnung) und deinem Smartphone aufgebaut.
  • sämtlicher Netzwerk-Verkehr des Wohnmobil-Raspberry wird über dein Heimnetzwerk umgeleitet. Das hat den Vorteil, dass es für Streaminganbieter so aussieht, als würdest du ihren Dienst von zu Hause aus nutzen. Du kannst also beispielsweise im Ausland heimisches Fernsehen streamen.
  • auch sämtlicher Netzwerk-Verkehr deines Smartphones wird über dein Heimnetzwerk umgeleitet.

Wenn du ein solches VPN nutzen möchtest, benötigst du einen zweiten Raspberry Pi, den du zu Hause installierst. So sieht das Ganze aus:

Der zweite Raspberry zu Hause kann dir zusätzlich als Basis für ein SmartHome dienen. Dafür ist Openhab2 ja eigentlich auch gedacht. Dann hast du nicht nur ein smartes Wohnmobil, sondern auch eine smartes zu Hause.

Voraussetzungen

Zunächst benötigst du natürlich einen Raspberry Pi für zu Hause. Auf diesem kannst du smartWoMo genauso installieren, wie auf deinem Raspberry Pi im Wohnmobil. Der einzige Unterschied: als Hostnamen verwendest du Haus (und nicht Wohnmobil). Das Tinkerforge-System benötigst du für den Raspberry Pi zu Hause nicht.

Damit du zu Hause einen VPN Server betreiben kannst, muss dein heimischer Router (z.B. eine Fritz!Box) aus dem Internet erreichbar sein – sie muss eine feste IP oder Url haben. Eine feste Url kannst du beispielsweise beim dyndns Dienst erhalten. Bei den meisten Internet-Anschlüssen funktioniert das. Wenn du allerdings einen „DS-Lite“, „Dual-Stack-Lite“ oder „Carrier Grade NAT“ (CGN) Anschluss hast, wird die folgende Anleitung möglicherweise nicht funktionieren.

Wenn du als Router eine Fritz!Box verwendest, kannst du eine feste Url erhalten, wenn du die Fritz!Box beim myFritz! Dienst registrierst. Die myFritz!-Adresse ist der public DNS name (also die feste Url), den du später bei der Server-Installation angibst.

So kann der Raspberry Pi im Wohnmobil per VPN-Netzwerk deinen Router zu Hause erreichen. Allerdings läuft der VPN-Server ja nicht auf deinem Router, sondern auf deinem Raspberry Pi zu Hause. Deshalb mußt du auf deinem Router (z.B. der Fritz!Box) eine Weiterleitung (bzw. eine Freigabe) des Ports 1194 auf den heimischen Raspberry Pi einrichten.

Beispiel für die Weiterleitung:

VPN Server (im Haus)

smartWoMo verwendet als VPN-Lösung OpenVPN. Installiert wird OpenVPN mit Hilfe von PiVPN, welches die Installation und das Hinzufügen weiterer Clients sehr vereinfacht.

Während der Installation wähle beim Schritt Public IP or DNS den Eintrag DNS Entry aus (Pfeiltaste nach unten, dann mit Leertaste auswählen). Im nächsten Schritt die myFritz!-Adresse deiner Fritz!Box angeben (oder die dyndns Adresse, falls du einen anderen Router verwendest).

Du startest die Installation, indem du dich auf deinem Haus Raspberry Pi im Terminal anmeldest (per ssh bzw. putty) und folgendes Kommando eingibst:

curl -L https://raw.githubusercontent.com/pivpn/pivpn/master/auto_install/install.sh | bash

Dieses Video zeigt dir eine Beispiels-Installation. Als Benutzer wird im Video pi verwendet, weil das Video nicht auf einem echten Raspberry aufgezeichnet wurde, sondern auf einer virtuellen Maschine. Wenn du deinen VPN-Server einrichtest, wird als Benutzer natürlich openhabian verwendet.

Wenn das funktioniert hat, zeigt der Haus Raspberry eine neue Netzwerkschnittstelle mit dem Namen tun0 an, wenn du im Terminal das Kommando ifconfig eingibst:

VPN Client für das Wohnmobil

Installation (auf dem Wohnmobil Raspberry)

Auf dem Wohnmobil wird PiVPN nicht benötigt. Stattdessen installierst du hier direkt das OpenVPN Paket. Melde dich dazu mit ssh oder putty auf der Kommandozeile des Wohnmobil Raspberry an und gebe folgendes Kommando ein:

sudo apt install openvpn

Hier ein Beispiels-Video.

Erzeugung der Konfiguration für das Wohnmobil (auf dem Haus Raspberry)

Achtung: die Konfiguration wird auf dem Haus Raspberry erstellt !

cd
cd ovpns
pivpn add nopass

Hier ein Beispiels-Video.

Kopieren der Konfiguration (auf dem Haus Raspberry)

Nun wird diese Konfiguration auf den Wohnmobil Raspberry kopiert:

scp Wohnmobil.ovpn openhabian@wohnmobil:/tmp

Hier ein Beispiels-Video.

Aktivieren der Konfiguration (auf dem Wohnmobil Raspberry)

Die Konfiguration muss nun auf dem Wohnmobil Raspberry aktiviert werden. Dazu gibst du im Terminal folgendes ein:

sudo su
cd /etc/openvpn
mv /tmp/Wohnmobil.ovpn .
ln -s Wohnmobil.ovpn client.conf
service openvpn restart

Hier ein Beispiels-Video.

Du solltest jetzt den Wohnmobil Raspberry neu starten. Danach kannst du im Terminal das Kommando ifconfig aufrufen. Dann wird die neue Netzwerk-Schnittstelle tun0 angezeigt:

VPN Client für das Smartphone

Es gibt OpenVPN Apps für iOS und Android. Wenn du die App auf deinem Smartphone installierst und aktivierst, wird eine verschlüsselte Verbindung zu deinem Raspberry zu Hause aufgebaut.

Erzeugung der Konfiguration für das Smartphone (auf dem Haus Raspberry)

Achtung: die Konfiguration wird auf dem Haus Raspberry erstellt !

cd
cd ovpns
pivpn add nopass

Hier ein Beispiels-Video.

Profil (Konfiguration) auf das Smartphone übertragen

Dieser Schritt ist nicht so trivial, wie man im ersten Moment denken könnte. Es gibt verschiedene Wege, die Konfigurationsdatei auf dein Smartphone zu übertragen. Der einfachste wäre, das Profil per E-Mail an das Smartphone zu senden. Das ist aber keine gute Idee, denn E-Mails sind nicht verschlüsselt und die Konfigurationsdaten könnten mitgelesen werden. Dann wäre dein VPN nicht sicher.

Der (zweit-)einfachste Weg, der mir eingefallen ist, ist das Profil per Netzwerk-Laufwerk zu übertragen. Dabei können wir uns zu Nutze machen, dass smartWoMo bereits ein solches zur Verfügung stellt. Du benötigst für dein Smartphone also nur eine Filesystem-App für Android bzw. iOS, die auf Netzwerk-Laufwerke zugreifen kann.

Über diese App kannst du dich mit dem Netzwerk-Laufwerk openhabian des Haus Raspberry verbinden. Als Benutzer und Kennwort nimmst du openhabian. Dann kannst du die Smartphone.ovpn Datei in das lokale Dateisystem des Smartphones herunterladen.

Schliesse die Filesystem-App und öffne die OpenVPN App. Dort importierst du anschliessend die Smartphone.ovpn Datei. Nun kannst du in der App das verschlüsselte VPN zu deinem Haus aufbauen.