VPN on demand auf iOS Geräten (iPhone)

Für welche Projekte verwendet Ihr OpenHAB? Was habt Ihr automatisiert? Stellt eure Projekte hier vor.

Moderatoren: Cyrelian, seppy

Antworten
Benutzeravatar
seppy
Beiträge: 734
Registriert: 24. Sep 2015 20:25
Answers: 4
Wohnort: Bonn

VPN on demand auf iOS Geräten (iPhone)

Beitrag von seppy »

Hallo Zusammen,

nachdem es mich einige Tage Recherche gekostet hat, möchte ich Euch gerne an meiner Lösung für den Remotezugang (aus dem Internet) teilhaben lassen. Ich bin kein iOS Entwickler und kann deshalb wahrscheinlich nicht alle Details erklären, aber wenn Ihr Fragen habt ... immer her damit.

Herrausforderung:
Ich möchte gerne auch außerhalb meines WLANs auf meine Hausautomatisierungsumgebung unter openHab zugreifen, habe aber deutliche Skrupel alles direkt ins öffentliche Netz zu hängen. Deshalb nutze ich schon lange den VPN Client auf meinem iPhone. Bisher muss ich nach erfolgreicher Einrichtung der VPN Verbindung vor jedem Zugriff via App oder Browser die VPN Verbindung manuell starten. Ich finde das unschön, zum einen bin ich faul :lol: und zum anderen ist meine Frau davon nicht begeistert :mrgreen: . Ich hatte gelesen, dass es unter iOS möglich sein soll, automatisch und nur bei Bedarf eine VPN Verbindung aufzubauen. Optimal ... nur lässt sich das nicht über das Endgerät konfigurieren und auch die Quellen im Internet sind rar. Folgende Seiten haben mir entscheidend geholfen: Ich beschreibe hier nicht, wie man eine VPN Verbindung herstellt, dazu sollte man in der Lage sein, wenn man mittels Configprofilen an seinen Apple Devices herumbastelt :roll: . Wenn dabei jemand Hilfe braucht, einfach melden.

Lösung:
Ich setze hinter meinem Kabelmodem/Router einen Linux VPN Server ein, der verschiedene Protokolle spricht. Ich habe mich für L2TP/IPSec entschieden, da es PreShared Key unterstützt und eine hohe Verschlüsselungstiefe anbietet.

1) Zuerst habe ich sichergestellt, dass die Verbindung manuell über das iPhone angelegt auch funktioniert. Also sauber auf- und abbaut und auch alle Netzsegmente die ich erreichen möchte auch erreichbar sind. --> Check

2) Dann habe ich ein Template für die mobilconfig gebaut. Bei mir waren das x-Versuche, da mir die Syntax nicht klar war und ich auch keine Möglichkeit hatte die Datei zu debuggen. Also Try & Error. Das Template sieht jetzt wie folgt aus (die Platzhalterbeschreibung findet Ihr weiter unten):

Code: Alles auswählen

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
	<key>ConsentText</key>
	<dict>
		<key>default</key>
		<string>openHab VPN</string>
	</dict>
	<key>PayloadContent</key>
	<array>
		<dict>
			<key>IPSec</key>
			<dict>
				<key>AuthenticationMethod</key>
				<string>SharedSecret</string>
				
				<key>OnDemandEnabled</key>
				<integer>1</integer>
				
				<key>OnDemandRules</key>
				<array>
					<dict>
						<key>InterfaceTypeMatch</key>
							<string>WiFi</string>
						<key>SSIDMatch</key>
							<array>
								<string>MEINESSID1</string>
								<string>MEINESSID2</string>
								<string>MEINESSID3</string>
							</array>
						<key>Action</key>
						<string>Disconnect</string>
					</dict>
					<dict>
					  <key>Action</key>
						<string>EvaluateConnection</string>
					  <key>ActionParameters</key>
						<array>
						  <dict>
							<key>Domains</key>
							  <array>
									<string>HOST1NURÜBERVPNERREICHBAR.local</string>
									<string>*.HOST2NURÜBERVPNERREICHBAR.local</string>
							  </array>
							<key>RequiredURLStringProbe</key>
								<string>http://HOSTNURÜBERVPNERREICHBAR.local/SITENURÜBERVPNERREICHBAR</string>                    
							<key>DomainAction</key>
							  <string>ConnectIfNeeded</string>
						  </dict>
						</array>
					</dict>					
				</array>
				<key>LocalIdentifierType</key>
				<string>KeyID</string>
				<key>SharedSecret</key>
				<data>DEINSHAREDSECRET
				</data>
			</dict>
			<key>IPv4</key>
			<dict>
				<key>OverridePrimary</key>
				<integer>1</integer>
			</dict>
			<key>PPP</key>
			<dict>
				<key>AuthName</key>
				<string>VPNBENUTZER</string>
				<key>AuthPassword</key>
				<string>VPNPASSWORT</string>
				<key>CCPEnabled</key>
				<integer>1</integer>
				<key>CCPMPPE128Enabled</key>
				<integer>1</integer>
				<key>CCPMPPE40Enabled</key>
				<integer>1</integer>
				<key>CommRemoteAddress</key>
				<string>EXTERNERHOSTNAME</string>
			</dict>
			<key>PayloadDescription</key>
			<string>BESCHREIBUNG</string>
			<key>PayloadDisplayName</key>
			<string>DISPLAYNAME</string>
			<key>PayloadIdentifier</key>
			<string>com.apple.vpn.managed.57E36D73-0B2F-4D93-BA58-077A9A684A2A</string>
			<key>PayloadType</key>
			<string>com.apple.vpn.managed</string>
			<key>PayloadUUID</key>
			<string>6CBFBCA4-CC7E-4FC4-918E-C4A9A18E8C9A</string>
			<key>PayloadVersion</key>
			<real>1</real>
			<key>Proxies</key>
			<dict>
				<key>HTTPEnable</key>
				<integer>0</integer>
				<key>HTTPSEnable</key>
				<integer>0</integer>
			</dict>
			<key>UserDefinedName</key>
			<string>openHab VPN</string>
			<key>VPNType</key>
			<string>L2TP</string>
			<key>VendorConfig</key>
			<dict/>
		</dict>
	</array>
	<key>PayloadDisplayName</key>
	<string>openHab VPN</string>
	<key>PayloadIdentifier</key>
	<string>homevpn.F56D036B-CD9A-42B3-B3B1-F6FD4DC1AE94</string>
	<key>PayloadRemovalDisallowed</key>
	<false/>
	<key>PayloadType</key>
	<string>Configuration</string>
	<key>PayloadUUID</key>
	<string>2C5CB8DF-6E9A-4029-ACB4-E2DA680C867C</string>
	<key>PayloadVersion</key>
	<integer>1</integer>
</dict>
</plist>
  • MEINESSIDX: Die SSID der WLAN Netze, in denen keine Verbindung via VPN aufgebaut werden soll.
  • HOSTXNURÜBERVPNERREICHBAR.local: Die Hostnamen die den Aufbau einer Verbindung initiieren sollen.
  • http://HOSTNURÜBERVPNERREICHBAR.local/S ... ERREICHBAR: Eine Site die nur bei aktiver VPN Verbindung erreichbar ist und einen HTTP Response 200 zurückgibt.
  • DEINSHAREDSECRET: Das Shared Secret aus der VPN Konfiguration.
  • VPNBENUTZER: Der Benutzername aus der VPN Konfiguration.
  • VPNPASSWORT: Das Passwort ( :!: ACHTUNG in Klartext. Also die Datei an einem sicheren ORT ablegen) aus der VPN Konfiguration.
  • EXTERNERHOSTNAME: Der externe Hostname der Firewall über die die VPN Verbindung augebaut wird.
  • BESCHREIBUNG: Eine Freitextbeschreibung.
  • DISPLAYNAME: Ein passender Name.
Proxies habe ich in meiner Kofiguration nicht benötigt. Die angepasste Datei wird als "NAME.mobileconfig" abgespeichert. Das Template kann hier auch heruntergeladen werden.
openHabVPN.txt
3) Um die Config zu installieren, schickt Ihr Euch die Datei in einer EMail an einen Mailaccount den Ihr auf dem iPhone abfragen könnt.

Bild

4) Die Installation ist dann ganz einfach. Einfach auf den Dateianhang gehen und öffnen. Ihr werdet dann gefragt, ob das Profil installiert werden soll.

Bild

