Eine frohe Adventszeit wünscht Apfeltalk
  • Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Unser Dezember-Wettbewerb steht unter dem Thema Zeitreise - Macht mit und beteiligt Euch mit Euren kreativen Fotos! Zum Wettbewerb --> Klick

[iOS 10] VPN on demand - Fritzbox

Vollpfosten01

Transparent von Croncels
Registriert
20.09.15
Beiträge
310
Scheinbar hab ich einen Fehler drin, es funktioniert irgendwie nicht. Er findet keine VPN Verbindung
 

hummelmm

Golden Delicious
Registriert
15.05.18
Beiträge
6
Hallo, ich versuche mit einem Codeblock einzurichten, dass bei Aufruf bestimmter Domains (im Beispiel domain.de) aus dem Mobilfunknetz VPN gestartet wird. Möchte gern, wenn ich Banking betreibe VPN nutzen. So habe ich versucht das zu realisieren, aber es funktioniert nicht. Habe ich einen Denkfehler?

<dict>
<!-- VPN im Mobilfunknetz bei bestimmten Domains aufbauen -->
<key>InterfaceTypeMatch</key>
<string>Cellular</string>
<key>DNSDomainMatch</key>
<array>
<string>domain.de</string>
<string>*.domain.de</string>
</array>
<key>Action</key>
<string>Connect</string>
</dict>
 

ottomane

Golden Noble
Registriert
24.08.12
Beiträge
16.437
Meinem Verständnis nach wird so geprüft, ob domain.de die Suchdomain des aktuellen Netzwerks des iPhones ist.

Siehe https://www.apple.com/hk/en/ipad/business/docs/iOS7_DeploymentTechncialGuide_FF_EN.pdf:

  • DNSDomainMatch. Optional. An array of search domains as strings. If the configured DNS search domain of the current primary network is included in the array, this property will match. Wildcard prefix (*) is supported; e.g., *.example.com

    !would match anything.example.com.
Wikipedia zu Search Domain: https://en.wikipedia.org/wiki/Search_domain

So kann das nicht funktionieren. Aber ich habe keine bessere Idee ;)
 

hummelmm

Golden Delicious
Registriert
15.05.18
Beiträge
6
da war er auch schon, der Denkfehler :) Danke. Ich werd nochmal ein wenig probieren, aber mir fällt auch nix ein richtig ein.
habe erst versucht, hier die Domains zu ändern, aber vermutlich wird dabei die Erreichbarkeit geprüft und VPN im Falle des Nicht-Erreichens aktiviert:

<key>Action</key>
<string>EvaluateConnection</string>
<key>ActionParameters</key>
<array>
<dict>
<key>Domains</key>
<array>
<string>*.local</string>
<string>*.fritz.box</string>
<string>fritz.box</string>
</array>
<key>DomainAction</key>
<string>ConnectIfNeeded</string>
</dict>
</array>
</dict>

Das Problem, das ich sehe ist, dass laut https://developer.apple.com/library....html#//apple_ref/doc/uid/TP40010206-CH1-SW36 "Domains" "ActionParameters" voraussetzt, was widerum nur genutzt werden kann, wenn "EvaluateConnection" gesetzt ist. Und bei "DomainAction" kann ich nur "ConnectIfNeeded" oder "NeverConnect" verwenden...für meine Zwecke müsste ich statt ConnectIfNeeded einfach nur Connect setzen können oder?
Habe ich wieder einen Denkfehler?
 

ottomane

Golden Noble
Registriert
24.08.12
Beiträge
16.437
So verstehe ich das auch, aber das ist nur Oberflächenwissen.
 

Ijon Tichy

Clairgeau
Registriert
21.11.06
Beiträge
3.723
Das Problem, das ich sehe ist, dass laut https://developer.apple.com/library....html#//apple_ref/doc/uid/TP40010206-CH1-SW36 "Domains" "ActionParameters" voraussetzt, was widerum nur genutzt werden kann, wenn "EvaluateConnection" gesetzt ist. Und bei "DomainAction" kann ich nur "ConnectIfNeeded" oder "NeverConnect" verwenden...für meine Zwecke müsste ich statt ConnectIfNeeded einfach nur Connect setzen können oder?
Habe ich wieder einen Denkfehler?

Das Problem ist:

ConnectIfNeeded—The specified domains should trigger a VPN connection attempt if domain name resolution fails, such as when the DNS server indicates that it cannot resolve the domain, responds with a redirection to a different server, or fails to respond (timeout).

