Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.
Kommentar: Formatierung bereinigt

...

...

...

...

...

...

...

Inhalt
outlinetrue
indent0px
stylenone

...

iOS

 

Mit VPN on-demand und z. B. einem VPN-Server wie der Fritz.Box kann ein automatischer VPN-Aufbau bei Start der Loxone App oder auch anderen Apps für NAS, IPCam usw. durchgeführt werden. Zu beachten ist, dass sich die Konfiguration je nach iOS-Version unterscheidet.

...

https://developer.apple.com/library/ios/featuredarticles/iPhoneConfigurationProfileRef/Introduction/Introduction.html 

iOS ab Version 9 mit IPSec (z. B. Fritzbox)

 

Info

Getestet unter iOS 11.0.2

 

Mit diesem Profil wird automatisch eine VPN-Verbindung aufgebaut, wenn ein Server in eigenen Netzwerk angesprochen wird. Achtung! Das funktioniert ab iOS 10 nur noch mit Domainnamen (FQDN) und nicht mehr mit IP-Adressen! Es muss sich hier nicht zwangsläufig um einen auflösbaren DNS-Namen handeln, aber dieser DNS Name ist entscheidend, um über die "on-demand" Regel im iOS das VPN aufzubauen.

Befindet man sich im eigenen WLAN wird keine VPN-Verbindung verwendet bzw. die bestehende Verbindung automatisch beendet.

Als erstes einen neuen VPN Benutzer für das iPhone auf der Fritzbox im Menü "Internet", "Freigaben", "VPN" erstellen. Dann "Fernzugang für einen Benutzer einrichten" auswählen. Dann "Name" und "Kennwort" eingeben und NUR den Haken bei "VPN" setzen. Anschließend sich die Konfiguration anzeigen lassen und das Pop-Up Fenster offen lassen.

Folgende Informationen werden benötigt:

...

UPDATE: Nutzt man im Browser und anderen Apps die lokalen DNS-Namen hat man das Problem, dass über das VPN nicht der DNS-Server des VPN-Netzes befragt wird, sondern der globale. Dies hat zur Folge, dass die lokalen Domains über das VPN nicht aufgelöst werden und so nicht erreichbar sind. Eine weitere Option "RequiredDNSServers" sorgt dafür, dass über das VPN auch der dort angegebene DNS-Server befragt wird und die DNS-Auflösung klappt.

 

