OpenVPN Connect mit iOS

Eine simple Anleitung zum Einsatz der VPN-Verbindung mittels OpenVPN Connect auf iOS-Geräten.

Voraussetzungen

Um die iOS-Applikation mit den notwendigen Konfigurationen und auch Zertifikaten zu versehen, sind folgende Voraussetzungen notwendig:

  • OpenVPN-Client Konfigurationsdatei (.ovpn)
  • CA-Zertifikat (innerhalb der Konfigurationsdatei)
  • Eigenes Zertifikat und Private-Key (.ovpn12)

Sind diese Voraussetzungen vorhanden, kann das Setup vorgenommen werden. Hierzu werden wir als erstes die Konfiguration und die Zertifikate erstellen.

Die OpenVPN-App

Wir laden die OpenVPN Connect App im Appstore von Apple und installieren diese auf unserem iOS-Gerät. Nach dem Start der App können wir verschiedene Verbindungsarten wählen. Unsere Wahl ist das OVPN Profile. Dies wird jedoch automatisch gewählt, wenn wir die Konfigurationsdateien laden.

Konfigurationsdatei

Die Konfigurationsdatei beinhaltet generell dieselben Einstellungen wie bei einem Windows- oder Mac-Client. Nachfolgend die Konfiguration, welche zu unserem OpenVPN-Artikel passt.

# MvA-Networks Connect. OpenVPN ClientScript for RoadWarrior.
# Copyright 2003-2019 www.mva.ch (09.02.2017, 23.08.2019)

client
dev tun
proto udp
remote 195.65.111.17 1194
resolv-retry infinite
nobind
persist-key
persist-tun
cipher AES-256-CBC
compress lz4
verb 3

<ca>
-----BEGIN CERTIFICATE-----
MIIG7zCCBNegAwIBAgIJAKQ5e8/5WEKQMA0GCSqGSIb3DQEBCwUAMIGmMQswCQYD
VQQGEwJDSDEQMA4GA1UECBMHWnVlcmljaDEQMA4GA1UEBxMHQmlzaWtvbjEjMCEG
A1UEChMaTXZBIEludGVybmV0IFNlcnZpY2VzIEdtYkgxFTATBgNVBAsTDE12QS1O
ZXR3b3JrczEYMBYGA1UEAxMPRmFsdfvfbiBPcGVuVlBOMR0wGwYJKoZIhvcNAQkB
Fg50ZWNoQG12YS1uLm5ldDAeFw0xNzEwMDUwODU0NTlaFw0yNzEwMDMwODU0NTla
MIGmMQswCQYDVQQGEwJDSDEQMA4GA1UECBMHWnVlcmljaDEQMA4GA1UEBxMHQmlz
... 
Bgq8Lg7fwmZ74Dsq7pPav3h1lRrngmQe5TPQrZ/8zo8ONNxn7KQKM1DSEjBuSoGP
SmNTDVkdZoGAin80h0B5oVCIrd9J9aAhU6Ll5/SfIrYcQylHz5rUBUur3YWav47r
7JEkToNkdUc2opS74AOfRDfm1wvoslJsUtC7Xg6vjQBrBPGI3825nL725EDYPRRr
NOC5Hw6suakpT12/z0dc9OTCXhUhTwua2SWI5BksCAWDXddtKeId+BqotKDCmiIZ
WehsD
-----END CERTIFICATE----- 
</ca>

Der Unterschied liegt nur darin, dass das CA-Zertifikat (in unserem Fall das ca.crt) direk in der Konfigurationsdatei abgelegt wird.

Zertifikat

Nebst der Konfigurationsdatei benötigen wir auch eine komplette Zertifikatskette. Diese erstellen wir als .ovpn12-File aus unserem Client Zertifikat und unserem Private-Key. Hierzu wird openssl benötigt. Dieses installiert sich mit der Windows-OpenVPN-Installation oder befindet sich im Terminal des Macs. Folgender Befehl konvertiert das Zertifikat und den Private-Key in unser gewünschtes .ovpn12-Format.

openssl pkcs12 -export -in client.crt -inkey client.key -certfile ca -name MyClient -out client.ovpn12

Wir merken uns das Passwort, welches wir zum Konvertieren eingeben müssen. Dies benötigen wir zur Aktivierung des Zertifikates auf der OpenVPN Connect-App.

Konfiguration bereitstellen & aktivieren

Konfiguration bereitstellen

Die beiden fertigen Konfigurationsdateien können nun in die OpenVPN-App übertragen werden. Dies kann auf verschiedene Varianten geschehen:

  • Übertragung mittels iTunes oder Dateien auf dem iOS Gerät
  • Übertragung mittels E-Mail
  • Übertragung mittels MvA Cloud (ownCloud Client)

Der einfachste Weg ist es, sich selbst eine E-Mail mit dem Inhalt der beiden Konfigurationsdateien zu senden. Empfehlenswert ist es, diese E-Mail nach erfolgreichem Installieren im Posteingangs- und Ausgangsserver zu löschen. In diesem Beispiel legen wir die beiden Konfigurationsdateien in unsere Cloud ab und laden diese dann aus der Cloud.

Konfiguration aktivieren

Wir laden als erstes das Zertifikat, danach die Konfigurationsdatei.

Das Zertifikat laden wir aus dem E-Mail oder unserer Cloud, danach wählen wir ADD.

Das Passwort entspricht dem Passwort, welches wir beim Erstellen des .ovpn12-Zertifikates vergeben haben.

Danach laden wir die .ovpn-Konfigurationsdatei, bestätigen wiederum mittels ADD.

Wir wählen danach unter Certificate das zuvor importierte Zertifikat.

OpenVPN möchte nun Anpassungen an unserer VPN-Konfiguration des iOS-Gerätes vornehmen. Diese können wir bestätigen.

Danach ist das Profil erfolgreich importert.

Komprimierung aktivieren

In unserem Konfigurationsbeispiel verwenden wir eine Komprimierung:

compress lz4

Dies müssen wir der OpenVPN Connect-App explizit mitteilen. Darum gehen wir in die Einstellungen der App und wählen Allow Compression (insecure) FULL an.

Sicherheitstechnisch kann die Komprimierung auch auf dem Server und Client deaktiviert werden.

OpenVPN Connect starten

Wir starten die VPN-Verbindung mittels Button in der App oder alternativ kann unter den Einstellungen die VPN-Verbindung aktiviert werden. Somit haben wir nun eine direkte Verbindung zu unserem OpenVPN-Server.

Weiterleitung des gesamten Internet-Verkehrs über den OpenVPN-Server

Generell haben wir nun eine Verbindung zu unserem OpenVPN-Server und — je nach Konfiguration — auch in unser internes Netzwerk. Sofern wir den gesamten Internet-Traffic über unseren OpenVPN-Server leiten möchten, ergänzen wir unsere Konfigurationsdatei mit folgendem Befehl:

redirect-gateway

Es können auch zwei Konfigurationen geladen werden; dann kann in der VPN-Einstellung gewählt werden, ob nur eine Verbindung ins lokale Netzwerk benötigt wird, oder ob der gesamte Traffic weiter geleitet werden soll.

1 Kommentar

    Hallo,

    die Anleitung hat schon mal super weitergeholfen.
    Ich würde mich freuen, wenn diese um einen wichtigen Punkt erweitert werden könnte: tls-auth

    Beste Grüße,
    Carsten

    Antworten

Kommentar schreiben

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert