Zum Ende der Metadaten springen
Zum Anfang der Metadaten


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.

Mehr Informationen und Diskussionen im LoxForum: https://www.loxforum.com/forum/german/software-konfiguration-programm-und-visualisierung/2632-vpn-on-demand-mit-ios-ich-versteh-s-nicht-ganz

Weitere Quellen:

http://www.derman.com/blogs/Example-iOS-VPN-OnDemand-Rules

http://www.meintechblog.de/2015/02/vpn-on-demand-zwischen-iphone-und-fritzbox-einrichten/

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

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

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:

  • SSID des eigenen WLANs
  • Interner DNS-Namen des Miniservers, bei der Fritz-Box z.B. miniserver.fritz.box. Wildcards sind möglich, z. B. *.fritz.box
  • VPN Gruppenname, bei der Fritzbox identisch mit dem Benutzernamen
  • DynDNS-Namen des VPN-Servers, also z. B. der Fritz Box
  • Shared Secret
  • VPN Usernamen
  • VPN Passwort
  • lokale IP der Fritzbox/DNSServers

Das Shared Secret muss vor der Verwendung noch Base64-kodiert werden. Das kann man z. B. online erledigen unter https://www.base64encode.org/ (ASCII Zeichensatz einstellen).

Anschließend das unten stehende Template in einen Texteditor (z. B. Notepad) kopieren und an den Stellen, die mit HIER- beginnen, mit den eigenen Daten anpassen.

Die neue Datei unter einem Dateinamen mit der Endung .mobileconfig abgespeichern und sich per Email auf das iPhone senden. Hier dann die Datei öffnen und den ASnweisungen auf dem Bildschirm folgen. Es wird ein neues Profil installiert und dabei die VPN-Verbindung eingerichtet. Anschließend muss über Einstellungen zunächst manuell die VPN-Verbindung zum Router aufgebaut werden.

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.

.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>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)

Die vorstehenden Beispiele beziehen sich IPSec Verbindungen, die per XAuth arbeiten so wie auch die Fritzbox. Verwendet man dagegen z.B. das VPN-Setupscript auf einem Linuxsystem wie dem Loxberry, funktioniert dies nicht, da hier eine L2TP Verbindung aufgebaut wird, die eine Authentifizierung über PPP verwendet. Daher hier noch ein Template, was mit diesen Verbindungen funktioniert. Hierbei müssen die in ### eingeschlossenen Werte an Euer System angepasst werden. Wer sich mehr traut, kann auch die Namen der Verbindung noch anpassen. Welches hier die Werte sind, wurde in den bisherigen Beispielen ja schon behandelt.

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.

.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 

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.
.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>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 

oVPN

Covergestaltung

Bei der Verwendung von OpenVPN ist auch mit Android + 3rd Party App ein VPN-on-Demand möglich

Die App nennt sich "OpenVPN Client" mit der ID=it.colucciweb.openvpn

Tasker und Android-eigener VPN-Client


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

Man benötigt dazu die Apps Tasker und VpnCilla.

Über VpnCilla legt Ihr Euch eine Vpn-Verbindung an. Im Zusammenspiel mit einer Fritzbox ist die Einrichtung ganz einfach.

Damit die VPN-Verbindung bei jedem Start von Loxone gestartet wird (bzw. beim beenden geschlossen) benötigt Ihr die Tasker App.

Hier müsst Ihr als erstes zwei Tasks anlegen. Einen für das verbinden von VpnCilla und einen für das Schließen der VPN-Verbindung.

Im Beispiel habe ich die Tasks VPN connect bzw. VPN disconnect genannt.

Starten wir mit VPN connect: Als Aktionskategorie nimmt man "System"

Anschließend wählt man "Sende Intent"


Jetzt gebt Ihr folgende Werte ein:

bei Aktion: android.intent.action.MAIN
bei Typ: Default
bei MIME Typ: Optional
bei Daten: Optional
bei Extra: android.intent.extra.shortcut.NAME:Name_Eures_VPN-Verbindungsshortcut_in_VPN-Cilla
bei Extra: vpncilla.extra.FORCE:connect
bei Extra: Optional
bei Paket: com.gmail.mjm4456.vpncilla
bei Klasse: com.gmail.mjm4456.vpncilla.VpncList
bei Ziel: Activity

Das Ganze wiederholt Ihr jetzt für den zweiten Task (VPN disconnect). Lediglich in der zweiten Extra-Zeile gebt Ihr hier jetzt disconnect ein:

bei Extra: vpncilla.extra.FORCE:disconnect

Habt Ihr die beiden Tasks fertig, müsst Ihr nur noch ein neues Profile (App) anlegen ...




.... und darin alle Apps markieren, bei deren start eine VPN Verbindung aufgebaut werden soll.



Anschließend legt Ihr noch den Eingangstask fest.

Zum Schluss müsst Ihr noch den Ausgangstask festlegen (lange drücken).




Am Ende sollte es in etwa so aussehen.