Codeblock
languagexml
themeConfluence
title.mobileConfigmobileconfig
<?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>PayloadContent</key>
	<array>
		<dict>
			<key>IPSec</key>
			<dict>
				<key>AuthenticationMethod</key>
				<string>SharedSecret</string>
				<key>OnDemandEnabled</key>
				<integer>1</integer>
				<key>OnDemandRules</key>
				<array>
				<!-- Turn off VPN if on our WiFi network -->
				<dict>
					<key>InterfaceTypeMatch</key>
					<string>WiFi</string>
					<key>SSIDMatch</key>
					<array>
						<string>HIER-MEINE-HOME-SSID-EINTRAGEN</string>
					</array>
					<key>Action</key>
					<string>Disconnect</string>
				</dict>
				<!--Rule to turn on VPN -->
				<dict>
					<key>Action</key>
					<string>EvaluateConnection</string>
					<key>ActionParameters</key>
					<array>
						<dict>
							<key>Domains</key>
							<array>
								<string>HIER-INTERNAL-DNS-NAMEN-DES-MINISERVERS-EINTRAGEN</string>
							</array> 
							<key>DomainAction</key>
							<string>ConnectIfNeeded</string>
                            <key>RequiredDNSServers</key>
                                <array>
                                    <string>LOKALE-IP-DER-FRITZBOX_DNSSERVERS</string>
                                </array>
						 </dict>
					</array>
				</dict>
				</array>

				<key>LocalIdentifier</key>
				<string>HIER-DEN-VPN-GRUPPENNAMEN-EINTRAGEN</string>
				<key>LocalIdentifierType</key>
				<string>KeyID</string>
				<key>RemoteAddress</key>
				<string>HIER-DEN-FQDN-DER-FRITZ!BOX-(DYN-DNS-NAMEN)-EINTRAGEN</string>
				<key>SharedSecret</key>
				<data>HIER-DAS-SHARED-SECRET-BASE64-ENCODED-EINTRAGEN</data>
				<key>XAuthEnabled</key>
				<integer>1</integer>
				<key>XAuthName</key>
				<string>HIER-DEN-VPN-USERNAMEN-EINTRAGEN</string>
				<key>XAuthPassword</key>
				<string>HIER-DAS-KENNWORT-DES-VPN-USERS-EINTRAGEN</string>
			</dict>
			<key>IPv4</key>
			<dict>
				<key>OverridePrimary</key>
				<integer>1</integer>
			</dict>
			<key>PayloadDescription</key>
			<string>Configures VPN settings</string>
			<key>PayloadDisplayName</key>
			<string>VPN Home (On-Demand)</string>
			<key>PayloadIdentifier</key>
			<string>com.home.vpn.A475B815-73F9-4560-8FBF-910C96609803</string>
			<key>PayloadOrganization</key>
			<string></string>
			<key>PayloadType</key>
			<string>com.apple.vpn.managed</string>
			<key>PayloadUUID</key>
			<string>A475B815-73F9-4560-8FBF-910C96609803</string>
			<key>PayloadVersion</key>
			<real>1</real>
			<key>Proxies</key>
			<dict/>
			<key>UserDefinedName</key>
			<string>VPN Home</string>
			<key>VPNType</key>
			<string>IPSec</string>
		</dict>
	</array>
	<key>PayloadDisplayName</key>
	<string>VPN Home (On-Demand)</string>
	<key>PayloadIdentifier</key>
	<string>com.home.vpn</string>
	<key>PayloadRemovalDisallowed</key>
	<false/>
	<key>PayloadType</key>
	<string>Configuration</string>
	<key>PayloadUUID</key>
	<string>9F7008CE-C0D8-477E-9ECF-21D18ACBFC4D</string>
	<key>PayloadVersion</key>
	<integer>1</integer>
</dict>
</plist>

...

Jetzt müssen in LoxoneConfig noch im Miniserver die korrekte interne und externe Adresse angegeben werden. Das Eintragen alleine in der App reicht nicht, da diese Daten bei der ersten Verbindung zum Miniserver wieder überschrieben werden.

  • Interne Adresse: Lokale IP-Adresse des Miniservers
  • Externe Adresse: Lokaler FQDN des Miniservers, z. B. miniserver.fritz.box

Ggf. muss noch ":" Port angehängt werden, sofern dieser von dem Standard-Port 80 abweicht. Die Einstellungen erreicht man über die Anwahl des Objektes "Miniserver" im Peripherie-Baum. 

 Ab jetzt sollte die VPN-Verbindung automatisch aufgebaut werden wenn man sich nicht im eigenen WLAN befindet und die LoxoneApp öffnet.

 

iOS ab Version 9 mit L2TP (z. B. Linux)

...

UPDATE: Nutzt man im Browser und anderen Apps die lokalen DNS-Namen hat man das Problem, dass über das VPN nicht der DNS-Server des VPN-Netzes befragt wird, sondern der globale. Dies hat zur Folge, dass die lokalen Domains über das VPN nicht aufgelöst werden und so nicht erreichbar sind. Eine weitere Option "RequiredDNSServers" sorgt dafür, dass über das VPN auch der dort angegebene DNS-Server befragt wird und die DNS-Auflösung klappt.

 

