Hallo Kollegen,
aufgrund mehrerer Zuschriften, versuche ich doch mal kurz zu skizzieren, wie man einen OpenVPN Server und die OpenVPN Connect App einrichten muss, um VPN on demand unter iOS nutzen zu können.
Schritt 1: Server einrichten
Im Prinzip habe ich mich dabei an folgender Anleitung entlang gehangelt:
https://help.ubuntu.com/14.04/serverguide/openvpn.html
In Kürze:
- OpenVPN und easy-rsa installieren
- Certificate Authority (CA) erstellen
- Server Zertifikat erstellen
- Client Zertifikat erstellen, allerdings brauchen wir diese für iOS im PKCS12 Format, daher folgenden Befehl verwenden:
Ihr müsst dabei einen Export-Passwort vergeben. Dieses bitte merken, das brauchen wir später nochmal!
- Für zusätzliche Sicherheit erstellen wir noch einen TLS-Auth Key mit:
Zum Schluss noch ca.crt, dh2048.pem, server.crt, server.key und ta.key in das /etc/openvpn Verzeichnis kopieren und ca.crt, client1.crt, client1.csr, client1.key, client1.p12 und ta.key auf den Rechner, von dem aus später das iOS Device aus eingerichtet werden soll.
Danach kopiert man die Beispielkonfiguration für den Server und passt sie entsprechend an. Fragt mich bitte nicht, für was die einzelnen Optionen stehen. Um es euch etwas leichter zu machen, hier meine server.conf:
Eure IP Adressbereiche müsst ihr natürlich entsprechend anpassen. 192.168.178.0 ist mein Heimnetz, 192.168.179.0 sind die Adressen, die VPN Clients zugewiesen bekommen.
Damit die Clients nicht nur auf den Server kommen, sondern auch in euer Netzwerk, müsst ihr noch IP Forwarding auf dem Server aktivieren. Für Ubuntu wäre das:
Um diese Änderung permanent zu machen, kann man sie in die Datei /etc/sysctl.conf eintragen:
Außerdem müsst ihr eurem Router erklären, wo er das VPN Client Netzwerk 192.168.179.0 findet. Das ist je nach Router unterschiedliche. Bei einer Fritzbox findet ihr das ganze unter Heimnetz > Netzwerk > Netzwerkeinstellungen > Statische Routingtabelle > IPv4 Routen > Neue IPv4 Route und dann die Maske ausfüllen:
IPv4-Netzwerk: 192.168.179.0
Subnetzmaske: 255.255.255.0
Gateway: 192.168.178.<<openvpn_host>>
IPv4-Route aktiv: Haken gesetzt
Wenn wir schon in der Fritzbox sind, können wir auch gleich noch den Port 1194 freigeben und auf den OpenVPN Host weiterleiten. Und zwar unter Internet > Freigaben > Neue Portfreigabe muss die Maske wie folgt ausgefüllt werden:
Haken bei -> Portfreigabe aktiv für: Andere Anwendung
Bezeichnung: OpenVPN
Protokoll: UDP
von Port: 1194
bis Port: 1194
an Computer: <<OpenVPN Host auswählen>>
an IP-Adresse: <<OpenVPN Host IP>>
an Port: 1194
Damit sollte die Serverseite fertig konfiguriert sein und ihr könnt den Server mit
starten.
iOS Client Konfiguration
Auf dem iOS Gerät ladet ihr euch zuerst einmal die "OpenVPN Connect" App runter: https://itunes.apple.com/de/app/open...590379981?mt=8
Dann besorgt ihr euch das iPhone Konfigurationsprogramm bzw. iPhone Configuration Utility (eine Sorge, damit kann man auch ein iPad usw. konfigurieren) und startet es. Unter Konfigurationsprofile legt ihr mit "Neu" ein neues Profil an. Siehe auch die angehängten Screenshots.
- Füllt zuerst unter Allgemein alles aus, die Angaben hier sind beliebig
- Unter Zertifikat wählt ihr euer client.p12 aus und gebt das Export-Passwort ein, das ihr euch oben gemerkt habt
- Dann geht es weiter auf dem Eintrag "VPN". Verbindungsname ist beliebig, den Rest (bis auf "Eigene Daten") könnt ihr den Screenshots entnehmen
Bei eigene Daten fügen wir nun die Client Konfiguration hinzu. Ich gebe euch hier die Key/Value Paare, die bei mir stehen:
ganz wichtig ist hierbei das Schlüsselpaar tls-auth und ca. Hier muss der Inhalt der ta.key und der ca.key eingefügt werden. Allerdings müsst ihr Zeilenumbrüche in der Datei durch "\n" (ohne Anführungszeichen) ersetzen. Hab ihr also in der Datei folgenden Inhalt:
müsst ihr alle Zeilenumbrüche am Ende entfernen und durch \n ersetzen. Das Ergebnis sollte dann in etwa so aussehen:
Das macht ihr mit der ta.key für tls-auth und mit der ca.crt für ca.
Dann setzt ihr den Haken bei "VPN On Demand aktivieren" und fügt die entsprechenden Domainnamen (im Falle der FritzBox einfach fritz.box), die Hostnamen oder IP Adressen (Adressbereiche gehen leider nicht) hinzu, für die später eine automatische VPN Verbindung aufgebaut werden soll.
Wenn ihr nun euer iOS Device an den Computer ansteckt, erscheint es unter Geräte. Dort könnt ihr es auswählen, das Profil installieren und auf dem Gerätedisplay die Installation bestätigen. Ab diesem Zeitpunkt sollte das Profil sowohl in der Einstellungs-App unter VPN als auch in der OpenVPN Connect App gelistet werden und ihr solltet erstens in den Einstellungen ein VPN aufbauen können und zweitens sollte sich das VPN in Zukunft bei Verwendung einer der oben genannten Domains oder Hostnamen automatisch aufbauen. Wenn ihr das iOS Device noch per Kabel mit dem Rechner verbunden habt, seht ihr auch im iPhone Konfigurationstool unter Diagnose, was da gerade im Hintergrund abläuft. So könnt ihr bei evtl. Problemen noch nachsehen, an was es hakt.
---
ACHTUNG!!!! Ich bin kein Spezialist, was OpenVPN und alles hier gezeigte anbelangt. Ich habe das so bei mir am Laufen und es funktioniert. Ich übernehme aber keinerlei Garantie oder Gewähr, dass ihr euch damit nicht irgendwas kaputt macht oder euch angreifbar macht!
---
EDIT1: vergessene Screenshots hinzugefügt
aufgrund mehrerer Zuschriften, versuche ich doch mal kurz zu skizzieren, wie man einen OpenVPN Server und die OpenVPN Connect App einrichten muss, um VPN on demand unter iOS nutzen zu können.
Schritt 1: Server einrichten
Im Prinzip habe ich mich dabei an folgender Anleitung entlang gehangelt:
https://help.ubuntu.com/14.04/serverguide/openvpn.html
In Kürze:
- OpenVPN und easy-rsa installieren
- Certificate Authority (CA) erstellen
- Server Zertifikat erstellen
- Client Zertifikat erstellen, allerdings brauchen wir diese für iOS im PKCS12 Format, daher folgenden Befehl verwenden:
Code:
./build-key-pkcs12 client1
- Für zusätzliche Sicherheit erstellen wir noch einen TLS-Auth Key mit:
Code:
openvpn --genkey --secret ta.key
Danach kopiert man die Beispielkonfiguration für den Server und passt sie entsprechend an. Fragt mich bitte nicht, für was die einzelnen Optionen stehen. Um es euch etwas leichter zu machen, hier meine server.conf:
Code:
port 1194 proto udp dev tun ca ca.crt cert server1.crt key server1.key dh dh2048.pem server 192.168.179.0 255.255.255.0 ifconfig-pool-persist ipp.txt push "route 192.168.178.0 255.255.255.0" push "redirect-gateway def1" push "dhcp-option DNS 192.168.178.1" keepalive 10 120 tls-auth ta.key 0 cipher AES-256-CBC comp-lzo max-clients 10 user nobody group nogroup persist-key persist-tun status openvpn-status.log verb 3
Damit die Clients nicht nur auf den Server kommen, sondern auch in euer Netzwerk, müsst ihr noch IP Forwarding auf dem Server aktivieren. Für Ubuntu wäre das:
Code:
sudo sysctl -w net/ipv4/ip_forward=1
Code:
net.ipv4.ip_forward=1
IPv4-Netzwerk: 192.168.179.0
Subnetzmaske: 255.255.255.0
Gateway: 192.168.178.<<openvpn_host>>
IPv4-Route aktiv: Haken gesetzt
Wenn wir schon in der Fritzbox sind, können wir auch gleich noch den Port 1194 freigeben und auf den OpenVPN Host weiterleiten. Und zwar unter Internet > Freigaben > Neue Portfreigabe muss die Maske wie folgt ausgefüllt werden:
Haken bei -> Portfreigabe aktiv für: Andere Anwendung
Bezeichnung: OpenVPN
Protokoll: UDP
von Port: 1194
bis Port: 1194
an Computer: <<OpenVPN Host auswählen>>
an IP-Adresse: <<OpenVPN Host IP>>
an Port: 1194
Damit sollte die Serverseite fertig konfiguriert sein und ihr könnt den Server mit
Code:
sudo service openvpn start
iOS Client Konfiguration
Auf dem iOS Gerät ladet ihr euch zuerst einmal die "OpenVPN Connect" App runter: https://itunes.apple.com/de/app/open...590379981?mt=8
Dann besorgt ihr euch das iPhone Konfigurationsprogramm bzw. iPhone Configuration Utility (eine Sorge, damit kann man auch ein iPad usw. konfigurieren) und startet es. Unter Konfigurationsprofile legt ihr mit "Neu" ein neues Profil an. Siehe auch die angehängten Screenshots.
- Füllt zuerst unter Allgemein alles aus, die Angaben hier sind beliebig
- Unter Zertifikat wählt ihr euer client.p12 aus und gebt das Export-Passwort ein, das ihr euch oben gemerkt habt
- Dann geht es weiter auf dem Eintrag "VPN". Verbindungsname ist beliebig, den Rest (bis auf "Eigene Daten") könnt ihr den Screenshots entnehmen
Bei eigene Daten fügen wir nun die Client Konfiguration hinzu. Ich gebe euch hier die Key/Value Paare, die bei mir stehen:
Code:
ca = -----BEGI... cipher = AES-256-CBC client = NOARGS comp-lzo = NOARGS dev = tun key-direction = 1 persist-key = NOARGS persist-tun = NOARGS proto = udp remote = irgendwas.dyn-dns.org 1194 tls-auth = -----BEGI... verb = 3
Code:
------BEGIN ...------ zeile1 zeile2 zeile3 ------END ....--------
Code:
------BEGIN ...------\nzeile1\nzeile2\nzeile3\n------END ....--------
Dann setzt ihr den Haken bei "VPN On Demand aktivieren" und fügt die entsprechenden Domainnamen (im Falle der FritzBox einfach fritz.box), die Hostnamen oder IP Adressen (Adressbereiche gehen leider nicht) hinzu, für die später eine automatische VPN Verbindung aufgebaut werden soll.
Wenn ihr nun euer iOS Device an den Computer ansteckt, erscheint es unter Geräte. Dort könnt ihr es auswählen, das Profil installieren und auf dem Gerätedisplay die Installation bestätigen. Ab diesem Zeitpunkt sollte das Profil sowohl in der Einstellungs-App unter VPN als auch in der OpenVPN Connect App gelistet werden und ihr solltet erstens in den Einstellungen ein VPN aufbauen können und zweitens sollte sich das VPN in Zukunft bei Verwendung einer der oben genannten Domains oder Hostnamen automatisch aufbauen. Wenn ihr das iOS Device noch per Kabel mit dem Rechner verbunden habt, seht ihr auch im iPhone Konfigurationstool unter Diagnose, was da gerade im Hintergrund abläuft. So könnt ihr bei evtl. Problemen noch nachsehen, an was es hakt.
---
ACHTUNG!!!! Ich bin kein Spezialist, was OpenVPN und alles hier gezeigte anbelangt. Ich habe das so bei mir am Laufen und es funktioniert. Ich übernehme aber keinerlei Garantie oder Gewähr, dass ihr euch damit nicht irgendwas kaputt macht oder euch angreifbar macht!
---
EDIT1: vergessene Screenshots hinzugefügt
Kommentar