Damit ist das Profil installiert und sobald Ihr im Browser oder eine App die konfigurierten Hosts erreichen möchte, wird die VPN Verbindung aufgebaut und nach einer gewissen Zeit (Genaue Zeitspanne kenne ich noch nicht) automatisch wieder abgebaut.
Problematisch ist noch der Timeout in den Apps. Da das Aufbauen der VPN Strecke eine gewisse Zeit benötigt, kann es sein, dass die eine oder anderen App in einen Timeout läuft und ein zweiter Ladeversuch vorgenommen werden muss.

Ich hoffe das Vorgehen funktioniert bei Euch auch und ich freue mich über Feedback oder Fragen.

Gruß,
Seppy
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Homematic und HomematicIP über Raspberrymatic (RaspPi 4 4GB) mit 2x HMLAN. Steuerung und Visualisierung durch OpenHAB2 auf RaspPi in Hutschienengehäuse im Sicherungskasten. Rund 100 Aktoren/Sensoren

- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung

Benutzeravatar
Cyrelian
Beiträge: 590
Registriert: 24. Sep 2015 17:55
Answers: 4

Re: VPN on demand auf iOS Geräten (iPhone)

Beitrag von Cyrelian »

WOW, sehr nice! :shock: .....muss ich doch direkt mal testen :D

michelm
Beiträge: 1
Registriert: 8. Mai 2016 10:18

Re: VPN on demand auf iOS Geräten (iPhone)

Beitrag von michelm »

Super, klappt wunderbar!

Benutzeravatar
seppy
Beiträge: 734
Registriert: 24. Sep 2015 20:25
Answers: 4
Wohnort: Bonn

Re: VPN on demand auf iOS Geräten (iPhone)

Beitrag von seppy »

Freut mich!


openhabforum.de
Homematic und HomematicIP über Raspberrymatic (RaspPi 4 4GB) mit 2x HMLAN. Steuerung und Visualisierung durch OpenHAB2 auf RaspPi in Hutschienengehäuse im Sicherungskasten. Rund 100 Aktoren/Sensoren

- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung

Chris81
Beiträge: 1
Registriert: 16. Sep 2016 11:39

Re: VPN on demand auf iOS Geräten (iPhone)

Beitrag von Chris81 »

Hallo ich habe ein Iphone 6 und IOS10 installiert,
mein Problem ist das sich die Datei, die ich mir zu sende sich nicht installiert!! liegt es am IOS10 oder sonst eine Idee?
Mit freundlcieh Grüßen
Chris

Benutzeravatar
seppy
Beiträge: 734
Registriert: 24. Sep 2015 20:25
Answers: 4
Wohnort: Bonn

Re: VPN on demand auf iOS Geräten (iPhone)

Beitrag von seppy »

Hi,
ich kann das Problem noch nicht nachstellen, da ich noch kein IOS 10 Device habe. Sobald ich eins im Zugriff habe werde ich testen.

Gruß
Seppy


openhabforum.de
Homematic und HomematicIP über Raspberrymatic (RaspPi 4 4GB) mit 2x HMLAN. Steuerung und Visualisierung durch OpenHAB2 auf RaspPi in Hutschienengehäuse im Sicherungskasten. Rund 100 Aktoren/Sensoren

- Abgesichert durch APC USV
- Bewässerungssteuerung mit Hunter Magnetventilen (HM-LC-Sw4-DR)
- Beleuchtungssteuerung Innen und Aussen (HM-LC-Sw4-DR + HM-LC-SW1-FM + HMW-IO-12-SW7-DR)
- Rolladensteuerung mit Beschattungsautomatik über Temperaturdifferenzsensor (HM-LC-Bl1PBU-FM)
- Wetter und Unwetterinformationen von wunderground
- Benachrichtigung der Bewohner via Pushover
- Multimediawand und Dreambox Steuerung (HM-LC-SW1-FM)
- Heizungssteuerung mit Komfort und Energiesparfunktionen (HM-CC-RT-DN + HM-Sec-SC-2 + HMIP-eTRV-2)
- Werkstatt Kompressorsteuerung (HMW-IO-12-SW7-DR)
- Weihnachtsbeleuchtung außen
- Präsenzerkennung über Geolocation (iCloud Binding), iBeacon und WLAN (Unifi Binding)
- Philips HUE & Tasmota Devices (Tuya) Einbindung

Antworten