Codeblock
languagexml
themeConfluence
title.mobileconfig
<?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>PayloadContent</key>
    <array>
        <dict>
            <key>EAP</key>
            <dict/>
            <key>IPSec</key>
            <dict>
                <key>AuthenticationMethod</key>
                <string>SharedSecret</string>
                <key>OnDemandEnabled</key>
                <integer>1</integer>
            <key>OnDemandRules</key>
            <array>
                <!-- Turn off VPN if on our WiFi network -->
                <dict>
                    <key>InterfaceTypeMatch</key>
                        <string>WiFi</string>
                    <key>SSIDMatch</key>
                        <array>
                            <string>###YOUR_SSID###</string>
                        </array>
                    <key>Action</key>
                    <string>Disconnect</string>
                </dict>
                <!-- Catch-All rule to turn on VPN -->
                <dict>
                    <key>Action</key>
                       <string>EvaluateConnection</string>
                        <key>ActionParameters</key>
                        <array>
                            <dict>
                                <key>Domains</key>
                                <array>
                                    <string>###YOUR_TRIGGER_DOMAIN1###</string>
                                    <string>###YOUR_TRIGGER_DOMAIN2###</string>
                                </array>            
                                <key>DomainAction</key>
                                <string>ConnectIfNeeded</string>
                            	<key>RequiredDNSServers</key>
                                	<array>
                                	    <string>LOKALE-IP-DES-ROUTERS_DNSSERVERS</string>
                                	</array>
							 </dict>
                        </array>
                </dict>
            </array>
            </dict>
            <key>IPv4</key>
            <dict>
                <key>OverridePrimary</key>
                <integer>1</integer>
            </dict>
            <key>PPP</key>
            <dict>
                <key>AuthName</key>
                <string>###YOUR_USER_NAME###</string>
                <key>AuthPassword</key>
                <string>###YOUR_PASSWORD###</string>
                <key>CommRemoteAddress</key>
                <string>###YOUR_DYNDNS_DOMAIN###</string>
            </dict>
            <key>PayloadDescription</key>
            <string>Configures VPN settings, including authentication.</string>
            <key>PayloadDisplayName</key>
            <string>VPN (VPN-on-Demand)</string>
            <key>PayloadIdentifier</key>
            <string>de.ondemand.vpn.vpn1</string>
            <key>PayloadOrganization</key>
            <string>vpnondemand</string>
            <key>PayloadType</key>
            <string>com.apple.vpn.managed</string>
            <key>PayloadUUID</key>
            <string>4D338415-DEE1-41CC-80E6-0C7797B11AB9</string>
            <key>PayloadVersion</key>
            <integer>1</integer>
            <key>Proxies</key>
            <dict/>
            <key>UserDefinedName</key>
            <string>VPN-on-Demand</string>
            <key>VPNType</key>
            <string>L2TP</string>
        </dict>
    </array>
    <key>PayloadDescription</key>
    <string>Beispielkonfiguration für VPN-on-Demand mit
Linux L2TP IPSec</string>
    <key>PayloadDisplayName</key>
    <string>VPN-on-Demand</string>
    <key>PayloadIdentifier</key>
    <string>de.ondemand.vpn</string>
    <key>PayloadOrganization</key>
    <string>vpnondemand</string>
    <key>PayloadRemovalDisallowed</key>
    <false/>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <string>45FDB23D-E890-4E1F-9CE1-C9C938F86DC5</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
</dict>
</plist>

 

iOS bis Version 8 mit IPSec 

Info

Getestet unter iOS 8.1.1

...

