Das VPN-Sahnehäubchen ist endlich drauf!

Vor knapp einem Jahr habe ich in diesem Blogpost beschrieben, wie man auf dem iPhone eine VPN on Demand Verbindung einrichtet. Allerdings gelang es mir nicht das Profil so anzupassen, dass ich auch beim Aufruf von lokalen Adressen außerhalb meines Netzwerkes automatisch eine VPN-Verbindung aufbaut. Mit Hilfe eines netten Lesers, Markus, hat es endlich geklappt!

Die Lösung ist, den Block “VPN beim Zugriff auf Heimnetz-Adressen aufbauen” VOR den Block “VPN im Mobilfunknetz nicht aktivieren” zu setzen.

Vielen Dank an Markus dafür!

Die Konfiguration und die Reihenfolge der CodeBlöcke in der Profildatei muss dann so aussehen:

<!– VPN-On-Demand Codeblock –>
<key>OnDemandEnabled</key>
<integer>1</integer>
<key>OnDemandRules</key>
<array>
<dict>
<!– VPN bei ausgewählten WLAN-Netzen deaktivieren –>
<key>InterfaceTypeMatch</key>
<string>WiFi</string>
<key>SSIDMatch</key>
<array>
<string>SSID1</string>
<string>SSID2</string>
<string>SSID3</string>
<string>SSID4</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>
<!– 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 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>
<!– VPN-On-Demand Codeblock ENDE–>
Share:

18 Gedanken zu „Das VPN-Sahnehäubchen ist endlich drauf!“

  1. Vielen Dank! Bei einem Aufruf einer Webseite unter server.domain.local funktioniert das “On Demand” Aufbauen der Verbindung (Safari). Beim Aufbauen einer RDP Verbindung mit Microsoft RD Client leider nicht.

    Antworten
    • Hallo Holger,
      leider habe ich keine Erfahrung mit der Verwendung des RDP clients.
      Ich nutze VNC, um remote auf meine Rechner (ein Mac und ein Rasberry Pi) im Heimnetz zugreifen zu können, nachdem die VPN-Verbindung aufgebaut worden ist. Zwar muß ich dazu erst den VNC client auf dem iPhone starten, aber das funktioniert tadellos. Tut mit Leid, daß ich dir an dieser Ecke nicht weiterhelfen kann.

    • Das ist mir RDP eigentlich das gleiche wie über VNC. Versteh ich das richtig, dass es bei dir funktioniert mit dem automatischen Aufbau der Verbindung oder musst du diese manuell aufbauen?

    • Hallo Holger,

      hast du das mittlerweile lösen können?
      Wenn ich es per Safari mache, geht der VPN auf, via RDP Client oder anderer Appa nicht 🤷🏻‍♂️

      Danke

  2. Danke für den tollen Codeblok…
    Zwei fragen dazu noch was muss da jeweils an den Anfang und ans Ende der Datei (hab keinen MAC und daher auch Conigurations Tool ;)

    Zum anderen wie sieht der String aus, wenn ich nicht auf frtiz.box gehe sondern eine x beliebige IP im Netzwerk (z.Bsp. Synology DiskStation die hat dann ja auch noch einen Port mit zu integrieren).

    Viele Grüße Theo

    Antworten
  3. Hallo Theo,
    du musst nur die Datei mit dem Suffix .mobileconfig versehen (z.B. VPN-on-demand.mobileconfig) und dir selbst als Anhang per Email aufs iPhone schicken. Wenn du dort dann den Anhang öffnest, wird er als Profildatei erkannt und kann installiert werden.

    Zur anderen Frage kann ich nur raten. Probier einfach mal den im String mit anzugeben, bspw.
    meine-synostation.fritz.box[PORT].

    Antworten
  4. Hallo Theo,

    einen Eindruck wie eine mobileconfig Datei grundsätzlich aufgebaut ist, kannst du dir hier holen:
    https://gist.github.com/noestreich/60f4248564e4801365183b79dbfce186 (nicht mein Gist).

    Wenn du bei diesem Thema in die Tiefe gehen möchtest, solltest du mal auf developer.apple.com vorbeischauen. Unter dem nachfolgenden Link ist zum Beispiel ersichtlich, dass das On-Demand-VPN bei Apple nur auf Basis von Domain Namen funktioniert. Leider kannst du folglich nicht einfach eine IP-Adresse nutzen (https://developer.apple.com/library/archive/featuredarticles/iPhoneConfigurationProfileRef/Introduction/Introduction.html#//apple_ref/doc/uid/TP40010206-CH1-SW36).

    Ich habe selbst kein Produkt von Synologie, aber wenn du gerne einen eigenen DNS-Server aufsetzen möchtest und dein All-In-One Router dies nicht kann, dann ist dies zum Beispiel mit dem NAS realisierbar (https://www.synology.com/de-de/knowledgebase/DSM/tutorial/Application/How_to_set_up_your_domain_with_Synology_DNS_Server).

    LG Kevin

    Antworten
  5. Hey kann mir jemand helfen?
    Ich habe mir ein On-Demand VPN eingerihtet, das bis aufs Privatwlan in jedem WLAN und Mobilnetz aktiv ist.

    Allerdings würde ich gerne dass bei einer bestimmten URL das VPN NICHT aufgebaut wird.

    Geht sowas? also eine bestimmte Domain soll nicht durchgerouted werden bzw. dort das VPN getrennt werden

    Antworten
  6. Danke für den tollen Post. Soweit geht alles bis auf eine Aufnahme und ich bekomme es nicht hin:
    Wenn ich mit Mobilfunk verbunden bin und eine IP Adresse auf dem Heimnetz wähle (z.B. 10.0.0.100 für mein NAS), dann baut sich keine automatische VPN Verbindung auf.

    Ich habe so einen Eintrag im Profil gemacht:

    Action
    EvaluateConnection
    ActionParameters

    Domains

    10.0.0.*

    DomainAction
    ConnectIfNeeded

    Das geht scheinbar nicht? Muss man da zwingend DNS Namen nutzen (die ich nicht habe)??

    Antworten
    • Hallo Pascal,
      leider ist es so, da hier DNS Namen in einem String Array angegeben werden müssen. Nachdem ich mir über Weihnachten einen Router zwischen die Fritzbox und mein Netzwerk gebaut habe um zwischen verschiedenen VLANs die Datenpakete übertragen zu können kann ich auch nicht mehr durch die Eingabe von z.B. “fritz.box” in Safari direkt auf die FB zugreifen. Die Eingabe der IP-Adresse funktioniert nicht. Da suche ich auch noch einer Lösung (wenn ich wieder etwas Zeit habe).

      Viele Grüße
      Fozi

    • Hallo Fozi,

      Danke für die Info. Das ist in der Tat richtig blöde. Ich habe einen Mikrotik Router und betreibe im Heimnetzwerk keinen DNS Server weil ich es einfach halten will und auch gerade wenn man keine Redundanz aufbauen kann es dann so sicherer ist.
      Muss ich dafür jetzt echt einen Nameserver aufsetzen? Das doch Mist.
      Aber alles was ich bisher probiert hatte ging nicht oder lies sich noch nicht mal als Profil installieren.
      Wäre doch zu schön wenn man die IP vom Nas eingibt bzw. in FileBrowser öffnet und sich der VPN aufbaut. Bei mir primär erstmal bei einer Cellular Verbindung und an meinem LTE Hotspot.

      Wenn jemand eine Lösung finden sollte…. dann her damit. Oder müssen wir jetzt echt mit Raspi einen DNS bauen…..?

      Pascal

  7. Was für ein Zufall! Ich habe mir auch in mein Netzwerk einen Mikrotik Router (RB3011) vor die Fritzbox gebaut, um die VLANS miteinander kommunizieren zu lassen. Die FB macht stellt nur noch den WAN Zugang bereit, stellt den DNS und macht NAT. Zur Weiterleitung des Datenverkehrs aus dem Internet habe ich entsprechend statische Routen in der FB eingetragen. Ich muss mich noch etwas in den Mikrotik einarbeiten, aber evtl. gäbe es eine Lösung über static DNS? Wenn du einen Tipp hast, dann lass es mich wissen.

    Viele Grüße
    Fozi

    Antworten
    • Wenn ich das mit meinem Wissen von MikroTik und allem was ich gefunden habe so sehe kann man keinen DNS mit MikroTik machen.
      Ich habe jetzt mal um die ganze Situation zu testen mit dem on demand einen Nameserver kurz aufgesetzt und meine Heimnetzzone .local am laufen.
      Gebe ich nun im Safari zb einen Host.local ein dann baut sich wenn ich außerhalb des Heimnetzwerk bin auch der VPN Tunnel auf.
      ABER:
      iOS kennt ja in diesem Moment gar nicht den Nameserver aus dem Heimnetzwerk und befragt einen anderen im Internet den es eben vom Provider (bei mir T-Mobile) erhalten hat. Der kennt natürlich nicht meine Zone .local.
      Was nun? Wie bringe ich iOS bei wenn die VPN on demand aktiv ist das der Nameserver im Heimnetzwerk zu verwenden ist?

      Gruß

    • Hi,
      kannst du sagen, welche Fehlermeldung kommt?
      Du brauchst eigentlich nur deine SSIDs der WLANs in das Script eintragen, die du für eine VPN-on-demand-Vebindung ausschliessen möchtest und das Script sollte sich installieren lassen. Während der Installation fragt iOS nach dem shared key, den die Fritzbox bei der Aktivierung von VPN auf der Fritzbox angelegt hat. Diesen musst du eingeben.

    • Danke für den Hinweis!
      Das Crayon Plugin für WordPress scheint nicht mehr zu funktionieren.
      Ich hab auf die schnelle den Code als Text reinkopiert.

Schreibe einen Kommentar