Heiko Zimmermann
SAP-Berater, System Engineer und Entwickler.

Weblog

3 January 2017, 11:38

Vor längerer Zeit kam ich auf die Idee, das kostenlose Raspberry Pi Hosting bei edis.at zu nutzen, um dort meinen Pi als OpenVPN-Server für mein iPhone einzurichten.

So kann ich einen Malware-, Tracker- und Ad-Blocking-DNS-Resolver nutzen, ohne zwingend WLAN, oder den Apple Configurator zu benötigen. In meinem Fall Unbound mit DNSSEC und eigenen Filter-Listen. Wenn man möchte, könnte man noch einen transparenten Squid3 nutzen und man hat eine feste IP.

Für iOS gibt es eine tolle OpenVPN App mit seamless Tunnel, AES-CBC und TLS 1.2 auf Basis des sicheren PolarSSL. Das eigentliche Problem erkennt man erst später. Nach dem Lock-Screen und einem längeren Timeout, verhindert iOS einen automatischen Neuaufbau der OpenVPN-Verbindung.

Die Lösung besteht darin, dass man eine .mobileconfig in den iOS VPN Client importiert. Diese werden üblicherweise für IPSec und IKEv2 von VPN-Anbietern genutzt. Nach dem Import lässt sich in der VPN-Konfiguration die Option „Bei Bedarf verbinden“ aktivieren. Auf Github gibt es das Projekt https://github.com/iphoting/ovpnmcgen.rb, damit kann man auch für OpenVPN bequem z.B. auf einen macOS die notwendige .mobileconfig erstellen. Die dann nur noch z.B. über den Safari per klick importiert werden muss.

Vorher muss man sich nur überlegen wie man den Security Level definiert. Wenn man immer, also in jedem WLAN und im Mobilen Netz das VPN möchte, dann muss man z.b. folgendes wählen:

--security-level paranoid