Jetzt solte immer wenn Ihr die App anklickt eine VPN-Verbindung hergestellt werden.

 

Ein kurzer Hinweis zum Schluss: Die Anleitung hatte ich seinerzeit irgendwo aus dem Internet und entsprechend bei mir eingerichtet. Sie ist also nicht auf meienm Mist gewachsen, sondern hier nur von mir anhand meiner Einrichtung wiedergegeben.


13 Kommentare

  1. getestet unter IOS 9.0.2.  man muss allerdings die IP der Geräte als hostname in die .mobileConfig eintragen

  2. Hallo VPN Experten,

    was ist den nun der richtige Domainname meines Miniservers, irgendwie funktioniert der OnDemand Service perfekt mit Safari o.ä, aber sobald ich mich mit dem Miniserver verbinden will, aktiviert sich VPN nicht.

    Habe auch schon verschiedene Kombis versucht: IP.fritz.box, lxlXXB.fritz.box, Loxone Miniserver (Name für die APP),nix funktioniert.

    Irgendwie bekomme ich die Namensauflösung in der Config nicht hin.

    Ich stelle nur fest, sobald ich die App am iPhone öffne, möchte sich diese mit der internen IP Adresse verbinden.

    Hat schon jemand Erfahrung mit iOS 10.3 und Loxone App 7.4? 

    Vielleicht kann mir einer von euch helfen

     

    Grüße aus dem Bayerwald

     

    1. Hi, bei mir hat sich weder mit iOS 10.3 noch mit Loxone App 7.4 was geändert, es funktioniert wie immer. Ich benutze einen Hostnamen für die Verbindung von extern, das funktioniert mit dem VPN-Profile unter iOS einwandfrei bei mir. Allerdings baut sich das VPN nicht ab wenn ich dann im Heimnetz bin solange die Loxone App im Hintergrund läuft. Aber das hat nicht wirklich Auswirkungen, es stört mich nur die Anzeige "VPN" in der Statusbar.

       

  3. Servus Günther,

    und wie schaut bei dir dann der Hostname aus, wie ist der zusammengesetzt?

    Hast du das template von der mobileconfig so aus dem Forum übernommen, oder noch für dich angepasst? (ausser die Zugangsdaten für VPN)

  4. Wenn die OnDemand Rules korrekt angegeben sind, wird die Verbindung auch sofort getrennt wenn Du ins HeimWLAN kommst. Es würde dort auch gar nicht erst aufgebaut, wenn Du den Domainnamen ansprichst.

    Es muss der DNS-Name des MiniServer sein. Diesen siehst Du in der Heimnetzübersicht in der Fritzbox. Des Weiteren musst Du diesen FQDN in der Config unter externe Adresse eintragen, da die App sich diese Informationen aus dem MiniServer holt. Bei interner Adresse die IP des MiniServer angeben.

    Fragen und Disskusionen bitte aber im Forum stellen, da ist der richtige Platzt dafür. Da gibt es auch genau für dieses Thema sehr erschöpfende Beiträge

  5. Alles klar,

    werd ich mal machen, danke euch

  6. Jetzt hats gefunzt, danke nochmal

  7. Hallo,

     

    ich musste ein wenig herumspielen um das perfekte Ergebnis zu bekommen, es gab vor allem Probleme beim Abbau des VPN wenn ich in mein Hein-WLAN kam. Nun hab ich aber verstanden wie die mobileconfig funktioniert (Reihenfolge der Einträge ist relevant) und ich wollte daher mal meine config posten (iOS 10.3.1):

    <?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>LocalIdentifierType</key>
                        <string>KeyID</string>
                        <key>SharedSecret</key>
                        <data>
                            top secret
                        </data>
                        <!-- VPN-On-Demand Codeblock -->
                        <key>OnDemandEnabled</key>
                        <integer>1</integer>
                        <key>OnDemandRules</key>
                        <array>
                            <dict>
                                <!-- VPN bei ausgewählten WLAN-Netzen deaktivieren -->
                                <key>Action</key>
                                <string>Disconnect</string>
                                <key>InterfaceTypeMatch</key>
                                <string>WiFi</string>
                                <key>SSIDMatch</key>
                                <array>
                                    <string>GW Home</string>
                                </array>
                            </dict>
                            <!-- VPN beim Zugriff auf Heimnetz-Adressen aufbauen -->
                            <dict>
                                <key>Action</key>
                                <string>EvaluateConnection</string>
                                <key>ActionParameters</key>
                                <array>
                                    <dict>
                                        <key>Domains</key>
                                        <array>
                                            <!-- put your servers here -->
                                            <string>loxone.yourdomain.com</string>
                                        </array>
                                        <key>DomainAction</key>
                                        <string>ConnectIfNeeded</string>
                                    </dict>
                                </array>
                            </dict>
                            <dict>
                                <!-- VPN Default state -->
                                <key>Action</key>
                                <string>Disconnect</string>
                            </dict>
                        </array>
                        <!-- VPN-On-Demand Codeblock ENDE-->
                    </dict>
                    <key>IPv4</key>
                    <dict>
                        <key>OverridePrimary</key>
                        <integer>0</integer>
                    </dict>
                    <key>PPP</key>
                    <dict>
                        <key>AuthName</key>
                        <string>gwieser</string>
                        <key>AuthPassword</key>
                        <string>-------TODO---------</string>
                        <key>CommRemoteAddress</key>
                        <string>1.2.3.4</string>
                    </dict>
                    <key>PayloadDescription</key>
                    <string>VPN-Einstellungen konfigurieren</string>
                    <key>PayloadDisplayName</key>
                    <string>VPN</string>
                    <key>PayloadIdentifier</key>
                    <string>com.apple.vpn.managed.A4ED8F09-D5E5-41A3-A479-9E9665418AC3</string>
                    <key>PayloadType</key>
                    <string>com.apple.vpn.managed</string>
                    <key>PayloadUUID</key>
                    <string>3C9FDDFA-7253-4B4A-8263-2C3E1E3F8B07</string>
                    <key>PayloadVersion</key>
                    <integer>1</integer>
                    <key>Proxies</key>
                    <dict>
                        <key>HTTPEnable</key>
                        <integer>0</integer>
                        <key>HTTPSEnable</key>
                        <integer>0</integer>
                    </dict>
                    <key>UserDefinedName</key>
                    <string>creative-it</string>
                    <key>VPNType</key>
                    <string>L2TP</string>
                </dict>
            </array>
            <key>PayloadDescription</key>
            <string>Privat-VPN mit diversen lokalen Systemen</string>
            <key>PayloadDisplayName</key>
            <string>VPN Privat</string>
            <key>PayloadIdentifier</key>
            <string>n005034.yourdomain.com.85D98A6D-F9A1-44F6-812D-FC2A23B6E223</string>
            <key>PayloadOrganization</key>
            <string>yourdomain</string>
            <key>PayloadRemovalDisallowed</key>
            <false/>
            <key>PayloadType</key>
            <string>Configuration</string>
            <key>PayloadUUID</key>
            <string>19245848-98E3-4E84-9D0C-5B0DFD04C549</string>
            <key>PayloadVersion</key>
            <integer>1</integer>
        </dict>
    </plist>
    
    
  8. Tom sagt:

    Kleine Ergänzung für alle, die die Fritz Box hinter einem Telekom Speedport Hybrid Router verwenden:

    Da in dem Fall die Fritz Box wohl die öffentliche IP Adresse nicht kennt, funktioniert der Fritz Box eigene DynDNS Service (myFritz) nicht. Man muss daher einen anderen DynDNS Service verwenden und direkt auf dem Speedport Hybrid Router registrieren. Anstelle der myFritz... Adresse muss dann in der mobileconfig entsprechend der hostname, den man im DynDNS vergeben hat, eingetragen werden.

    Nachdem ich das begriffen hatte, funktioniert mit Jan Wachsmuth's Anleitung und seinem Template (hier im 2. Kommentar verlinkt) der VPN Zugang einwandfrei!

    Vielen Dank für die tolle Arbeit!

  9. Hi,

     

    ich versuche vergeblich VOD nach dem Template von Günther einzurichten, es gelingt mir aber nicht. Es wird zwar eine VPN aufgbaut, diese scheint aber nicht richtig zu sein, da ich nicht auf den MS zugreifen kann.

    Muss ich etwas noch beachten? Ich habe hier, die Frage bereits gestellt. 

    Vielen Dank im Voraus.

  10. Michael Jani sagt:

    Hallo, hat jemand eventuell einen Tipp wie ich VPN on-demand mit OpenVPN auf dem iPhone ans laufen bekomme? Die normale VPN Verbindung geht. Nur das notwendige Profil für VoD bekomme ich leider nicht ans laufen.

    Eingelesen hatte ich mich hier: https://docs.openvpn.net/faqs/faq-regarding-openvpn-connect-ios/https://www.boernyblog.de/ios-vpn-on-demand-mit-fritzbox/https://knx-user-forum.de/forum/öffentlicher-bereich/knx-eib-forum/38179-howto-vpn-on-demand-unter-ios-mit-openvpn-connect

    Leider bin ich mit diesen Tipps noch nicht ins Ziel gekommen.

  11. Stephan sagt:

    Hallo zusammen und vielen Dank für die Anleitung. Bei mir funktioniert das VPN on demand wunderbar, das einzige was mich nervt ist der langsame Verbindungsaufbau. Wenn ich die App öffne, dauert es bei mir ca. 20 Sekunden bis das VPN aufgebaut ist und sich die App anfängt mit dem Miniserver zu verbinden. Das nervt, vor allem wenn jemand an der Tür steht und klingelt. Meist sind die Leute bereits wieder weg, wenn ich endlich mit ihnen sprechen könnte. Wenn ich das VPN manuell aufbaue, dauert es ca. 8 Sekunden. 

    Ist das normal? Gibt es eine Möglichkeit das zu beschleunigen?