Samstag, 14. Juli 2012

IPFire: Openvpn for Android

OpenVPN für Android (kein root)

Wer mit seinem Android Smartphone eine VPN Verbindung über OpenVPN erstellen wollte, musste bis anhin sein Gerät rooten.
Sicher nicht jedermanns Geschmack.
Google hat ab Android 4.0 eine VpnService API welche sich Entwickler zu nutze machen können.
OpenVPN for Android von Arne Schwabe ist eines dieser Apps.
In diesem Blogpost zeige ich die Konfiguration dieser App im Zusammenspiel mit IPFire.



Vorbereitung: OpenVPN Server

Ohne VPN Server geht nichts. In diesem Fall verbinde ich mich mit meiner IPFire Firewall. Dazu existieren bereits hervorragende offizielle Wikis. Die Client zu Netzwerk Konfiguration (Roadwarrior) findet man also bereits hier: http://wiki.ipfire.org/de/configuration/services/openvpn/roadwarrior_config
 In wenigen Schritten hat man mit einer IPFire einen OpenVPN Server konfiguriert.

  1. Zuerst erstellt man ein Zertifikat
  2. Danach konfiguriert man das VPN
  3. Falls gewünscht gibt man noch DHCP push options mit (zB DNS für interne Namensauflösung)
  4. Zuletzt erstellt man eine Verbindung für einen Client (Roadwarrior). Ich empfehle ein PKCS12 Datei Passwort zu setzen.
Nachdem man Punkt 4 erledigt hat, kann man unter "client status und kontrolle", Die VPN Konfiguration herunterladen. Dazu klickt man auf das Diskettensymbol. Dadurch lädt man eine ZIP Datei herunter welche die OpenVPN Konfiguration wie auch eine PKCS12 Datei enthält.

Diese Dateien benötigt man um später den VPN Client auf dem Android Smartphone zu konfigurieren. Also entzippt man die Datei und kopiert diese auf das Android Gerät zb unter einem eigenen Ordner wie /
mnt/sdcard/openvpn

OpenVPN Server Synology

Wer keine IPFire Firewall hat, der kann natürlich auch einen anderen VPN Server verwenden. So sind auch die gängigen NAS wie zB von Synology in der Lage als VPN Server zu agieren.

Auch beim Synology Server kann man kann man eine Konfigurationsdatei herunterladen. Statt einer PKCS12 Datei, beinhaltet diese Konfiguration ein Zertifikat. Mann muss also bei der Konfiguration der App als Typ Nutzer/PW + Zertifikat wählen. Nutzer und Passwort ist ein Synology User, welcher VPN Berechtigung hat.


Android Client

Nun aber zur eigentlichen App.
Wie schon Eingangs erwähnt, können Besitzer eines Geräts mit Android 4.0 oder neuer, auf das rooten im Zusammenhang mit OpenVPN verzichten!
Openvpn for Android findet sich im Google Play Market hier: https://play.google.com/store/apps/details?id=de.blinkt.openvpn&hl=de

Ein Start der App bringt einem zur Startseite.
Hier kann man unter VPN Liste, die VPN's konfigurieren. Zudem kann man allgemeine Einstellungen vornehmen, zB das Aktivieren von Traffic Statistiken. Zudem findet man auf der Startseite ein kleines FAQ und Informationen über die Software.

Um das VPN zu konfigurieren, drückt man also auf die VPN Liste.
Diese ist anfangs noch leer. Da man aber bereits eine Konfiguration auf das Gerät kopiert hat, kann man diese mit einem Klick auf das Ordnersymbol hinzufügen.

Hat man die Konfigurationsdatei gefunden, klickt man auf diese und bestätigt diese durch Auswählen.

Nun verfügt man bereits über das Importierte Profil. Allerdings möchte man dieses sicher noch umbenennen und der Pfad zur PKSC12 Datei fehlt auch noch. Um diese Einstellungen vorzunehmen drückt man in der VPN Liste auf das entsprechende Regler Symbol und auf den Stift zur Bearbeitung. Zu den relevanten Einstellungen gelangt man im folgenden Fenster beim Punkt "Basic".




















Unter Basic kann man nun dem Profil einen treffenden Namen verpassen. Falls der VPN Server auch so konfiguriert ist, lässt sich die LZO Komprimierung aktivieren. Ebenfalls fügt man in dieser Maske die PKCS12 Datei hinzu. In meinem Fall ist dies noch Passwort geschützt.

Mit diesen Einstellungen kann man bereits eine VPN Verbindung mittels openvpn zu einer IPFire herstellen.
 Es genügt in der VPN Liste das entsprechende Profil zu wählen.
Nach dem Absegnen einer Sicherheitsmeldung wird die Verbindung aufgebaut und man ist über eine gesicherte Leitung mit dem Heimnetz verbunden.




Falls man die Möglichkeiten dazu hat, wäre es vor den Ferien doch noch eine Idee, so etwas einzurichten, um von Unterwegs eine sichere Verbindung nach Hause zu haben.

Viel Spass :)