iOS bietet von Haus aus eine Reihe von Möglichkeiten für VPN Verbindungen. Leider sind Verbindungen per OpenVPN nicht darunter. Allerdings ist dies kein Beinbruch, da es eine entsprechende App im Appstore gibt. Die benötigten Dateien (Zertifikate und Konfiguration) sind dabei die selben wie bei der Mac OS X Nutzung. Nachdem die Dateien per iTunes über die Dateifreigabe importiert worden sind, können sie in der OpenVPN App importiert werden. Nachdem Import sieht man die Verbindung und den Schriftzug „Unconnected“. Mit einem Druck auf den Radiobutton wird eine Verbindung hergestellt.
Das VPN Logo in der oberen Leiste zeigt den Status an
An dieser Stelle fragt iOS ob man der Anwendung die Rechte zum Herstellen einer VPN Verbindung geben möchte. Dies sollte natürlich bejaht werden. Oben in der Menüleiste gibt es nun ein VPN Logo, welches einen darauf hinweist das die Verbindung steht und genutzt werden kann.
Wie man OpenVPN unter Windows betreibt, hatte ich vor einigen Jahren beschrieben. Auch unter Mac OS X lässt sich das ganze einrichten. Als grafischer Client bietet sich der quelloffende und unter GPLv2 stehende Client Tunnelblick an, dessen offizielle Seite auf Google Code zu finden ist. Nach der Installation der aktuellen (stabilen) Version 3.3, kann Tunnelblick auch gleich ausgeführt werden. Für die Konfiguration des Clients benötigt man eine Datei mit den benötigten Parametern, welche die Endung „ovpn“ oder „conf“ trägt. Tunnelblick kann dabei bei Bedarf eine Beispielkonfiguration anlegen. In dieser Konfigurationsdatei werden nur folgende Werte geändert:
remote vpn.example.org 1194
# SSL/TLS parms.
# See the server config file for more
# description. It's best to use
# a separate .crt/.key file pair
# for each client. A single ca
# file can be used for all clients.
ca ca.crt
cert client.crt
key client.key
Die ovpn Datei wird mit der ca.crt Datei und der client.crt sowie der client.key Datei (beide erhält man vom VPN Anbieter) in einen Ordner gepackt und dieser Ordner mit der Erweiterung „.tblk“ versehen. Anschließend wie der Ordner im Finder geöffnet und somit der Tunnelblick-Konfiguration hinzugefügt. Danach kann die Verbindung im Kontextmenü aktiviert werden. Nach einigen Sekunden ist die Initialisierung beendet und die VPN Verbindung kann genutzt werden.
Wenn man sich einem unsicheren Netz bewegt, z.B. in einem freien WLAN empfielt es sich ein VPN zu nutzen. Dafür gibt es die unterschiedlichsten VPN-Dienste, welche dies gegen einen monatlichen Obolus anbieten. Besitzt man einen eigenen Server, so kann man sich mittels OpenVPN einen solchen Dienst selber aufsetzen. Im ersten Schritt wird OpenVPN installiert:
apt-get install openvpn
Aus den Beispieldateien wird das Skript „easy-rsa2“ zum Erstellen der Zertifikate an den entsprechenden Ort kopiert:
Damit ist die Certificaty Authority (CA) erstellt. Nun geht es an die Erstellung der Schlüssel für den Server:
sudo -E ./build-key-server server
Beim Common Name, gibt man die Domain ein unter welcher der VPN Server später erreichbar sein soll (z.B. vpn.example.org). Nach der Erstellung wird man im „keys“ Verzeichnis die Dateien „server.crt“, „server.csr“ und „server.key“ finden. Für den Diffie-Hellman Schlüsselaustausch müssen entsprechende Paramater erzeugt werden:
sudo -E ./build-dh
Nun fehlen nur noch die Zertifikate für die entsprechenden Nutzer. Ein Nutzer wird dabei mittels:
sudo -E ./build-key nutzerOderClientName
erstellt. Damit sind alle benötigten Zertifikate und Schlüssel erstellt, so das nun die restliche Konfiguration des Servers vorgenommen werden kann. Als Basis wird dabei die mitgelieferte Beispieldatei genutzt:
Wenn man PuTTY nutzt, wird man sich sicherlich das ein oder andere Mal über die seltsame Zeichen gewundert haben. Ein schönes Beispiel dafür ist der Midnight Commander, der anstatt mit der gewohnten Linienoptik mit ganz anderen Zeichnen arbeitet. Das Problem ist hier allerdings nicht beim Server zu finden. Stattdessen muss bei PuTTY gesucht werden.
Die PuTTY Optionen
Um das Problem zu beheben, sollte man in den Einstellungen unter „Window“ -> „Translation“ das „Remote character set“ auf UTF-8 stellen. Danach gehören die fehlerhaften Zeichen der Vergangenheit an.
Im Web kennt man solche Boxen zu genüge. Ein Suchfeld in welchem in ausgegrauter Schrift „Suchen“ oder ähnliches steht. Unter .NET ist das ganze leider nicht als vorgefertigtes Control vorhanden, so das man hier selbst Hand anlegen muss. Für ein solches Control nimmt man eine TextBox und setzt die Events „Enter“ und „Leave“ und befüllt sie wie folgt:
Damit steht in der TextBox der ausgegraute Text „Search…“ welcher verschwindet, sobald man den Fokus in die TextBox setzt. Der Platzhaltertext wird nur dann angezeigt, wenn kein Inhalt in der Textbox vorhanden ist.