Das ist so gedacht, dass die betreffenden Domains nur übers VPN erreichbar sind und die Domain-Namen sind z.B. nur von einem Domain-Server im Firmennetzwerk auflösbar. Es wird also geprüft, ob die Domains vom aktuellen DNS aufgelöst werden können. Nur wenn das nicht geht, wird die VPN-Verbindung aufgebaut. ConnectIfNeeded heißt also "Verbinden, wenn zur Namensauflösung erforderlich".

Leider fällt mir keine Variante ein, die für den von dir gewünschten Einsatzzweck geeignet wäre. Mir scheint, dass OnDemandMatchDomainsAlways dafür geeignet gewesen wäre, aber das wird schon seit iOS 7 nicht mehr unterstützt.

Was bleibt? VPN immer ein, wenn du nicht zuhause bist. Oder daran denken, es manuell einzuschalten, bevor du dich mit den betreffenden Domains verbindest.

Ich würde z.B. sehr gerne das On-Demand-VPN so konfigurieren können, dass es sich bei unverschlüsselten WLAN-Verbdinungen einschaltet, aber leider kann man nicht zwischen verschlüsseltem und unverschlüsseltem WLAN unterscheiden. Ich werde es daher wohl so machen, dass VPN grundsätzlich aktiviert wird, wenn ich in einem fremden WLAN bin. (Im Moment verwende ich nur die Domains.)
 

hummelmm

Golden Delicious
Registriert
15.05.18
Beiträge
6
Ja, genau so verstehe ich es auch (es müsste sowas wie AlwaysConnect geben statt ConnectIfNeeded).
Hab aus den vorgegebenen Regeln jedenfalls keine zusammengebastelt bekommen, um das was ich mir vorstelle zu realisieren. Im Mobilfunknetz wäre ich aus verschiedenen Gründen (Datenvolumen, Geschwindigkeit..) gern nur dann im VPN, wenn es der Zweck rechtfertigt...z.B. beim Banking o.ä.
 

Ijon Tichy

Clairgeau
Registriert
21.11.06
Beiträge
3.723
Geschwindigkeit ok, aber das Datenvolumen ist ja dasselbe, ob über VPN oder nicht.

Möglicherweise lässt sich was mit Per-App VPN machen, aber das habe ich selbst noch nie ausprobiert.
 

hummelmm

Golden Delicious
Registriert
15.05.18
Beiträge
6
ja, damit beschäftige ich mich mal wann anders. hab jetzt einen Trigger auf eine ins Leere laufende Subdomain eingebaut und als Shortcut auf den Homescreen gepflanzt. So kann ich VPN wenigstens schnell und unkompliziert starten..:

<!-- VPN beim Zugriff auf bestimmte Heimdomains aufbauen -->
<dict>
<key>Action</key>
<string>EvaluateConnection</string>
<key>ActionParameters</key>
<array>
<dict>
<key>Domains</key>
<array>
<string>VPN-An.rennt-ins-leere.de</string>
</array>
<key>DomainAction</key>
<string>ConnectIfNeeded</string>
</dict>
</array>
</dict>

Nicht schick, aber geht schneller als alles manuell zu starten.
 

Ijon Tichy

Clairgeau
Registriert
21.11.06
Beiträge
3.723
Pfiffig! :)

Schade, dass man den VPN-Schalter nicht ins Kontrollzentrum aufnehmen kann.
 
  • Like
Reaktionen: ottomane

Branka

Golden Delicious
Registriert
22.01.15
Beiträge
10
Hallo,

ich habe mein Profil erfolgreich eingerichtet. Prinzipiell funktioniert der VPN Aufbau auch (sowohl im WLAN als auch im Mobilfunknetz) bei Aufruf der fritz.box Adresse.

Leider funktioniert das automatische Herstellen des Tunnels im fremden WLAN nicht. Hierzu hatte ich im Code folgende Zeilen vorgesehen:

<key>InterfaceTypeMatch</key>
<string>WiFi</string>
<key>Action</key>
<string>Connect</string>

In WLANs in denen die VPN Verbindung nicht aufgebaut werden soll:
<key>InterfaceTypeMatch</key>
<string>WiFi</string>
<key>SSIDMatch</key>
<array>
<string>wlan1</string>
<string>wlan2</string>
</array>
<key>Action</key>
<string>Disconnect</string>


Kann mir jemand weiterhelfen was ich falsch mache?

Danke und Grüße

branka
 

Ijon Tichy

Clairgeau
Registriert
21.11.06
Beiträge
3.723
Kann jetzt keinen Fehler sehen. Sind die dict Tags korrekt drumrum? XML wohlgeformt?
 

Branka

