GP3.2 OpenVPN

Aus Gemini-Wiki
Version vom 13. September 2012, 22:23 Uhr von Mfgeg (Diskussion | Beiträge) (start from scratch :)
Zur Navigation springen Zur Suche springen
Deutsch.png - in Deutsch English.png - in English
The Gemini Project

OpenVPN Server und Klient

Nach dem Installieren des geminiopenvpn Plugins, steht ein einfach, konfigurierbarer OpenVPN Server oder Client zur Verfügung, welcher mit Zertifikaten arbeitet (Server-Multi-Client Betrieb). Die Verbindung auf den OpenVPN Server erfolgt über eine verschlüsselte TLS Verbindung.

Für Verbindungen erstellt das OpenVPN Server Plugin eine virtuelle Netzwerkschnittstelle (tap0), welches über eine Netzwerkbrücke (br0) mit der internen Netzwerkkarte (eth0) der Dreambox gekoppelt wird. Ein oder mehrere, verbundene OpenVPN Klients, erhalten eine IP Adresse des internen Netzwerkes und können ohne zusätzliches Routing, alle verfügbaren Dienste erreichen.

Der Betriebsmodus der hier von OpenVPN benutzt wird, nennt sich Bridging. Broadcasts werden in dieser Variante ohne Probleme weitergeleitet, wie auch Netzwerkprotokolle wie IPv4, IPv6, Netalk, IPX, usw.


Voraussetzungen für die Benutzung

  • OE2.0 Image mit GP3.2 Plugin.
  • OpenVPN Server muss eingerichtet und gestartet sein.
  • Am OpenVPN Server unterstützt nur Kabel gebundenes Netzwerk (kein Wlan).
  • Eine Portweiterleitung am Router auf die Dreambox (Port 1194/UDP).
  • Für den Server Zugriff müsst ihr die WAN IP kennen, oder einen DDNS Service eingerichtet haben (z.B. No-IP).
  • Für den Zugriff müssen Zertifikate für alle Klients erstellt werden.
  • Auf Klients muss OpenVPN installiert sein. Protokolle wie IPSec, IKE, PPTP, oder L2TP werden nicht unterstützt.
  • Server Lan und Client Lan muss unterschiedlich sein.


Zurück zum Inhaltsverzeichnis


OpenVPN Server

Installiert das OpenVPN Plugin via BluePanel und richtet den Server nach folgenden Beschreibungen ein. Nach einem Neustart findet ihr den OpenVPN Server (und Klient) im BluePanel. Alternativ könnt ihr das Plugin mit folgendem Befehl via Kommandozeile installieren:

opkg update && opkg install geminiopenvpn


Einstellungen

OpenVPN Einstellungen - Skin Beispiel: gp-skin-dmconcinnity-mod

Öffnet das OpenVPN Server Plugin im BluePanel unter den Daemons. Nun kontrollieren wir zuerst die Einstellungen, bevor wir den OpenVPN Server einrichten. Drückt die [blaue] Taste Menü und selektiert den Menüpunkt [Einstellungen]. Benutzt die folgende Tabelle für die Beschreibungen und korrigiert sie wenn nötig. Die Netzwerkeinstellungen werden im Normalfall von der Dreambox übernommen und müssen nur in seltenen Fällen angepasst werden.

Einstellung Beschreibung
Anzahl Klients Definiert die Anzahl der Klients, die auf den OpenVPN Server zugreifen dürfen.
erste Klient IP Ab dieser Ip- Adresse werden die Adressen für die verschiedenen Klients zugewiesen. Achtung stellt sich, dass sich dieser Bereich nicht mit dem von eurem dhcp Server überschneidet!
IP eth0 Eingabe der IP Adresse eurer Dreambox für die Lan Schnittstelle (eth0). Diese Adresse wird schlussendlich für die Netzwerkbrücke verwendet (br0).

Beachtet, dass die lokale Netzwerkkarte in diesem Modus keine IP-Adresse mehr hat, also nicht erschrecken, wenn ihr einmal mit ifconfig die vorhandenen Netzwerkadapter kontrolliert.

Netzmaske eth0 Eingabe der Subnetmaske vom lokalen Netzwerk.
Broadcast eth0 Eingabe der Broadcast Adresse vom lokalen Netzwerk.
IP-Router Gateway Eingabe der IP Adresse eures Routers.
Log-Datei Ein- ausschalten der Logdatei. Wenn aktiviert, befindet sich die Logdatei unter /var/log/openvpn.log

Speichert die Eingaben anschliessend mit der [grünen] Taste.


Zurück zum Inhaltsverzeichnis


Root Zertifikat erstellen

root Zertifikat

Jetzt erstellen wir die Schlüssel und Zertifikate für Certificate Authority (CA). Öffnet das OpenVPN Server Plugin und drückt die [grüne] Taste für Zertifikate.

