iOS und IPCop/IPFire OpenVPN
Mit OpenVPN Connect gibt es einen guten OpenVPN-Client für iOS-Geräte ab der Version 5.0.
Mithilfe der App können ganz komfortabel mehrere VPN-Tunnel verwaltet und verwendet werden. Die jeweiligen OpenVPN-Konfigurationsdateien lassen sich jedoch nicht direkt am iPhone, iPod oder iPad anpassen, wie man das beispielsweise von der Android-App kennt. Die erste Einrichtung gestaltet sich demnach also etwas anspruchsvoller, da man die Konfigurationsdateien am Rechner anpassen und anschließend mittels iTunes übertragen muss.
Darüber hinaus gibt es noch einige weitere Einschränkungen:
- Zertifikate müssen in die OpenVPN-Konfigurationsdatei integriert werden
- TAP-Devices werden derzeit nicht unterstützt
- Fehlermeldungen bei der Zertifikatverwaltung sind nicht scrollbar, passen im vertikalen Modus nicht auf den Bildschirm
Die jeweilige iOS OpenVPN-Konfiguration variiert je nach Serverkonfiguration. Wie bereits erwähnt werden TAP-Konfigurationen derzeit nicht unterstützt.
Ich verwende OpenVPN in Verbindung eines IPCop-Routers. Dieser verwendet standardmäßig TUN und Zertifikate für Benutzer- und CA. In dieser Konstellation ist es erforderlich, die einzelnen Zertifikate (Benutzer, CA) zu extrahieren (benötigt ein installiertes OpenSSL) damit sie anschließend in die OpenVPN-Konfiguration integriert werden können:
1# openssl pkcs12 -in name.p12 -nocerts -nodes -out keys.pem
2Enter Import Password:
3MAC verified OK
4
5# openssl pkcs12 -in name.p12 -cacerts -nodes -out ca.pem
6Enter Import Password:
7MAC verified OK
8
9# openssl pkcs12 -in name.p12 -out name.pem
10Enter Import Password:
11MAC verified OK
12Enter PEM pass phrase:
Das von IPCop / IPFire erzeugte Client-ZIP enthält eine fertige Konfigurationsdatei, die noch angepasst werden muss. Das vermerkte Krypto-Archiv (pkcs12
) wird entfernt oder auskommentiert - die jeweiligen, vorher extrahierten Zertifikate, werden im XML-Syntax angehängt:
1#OpenVPN Server conf
2tls-client
3client
4dev tun
5proto udp
6tun-mtu 1400
7remote HOSTNAME PORT
8#pkcs12 name.p12
9cipher BF-CBC
10verb 3
11ns-cert-type server
12
13#ca.pem
14<ca>
15-----BEGIN CERTIFICATE-----
16...
17-----END CERTIFICATE-----
18</ca>
19#name.pem
20<cert>
21-----BEGIN CERTIFICATE-----
22....
23-----END CERTIFICATE-----
24</cert>
25#keys.pem
26<key>
27-----BEGIN PRIVATE KEY-----
28...
29-----END PRIVATE KEY-----
30</key>
Anschließend wird die OpenVPN-Konfiguration gespeichert und mittels iTunes auf das iOS-Gerät übertragen. Hierfür sollte nach der Installation von OpenVPN Connect eine entsprechende Registerkarte (nach unten scrollen!) existieren.
Mittels Drag & Drop kann die Datei komfortabel übertragen werden. Auf dem iOS-Gerät wird das neue Profil erkannt und kann anschließend importiert werden.
Verbindungsaufbauten werden automatisch mitgeloggt - im Fehlerfall kann man also nachlesen, warum die Verbindung nicht zustandekommt. Aktive VPN-Verbindungen werden, wie IPSec- und PPTP-Tunnel mit einem VPN-Icon angezeigt. 🙂