Das VPN wird automatisch aufgebaut, sobald eine IP, die unter <key>OnDemandMatchDomainsAlways</key> in der .mobileConfig definiert ist, aufgerufen wird. Anmerkung: der Dictionary Eintrag "OnDemandMatchDomainsAlways" ist eigentlich "veraltet", jedoch habe ich mit den "neuen", >iOS 7.x "OnDemandRules" keine Ergebnisse erzielen können. 

  • Die folgenden Tags in der .mobileConfig-Datei mit den eigenen Werten anpassen
    • <key>OnDemandMatchDomainsAlways</key>
      <array>
      <string>ip-loxone-miniserver</string> IP des Miniserver eintragen, aufgelöste Hostnamen gehen wohl nicht
      <string>ip-zB-NAS</string>
      <string>ip-was-auch-immer</string>
      </array>

    • <key>LocalIdentifier</key>
      <string>Account</string>
    • <key>RemoteAddress</key>
      <string>xxxxxxxxxxxxxxxxx.myfritz.net oder DynDNS Eurer Fritzbox</string>
    • <key>SharedSecret</key>
      <data>
      Shared-Secret-Fritzbox-VPN-User-Config
      </data>
    • key>XAuthName</key>
      <string>Gruppenname</string>
    • <key>XAuthPassword</key>
      <string>Kennwort</string>
    • <key>UserDefinedName</key>
      <string>Profilname</string>
  • Kopiert den Inhalt in einen Texteditor und speichert das ganze ohne Formatierungen ab.
  • Irgenwie auf das iOS Gerät bringen - am besten als Anhang per Email
  • Die .mobileconfig jetzt am iDevice öffnen und das Profil installieren
  • WICHTIG - Einmal den VPN Tunnel manuell aufbauen!
  • Loxone App starten - VPN sollte automatisch aufgebaut werden.

 

Codeblock
languagexml
themeConfluence
title.mobileConfigmobileconfig
<?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>PayloadContent</key>
 <array>
 <dict>
 <key>IPSec</key>
 <dict>
 <key>AuthenticationMethod</key>
 <string>SharedSecret</string>
 <key>OnDemandEnabled</key>
 <integer>1</integer>
 <key>OnDemandMatchDomainsAlways</key>
 <array>
 <string>ip-loxone-miniserver</string>
 <string>ip-zB-NAS</string>
 <string>ip-was-auch-immer</string>
 </array>
 <key>LocalIdentifier</key>
 <string>Account</string>
 <key>LocalIdentifierType</key>
 <string>KeyID</string>
 <key>RemoteAddress</key>
 <string>xxxxxxxxxxxxxxxxx.myfritz.net oder DynDNS Eurer Fritzbox</string>
 <key>SharedSecret</key>
 <data>
 Shared-Secret-Fritzbox-VPN-User-Config
 </data>
 <key>XAuthEnabled</key>
 <integer>1</integer>
 <key>XAuthName</key>
 <string>Gruppenname</string>
 <key>XAuthPassword</key>
 <string>Kennwort</string>
 </dict>
 <key>IPv4</key>
 <dict>
 <key>OverridePrimary</key>
 <integer>1</integer>
 </dict>
 <key>PayloadDescription</key>
 <string>Configures VPN settings</string>
 <key>PayloadDisplayName</key>
 <string>VPN</string>
 <key>PayloadIdentifier</key>
 <string>dell-notebook.home.local.1CD74F05-3E56-48BB-9043-F94A2D496289.com.apple.vpn.managed.A475B815-73F9-4560-8FBF-910C96609803</string>
 <key>PayloadType</key>
 <string>com.apple.vpn.managed</string>
 <key>PayloadUUID</key>
 <string>A475B815-73F9-4560-8FBF-910C96609803</string>
 <key>PayloadVersion</key>
 <real>1</real>
 <key>Proxies</key>
 <dict/>
 <key>UserDefinedName</key>
 <string>Profilname</string>
 <key>VPNType</key>
 <string>IPSec</string>
 </dict>
 </array>
 <key>PayloadDisplayName</key>
 <string>vpn.home.local</string>
 <key>PayloadIdentifier</key>
 <string>dell-notebook.labor.local.1CD74F05-3E56-48BB-9043-F94A2D496289</string>
 <key>PayloadRemovalDisallowed</key>
 <false/>
 <key>PayloadType</key>
 <string>Configuration</string>
 <key>PayloadUUID</key>
 <string>9F7008CE-C0D8-477E-9ECF-21D18ACBFC4D</string>
 <key>PayloadVersion</key>
 <integer>1</integer>
 </dict>
 </plist>

 

Android 

VPN on demand kann man bei Android über einen kleinen Umweg lösen.

...