Wählt nun unter Typ den Eintrag root-Zertifikat und passt die Einstellungen wie in der Tabelle beschrieben an. Bei allen Eingaben dürfen nur Buchstaben und Zahlen verwendet werden.

Einstellung Beschreibung
Passwort Passwort eingeben. Merkt euch das Passwort gut, es wird später benötigt für die Server und Klient Zertifikat Erstellung, oder für das sperren eines Zertifikates.
gültig für x Jahre Gültigkeit des Zertifikats in Jahren eingeben eingeben.
Projekt Projektname eingeben für die Zertifikaterstellung.
Land Eingabe vom Land.
Stadt Eingabe der Stadt.
Bundesland Eingabe des Bundeslandes.

Speichert die Eingaben anschliessend mit der [grünen] Taste. Die entsprechenden Daten werden erstellt und im Verzeichnis /etc/ssl/openvpn gespeichert.


Zurück zum Inhaltsverzeichnis


Server Zertifikat erstellen

Server Zertifikat

Öffnet das OpenVPN Server Plugin und drückt die [grüne] Taste für Zertifikate. Drückt erneut die [grüne] Taste (Hinzufügen) und wählt unter Typ den Eintrag Server und passt die Einstellungen wie in der Tabelle beschrieben an.

Einstellung Beschreibung
gültig für x Jahre Gültigkeit des Zertifikats in Jahren eingeben eingeben.

Speichert die Eingaben anschliessend mit der [grünen] Taste, um die Zertifikate zu erstellen. Jetzt wird das Passwort abgefragt, welches bei der root-Zertifikat Erstellung, eingegeben worden ist. Ist das Passwort falsch, erscheint folgende Fehlermeldung, can't generate certificate.

Nach Eingabe des korrekten Passworts werden die Zertifikate, Keys und das Diffie-Hellman Schlüssel erstellt. Dieser Vorgang dauert einige Minuten, der Status kann im Plugin oder der Konsole angeschaut werden. Das Plugin kann während der Erstellung auch geschlossen werden, der Prozess läuft im Hintergrund weiter.


Zurück zum Inhaltsverzeichnis


Klient Zertifikat(e) erstellen

Klient Zertifikat

Öffnet die Zertifikate mit der [grünen] Taste im OpenVPN Server. Drückt erneut die [grüne] Taste (Hinzufügen) und wählt unter Typ den Eintrag Klient und passt die Einstellungen wie in der Tabelle beschrieben an.

Einstellung Beschreibung
gültig für x Jahre Gültigkeit des Zertifikats in Jahren eingeben eingeben.
Name: Wunschname eingeben für den Klient.

Werden mehrere Zertifikate für Klients erstellt, dann muss der Name immer unterschiedlich sein.

Speichert die Eingaben anschliessend mit der [grünen] Taste, um die Zertifikate zu erstellen. Nun wird das Passwort abgefragt, welches bei der root-Zertifikat Erstellung, eingegeben worden ist. Ist das Passwort falsch, erscheint folgende Fehlermeldung, can't generate certificate.

Nach Eingabe des korrekten Passwortes, befinden sich das Klient Zertifikat, Schlüssel, Konfigurationsdatei und Root-Zertifikat in folgendem Verzeichnis:

/etc/ssl/openvpn

Die erstellen Dateien (vier Stk. pro Klient), werden später auf den OpenVPN Klients benutzt, um eine Verbindung auf den Server aufzubauen. Die relevanten Dateien sehen wie folgt aus, wenn z.B. der Name 7020hd eingegeben worden ist.

Dateiname Beschreibung
7020hd-cert.pem Klient Zertifikat.
7020hd-key.pem Schlüssel Datei.
7020hd.ovpn Konfigurationsdatei für den Klient.

Werden mehrere Zertifikate für Klients erstellt, dann muss der Name immer unterschiedlich sein.

vpn-ca.pem Das Root Zertifikat.


Übersicht der Konfiguration

Die erstellten Konfigurationen können mit der [grünen] Taste (Zertifikate) im OpenVPN Server Plugin angeschaut werden wird. Das Beispiel zeigt die Konfiguration eines root-Zertifikats, Server Einstellungen und die Konfiguration von zwei Clients mit dem Namen htc und 7020hd.

Die einzelnen Einträge können im Server Plugin nicht gelöscht werden. Die Dateien müssen manuell gelöscht werden im Verzeichnis:

/etc/openvpn/ssl


Zurück zum Inhaltsverzeichnis


OpenVPN Server starten

OpenVPN Server starten

Öffnet das OpenVPN Server Plugin und drückt die [blaue] Taste der Fernbedienung. Selektiert den Eintrag start openvpn um den Server zu starten. Drückt ihr erneut die [OK] Taste, dann stoppt der OpenVPN Server.


Zurück zum Inhaltsverzeichnis


Verbindungsübersicht