Golden Delicious
Registriert
22.01.15
Beiträge
10
Kann jetzt keinen Fehler sehen. Sind die dict Tags korrekt drumrum? XML wohlgeformt?
Ich kann keinen Fehler finden. Der ganze Block sieht so aus:

<key>OnDemandEnabled</key>
<integer>1</integer>
<key>OnDemandRules</key>
<array>
<!-- VPN beim Zugriff auf Heimnetz-Adressen aufbauen -->
<dict>
<key>Action</key>
<string>EvaluateConnection</string>
<key>ActionParameters</key>
<array>
<dict>
<key>Domains</key>
<array>
<string>*.local</string>
<string>*.fritz.box</string>
<string>fritz.box</string>
</array>
<key>DomainAction</key>
<string>ConnectIfNeeded</string>
</dict>
</array>
</dict>
<dict>
<!-- VPN bei ausgewählten WLAN-Netzen deaktivieren -->
<key>InterfaceTypeMatch</key>
<string>WiFi</string>
<key>SSIDMatch</key>
<array>
<string>wlan</string>
<string>wlan1</string>
</array>
<key>Action</key>
<string>Disconnect</string>
</dict>
<dict>
<!-- VPN bei aktiver WLAN-Verbindung aktivieren -->
<key>InterfaceTypeMatch</key>
<string>WiFi</string>
<key>Action</key>
<string>Connect</string>
</dict>
<dict>
<!-- VPN im Mobilfunknetz nicht aktivieren -->
<key>InterfaceTypeMatch</key>
<string>Cellular</string>
<key>Action</key>
<string>Disconnect</string>
</dict>
<dict>
<!-- VPN Default state -->
<key>Action</key>
<string>Disconnect</string>
</dict>
</array>
 

ottomane

Golden Noble
Registriert
24.08.12
Beiträge
16.437
Ich bin gerade nur mobil, daher geraten: Überschreibt die untere die obere Regel? Vielleicht funktioniert es, wenn du die Reihenfolge tauschst.

Statt

Außer
Immer an

Immer an
Außer
 

Ijon Tichy

Clairgeau
Registriert
21.11.06
Beiträge
3.723
Ich glaube, der letzte Eintrag (Default State) sollte ganz oben stehen, sonst wird nach Auswertung aller Regeln zuletzt immer Disconnect das Ergebnis sein. Die Reihenfolge der Regeln ist relevant!

Falls das nicht hilft (glaube aber schon), würde ich mal die Domain-Regeln versuchsweise entfernen.
 

waffi

Erdapfel
Registriert
09.08.18
Beiträge
1
Hat das jemand von euch mit OpenVPN hingekriegt? Zuhause hab ich einen Raspberry mit VPN eingerichtet, gegen Werbung und Tracking. Geniale Sache aber leider verliert mein iPhone ab und zu die Verbindung. Jetzt möchte ich gerne eine Conf erstellen nur weiss ich nicht wie wo ich die Keys herkriege. Hab nur die .normale VPN Conf die ich aufs iPhone laden kann.

Danke!
 

Branka

Golden Delicious
Registriert
22.01.15
Beiträge
10
Ich glaube, der letzte Eintrag (Default State) sollte ganz oben stehen, sonst wird nach Auswertung aller Regeln zuletzt immer Disconnect das Ergebnis sein. Die Reihenfolge der Regeln ist relevant!

Falls das nicht hilft (glaube aber schon), würde ich mal die Domain-Regeln versuchsweise entfernen.
Habe nun den Default StateEintrag nach oben gestellt. Solange die Action auf Disconnect steht, verändert sich nichts.
Stelle ich es allerdings auf Connect, so baut sich der Tunnel immer auf, auch im Heimnetz...
 

ice2man

Gast
Hallo Leute, ich greife den vorhanden Thread einmal auf.

Ich habe mir eine VPN Verbindung zu meiner FritzBox mit meinem iPhone hergestellt um fritz Fon nutzen zu können. Klappt auch seit dem letzten Update super!
Mein Problem: ich muss die VPN Verbindung immer wieder aktivieren, bei jedem Netzwechsel, Neustart usw. das nervt extrem. Kann mir jemand ein Skript erstellen, sodass das iPhone IMMER die VPN Verbindung nutzt, egal in welchem Netz, egal wo?

Ich suche seit Tagen danach, aber es gibt nur Skripte wo in bestimmten Netzen keine Verbindung aufgebaut wird usw. Sie soll einfach immer bestehen, außer wenn ich sie deaktiviere.
Warum gibt das iOS das nicht von Haus aus her...

Danke