Das OpenVPN Server Plugin kontrolliert zyklisch, ob Klient(s) verbunden sind und zeigt diese wie im Bild Aktive Verbindungen an. In diesem Beispiel sind zwei Klients verbunden, mit dem Namen htc und 702hd.


Zurück zum Inhaltsverzeichnis


OpenVPN Logdatei

OpenVPN Server starten

Informationen über den Status des OpenVPN Servers, können mit der [roten] Taste (Logdatei) aufgerufen werden. Das Beispiel zeigt den erfolgreichen Start des OpenVPN Servers mit zwei verbunden Klients.

Die Log Datei kann alternativ auch via Konsole angezeigt werden, mit folgendem Befehl.

cat /var/log/openvpn.log


Zurück zum Inhaltsverzeichnis


Zertifikat(e) sperren

Zertifikat abgelaufen

Zertifikate könnt ihr auch sperren, wenn ihr den Zugriff von einem Klient unterbinden wollt. Das sperren erfolgt über die [rote] Taste, wenn das Menü der Zertifikate aufgerufen wird. Gesperrte Klient Zertifikate werden in der Übersicht als abgelaufen markiert. Beim Sperren müsst ihr wieder das korrekte Passwort eingeben, welches bei der root_Zertifikat Erstellungen eingegeben worden ist.

Achtung, gesperrte Zertifikate könnt ihr nicht reaktivieren, sie müssen neu erstellt werden!


Zurück zum Inhaltsverzeichnis


OpenVPN Klient

Dreambox als Klient

Beim Einrichten des OpenVPN Klients, müssen die erstellten Klient Dateien (4 Stk.) von der Serverbox kopiert und in das folgende Verzeichnis der Klient Dreambox eingefügt werden.

/etc/openvpn

Hier nochmal eine Auflistung der vier benötigten Dateien für den OpenVPN Klient. Das xxx steht für den Namen, welcher bei der Klient Erstellungen eingegeben worden ist.

  • xxx-cert.pem
  • xxx.pem
  • xxx.ovpn
  • vpn-ca.pem


Zurück zum Inhaltsverzeichnis


Konfigurationsdatei (*.ovpn) editieren

Bevor eine Verbindung aufgebaut werden kann, müsst ihr die Konfigurationsdatei (*.ovpn) editieren. Beim der Zeile remote muss die IP-Adresse oder Hostadresse und der korrekte Port eingetragen werden. Die Konfiguration könnte wie folgt ausschauen, wenn der Zugriff über den Hostnamen webaccess.dyndns.tv erfolgt via Port 1194.

.
.
# example 'remote foobar.org 1194'
# example 'remote 97.123.100.236 1194'
remote webaccess.dyndns.tv 1194

resolv-retry infinite
nobind
persist-key
persist-tun
.
.


Zurück zum Inhaltsverzeichnis


Verbindung aufbauen

Dreambox Client - Skin Beispiel: gp-skin-swan-black

Öffnet das OpenVPN Client Plugin im BluePanel unter den Daemons. Im Plugin erscheint ein Eintrag (nicht verbunden), wenn die Konfigurationsdateien in das korrekte Verzeichnis kopiert worden sind (/etc/openvpn).

Startet die Verbindung auf den OpenVPN Server mit der [OK] Taste. Funktioniert alles, dann erscheint der Status verbunden im OpenVPN Client Plugin. Trennen könnt ihr die Verbindung durch erneutes drücken der [OK] Taste.

Die Verbindung wird auch bei einem Neustart der Dreambox automatisch hergestellt, wenn eine *.ovpn Datei im Verzeichnis /etc/openvpn gefunden wird.


Zurück zum Inhaltsverzeichnis


Android Smartphone als Klient

Beispiel - OpenVPN settings Android

Das Bild zeigt ein Beispiel von einem Android basierenden Smartphone, welches mit der Dreambox verbunden ist. Als App wird OpenVPN settings eingesetzt, um die Verbindung zum Server zu starten. Beachtet, dass das Gerät gerootet sein muss, um OpenVPN zu nutzen. Weiters wird der tun/tap Treiber, die Busybox und OpenVPN benötigt. Bei vielen Custom-Roms sind diese Abhängigkeiten schon in der Firmware integriert.

Die Konfigurationsdatei (*.opvn) muss korrekt angepasst werden mit dem Remoteserver und dem entsprechenden Port ergänzt werden. Kopiert anschliessend die Klient Dateien auf die SD-Karte, z.B. in einen erstellten Ordner openvpn. Jetzt müsst ihr nur noch die OpenVPN settings App anpassen (z.B. Pfad zu Konfiguration, Zertifikaten) und der Tunnel auf den OpenVPN Server kann gestartet werden.


Zurück zum Inhaltsverzeichnis


Supportthread

Braucht ihr Hilfe zu OpenVPN, dann folgt bitte folgendem Link ;)

geminiopenvpn


Zurück zur Übersicht:Gemini-Wiki:Portal oder Hauptseite