Mikrotik: VPN-on-Demand für iPhone und iOS

VPN-on-Demand ist das Mittel der Wahl, um einfach und unkompliziert eine VPN-Verbindung nach Hause herzustellen. Im Prinzip handelt es sich dabei um eine normale VPN-Verbindung, die jedoch immer dann automatisch (on-Demand) gestartet wird, wenn es notwendig ist. Wann das genau passiert, wird über Regeln definiert.

VPN-on-Demand auf dem iPhone

 

Wann VPN-Verbindung wählen?

Sicher kann man unterschiedlicher Ansicht sein, wann eine VPN-Verbindung gewählt werden sollte. Aber da kann sich ja jeder seine eigene Meinung bilden. Ich finde es sinnvoll die Verbindung zu wählen, wenn ich unterwegs bin und auf das Heimnetzwerk zugreifen will (was sicher für die meisten die Intension ist). Aber auch, wenn ich mich in fremden (öffentlichen) WLANs befinde. Da ich häufiger dienstlich in Gastnetzwerken von Hotels und Kunden unterwegs bin und ich da eine gewisse Kontrolle der Netzwerke erwarte, gehe ich hier lieber auf Nummer Sicher.

VPN-on-Demand wird über Regeln definiert. Bei mir lauten diese so:

  1. Im heimischen WLAN mit der SSID ... VPN trennen (die SSID ist der WLAN-Name bei mir Zuhause)
  2. Wenn ich mich in einem anderen WLAN befinde, VPN verbinden (gemeint sind alle WLAN-Netzwerke, die von der ersten Regel nicht erfasst werden)
  3. Bei Zugriff auf meine lokale Domain Zuhause VPN verbinden
  4. VPN trennen, wenn ich per Mobilfunk online bin

Damit die dritte Regel funktioniert, müssen die Geräte im lokalen Netzwerk auch über ihren FQDN (Full Qualified Domain Name) erreichbar sein. Dazu hatte ich hier schonmal einen ausführlichen Beitrag geschrieben.

Das automatische Wählen der VPN-Verbindung bei Zugriff auf bestimmte IP-Subnetze hat früher mal funktioniert, wird seit iOS 10 jedoch nicht mehr unterstützt.

VPN im Router konfigurieren

Beginnen wir mit der Konfiguration im Router, bei mir ein Mikrotik Routerboard RB2011UAS-RM, Zu diesem wird am Ende eine L2TP/IPsec-Verbindung aufgebaut. Ich erspare euch hier detaillierte Erläuterungen zu den einzelnen Einstellungen und deren Bedeutung, da ich das sowieso nicht fachlich korrekt erklären kann. Ich muss auch ehrlich gestehen, ich verstehe nicht alles, was hier eingestellt wird und habs mir letztlich auch nur zusammengesucht. Dafür verwende  ich überall möglichst eindeutige Namen, damit man über die verschiedenen Schritte hinweg immer nachvollziehen kann, was gemeint ist.

Für die Konfiguration nutzen wir hier WinBox und damit verbinden wir uns direkt auf den Router.

IP Pool

Zuerst legen wir einen Pool von IP-Adressen an, aus dem VPN-Clients per DHCP ihre IP-Adresse zugewiesen bekommen. Das ist optional, denn man kann auch den normalen DHCP-Pool verwenden, aber ich finde es übersichtlicher. Dazu navigieren wir zu IP -> Pool, klicken dort auf das +, vergeben einen passenden Namen und den gewünschten IP-Adressbereich.

Mikrotik: DHCP IP-Pool für VPN-Clients

Mikrotik: DHCP IP-Pool für VPN-Clients

Name: dhcp-vpn
Addresses: Den Adressbereich müsst ihr natürlich euren Begebenheiten anpassen. Bei mir ist es 192.168.243.240-192.168.243.254

PPP Profile

Anschließend navigieren wir zu PPP und wählen hier die Registerkarte Profiles.

Mikrotik: PPP-Profile

Mikrotik: PPP-Profile

Per Klick auf + erzeugen wir ein neues Profil und stellen es wie folgt ein:

Mikrotik: PPP-Profile Mikrotik: PPP-Profile
Name: l2tp-vpn-profile
Local Address: <IP des Routers im lokalen Netzwerk>
Remote Address: hier wählen wir den IP-Pool, den wir für VPN angelegt haben (dhcp-vpn)
DNS Server: IP-Adresse des lokalen DNS-Servers. Wird bei den meisten wohl die IP des Routers sein, ich verwende jedoch einen separaten DNS-Server.
Change TCP MSS: yes
Use MPLS: yes
Use Encryption: required

L2TP Server

Weiter zur Registerkarte Interface, wo wir auf die Schaltfläche L2TP Server klicken und diesen wie folgt konfigurieren:

Mikrotik: L2TP Server

Mikrotik: L2TP Server

Enabled: true
Default Profile: l2tp-vpn-profile
Authentication: mschap2
Use IPsec: yes
IPsec Secret: Hier vergeben wir ein starkes Passwort und notieren uns dies. Hier im Beispiel verwende ich bcgS#U23.!OWPDxs=Mns8*D2

PPP Secrets

Weiter zur Registerkarte Secrets, wo wir mit dem + ein neues Secret anlegen.

Mikrotik: VPN-Secret

Mikrotik: VPN-Secret

Name: Hier einen passenden Namen vergeben. Ich verwende vpn-seb-iphone
Password: Erneut vergeben wir wieder ein starkes Passwort und notieren uns dies. Dies kann/sollte nicht unbedingt das gleiche sein, wie zuvor. Beispiel c923E=!cno83LASwhd
Service: l2tp
Profile: l2tp-vpn-profile

IPsec Peer Profile

Als nächstes erstellen wir ein Profil für VPN-Clients (Peers) und navigieren hierfür zu IP -> IPsec. Auf der Registerkarte Peer Profiles erstellen wir mit + ein neues Profil:

Mikrotik: IPsec Peer Profile

Mikrotik: IPsec Peer Profile

Name: Hier einen passenden Namen vergeben. Ich verwende l2tp-vpn-peer-profile
Encryption Algorithm: 3des und aes-256. Achtet darauf, dass kein weiteres Kästchen aktiviert ist.
DH Group: modp1024. Auch hier darauf achten, dass nichts anderes ausgewählt ist.

IPsec Peer

Anschließend erstellen wir einen VPN-Client. Dazu wechseln wir auf die Registerkarte Peers und klicken wieder auf +.

Mikrotik: IPsec Peer

Mikrotik: IPsec Peer

Profile: Das soeben erstelle Profil l2tp-vpn-peer-profile auswählen.
Exchange Mode: main l2tp
Passive: true
Secret: Die gleiche Zeichenkette, die wir unter L2TP Server als IPsec Secret verwendet haben: bcgS#U23.!OWPDxs=Mns8*D2

IPsec Mode Config

Registerkarte Mode Configs -> +.

Mikrotik: IPsec Mode Config

Mikrotik: IPsec Mode Config

Name: l2tp-vpn-mode-config
Responder: true
Address Pool: dhcp-vpn
System DNS: true

IPsec Policy Proposal

Registerkarte Policy Proposal -> +.

Mikrotik: IPsec Policy Proposal

Mikrotik: IPsec Policy Proposal

Name: l2tp-vpn-proposal
Encr. Algorithms: 3des und aes-256-cbc. Achtet hier wieder darauf, dass nichts anderes angehakt ist.

IPsec Policies

Im IPsec-Fenster begeben wir uns auf die Registerkarte Policies und klicken dort abermals auf +.

Mikrotik: IPsec Policy Mikrotik: IPsec Policy
Template: true
Proposal: l2tp-vpn-proposal

Firewall-Regeln

Da ihr euer Netzwerk sicherlich auch ordentlich abgeriegelt habt, benötigen wir noch zwei Firewall-Regeln, die den eingehenden Verkehr zulassen. Diese müssen vor den Drop-Regeln platziert werden.

Wir navigieren zu IP -> Firewall und klicken auf +.

Mikrotik: Firewall-Regel für IPsec Mikrotik: Firewall-Regel für IPsec
Chain: input
Protocol: udp
Dst. Port: 500,1701,4500
In. Interface: Hier wählen wir die WAN-Schnittstelle aus. Bei mir ist das pppoe-out1
Connection State: new
Action: accept

Für die zweite Regel wieder ein Klick auf +.

Mikrotik: Firewall-Regel für IPsec Mikrotik: Firewall-Regel für IPsec
Chain: input
Protocol: ipsec-esp
In. Interface: Hier wählen wir die WAN-Schnittstelle aus. Bei mir ist das pppoe-out1
Action: accept

VPN-Verbindung unter iOS einrichten

Damit ist die Konfiguration im Router abgeschlossen und es ist Zeit, das Ganze mal zu testen, bevor wir weiter machen. Dazu schnappen wir unser iPhone oder iPad (ich nutze übrigens ein iPhone XR, falls das jemanden interessiert), gehen in Einstellungen -> Allgemein -> VPN und betätigen dort die Schaltfläche VPN hinzufügen. Konfiguriert wird dann folgendes:

Typ: L2TP
Beschreibung: Beliebiger Name für die VPN-Verbindung
Server: DynDNS- oder IP-Adresse, über die euer Router von außen erreichbar ist
Account: Der Name, den wir bei PPP Secrets vergeben haben. Hier im Beispiel war das vpn-seb-iphone
Passwort: Das Passwort, das wir bei PPP Secrets vergeben haben. Hier im Beispiel war das c923E=!cno83LASwhd
Shared Secret: Das IPsec-Secret, das wir bei L2TP-Server vergeben haben. Hier im Beispiel war das bcgS#U23.!OWPDxs=Mns8*D2
Gesamten Verkehr senden: Diese Option sorgt dafür, dass immer, wenn VPN verbunden ist, jeglicher Verkehr, der für das Internet bestimmt ist, über die VPN-Verbindung zum heimischen Router geleitet wird und dann von da aus seinen Weg ins WWW findet. Das ist optional, würde aber Sinn machen, um in fremden WLAN-Netzen anonym zu bleiben. true

iPhone: VPN-Konfiguration

Im Prinzip haben wir nun eine vollständige VPN-Konfiguration, mit der man sich jederzeit vom iPhone aus in sein heimisches Netzwerk verbinden kann. Die gleichen Zugangsdaten kann man auch unter Windows, macOS, Linux oder sonstigen Betriebssystemen nutzen. Wem das reicht, der muss auch nicht mehr weiterlesen, denn im nachfolgenden Abschnitt geht es nur darum, wie man VPN-on-Demand auf iPhone einrichten und es dazu überreden kann, die VPN-Verbindung von alleine zu wählen.

VPN-on-Demand

Ich gehe davon aus, dass der Test im vorherigen Abschnitt erfolgreich verlief. Falls nicht, solltet ihr euch erstmal darum kümmern, damit man nicht unnötig an der falschen Stelle sucht, sollte es am Ende vielleicht doch nicht funktionieren.

Ein paar Grundlagen

Bevor wir beginnen will ich nochmal kurz ins Thema einleiten. VPN-on-Demand ist eine Enterprise-Funktion, weshalb es dafür in der Oberfläche von iOS auch keinen Schalter gibt. Im Enterprise-Bereich werden sogenannte Profile erstellt, die dann einfach auf dem iPhone eingespielt werden. Das geht auf zwei Arten: Entweder wird das Profil per E-Mail/iCloud/AirDrop/Dropbox/was-auch-immer an den jeweiligen Empfänger gesendet, oder, wenn das Zielgerät komplett vom Unternehmen verwaltet wird, per Apple Configurator 2. Erstellt werden diese Profile ebenfalls mit Apple Configurator 2.

‎Apple Configurator 2
‎Apple Configurator 2
Entwickler: Apple
Preis: Kostenlos

Leider ist es so, dass dieser für L2TP/IPsec-Verbindungen, wie wir sie hier nutzen, kein VPN-on-Demand anbietet. Wir müssen das Profil also händisch nacharbeiten. Alternativ können wir es auch gleich in einem Texteditor erstellen, denn es handelt sich dabei schlicht um eine XML-Datei.

Wer keinen Mac besitzt und somit den Apple Configurator nicht nutzen kann, überspringt den nächsten Schritt und verwendet den Code von weiter unten als Vorlage, um sein Profil komplett per Texteditor zu erstellen.

Profil anlegen

Wir starten also den Apple Configurator, klicken anschließend auf Ablage -> Neues Profil. Im Register Allgemein geben wir dem Profil einen Namen. Zum Beispiel „VPN-on-Demand-Profil“.

Apple Configurator 2: VPN-Profil erstellen

Apple Configurator 2: VPN-Profil erstellen

Anschließend wechseln wir in das Register VPN und klicken da auf Konfigurieren. Hier nutzen wir die gleichen Werte, wie zuvor beim iPhone. Nur der Name sollte ein anderer sein, damit man beide Verbindungen später noch unterscheiden kann.

Apple Configurator 2: VPN-Profil erstellen

Apple Configurator 2: VPN-Profil erstellen

Verbindungsname: Kann beliebig gewählt werden. Ich nehme hier VPN-on-Demand
Verbindungs-Typ: L2TP
Server: DynDNS- oder IP-Adresse, über die euer Router von außen erreichbar ist
Account: Der Name, den wir bei PPP Secrets vergeben haben. Hier im Beispiel war das vpn-seb-iphone
Passwort: Das Passwort, das wir bei PPP Secrets vergeben haben. Hier im Beispiel war das c923E=!cno83LASwhd
Gesamten Verkehr über VPN senden: Ganz nach Bedarf. Bei mir true
Shared Secret: Das IPsec-Secret, das wir bei L2TP-Server vergeben haben. Hier im Beispiel war das bcgS#U23.!OWPDxs=Mns8*D2
Hinweis:
Das Shared Secret wird codiert gespeichert. Also lasst Euch nicht davon irritieren, dass in dem von euch erzeugten Profil auf Zeile 15 nicht <string>bcgS#U23.!OWPDxs=Mns8*D2</string>, sondern vielleicht <data>YmNnUyNVMjMuIU9XUER4cz1NbnM4RDI=</data>. Beide Varianten sind möglich.

On-Demand-Regeln einfügen

Das Profil speichern wir irgendwo auf dem Computer und öffnen es in einem beliebigen Texteditor. Hier fügen wir nun den Block, der für VPN-on-Demand zuständig ist, ein (Zeilen 25…87). Anschließend müssen nur noch ein paar Werte angepasst werden.

<?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>
                <string>bcgS#U23.!OWPDxs=Mns8*D2</string>
            </dict>
            <key>IPv4</key>
            <dict>
                <key>OverridePrimary</key>
                <integer>1</integer>
            </dict>

            <!-- Einstellungen für VPN-on-Demand -->
            <key>OnDemandEnabled</key>
            <integer>1</integer>
            <key>OnDemandRules</key>
            <array>

                <!-- VPN trennen, wenn bekanntes WLAN verbunden -->
                <dict>
                    <key>Action</key>
                    <string>Disconnect</string>
                    <key>InterfaceTypeMatch</key>
                    <string>WiFi</string>
                    <key>SSIDMatch</key>
                    <array>

                        <!-- WLAN-SSIDs hier eintragen -->
                        <string>WLAN-Netzwerk-1</string>
                        <string>WLAN-Netzwerk-2</string>
                    </array>
                </dict>

                <!-- VPN verbinden, wenn anderes WLAN verbunden -->
                <dict>
                    <key>Action</key>
                    <string>Connect</string>
                    <key>InterfaceTypeMatch</key>
                    <string>WiFi</string>
                </dict>

                <!-- VPN verbinden, wenn auf das heimische Netzwerk zugegriffen wird -->
                <dict>
                    <key>Action</key>
                    <string>EvaluateConnection</string>
                    <key>ActionParameters</key>
                    <array>
                        <dict>
                            <key>DomainAction</key>
                            <string>ConnectIfNeeded</string>
                            <key>Domains</key>
                            <array>

                                <!-- Lokale Domains hier eintragen -->
                                <string>*.local</string>
                                <string>*.home.local</string>
                                <string>home.local</string>
                            </array>
                        </dict>
                    </array>
                </dict>

                <!-- VPN trennen, wenn man sich im Mobilfunknetz befindet -->
                <dict>
                    <key>Action</key>
                    <string>Disconnect</string>
                    <key>InterfaceTypeMatch</key>
                    <string>Cellular</string>
                </dict>

                <dict>
                    <key>Action</key>
                    <string>Disconnect</string>
                </dict>
            </array>

            <!-- sonstige Einstellungen -->
            <key>PPP</key>
            <dict>
                <key>AuthName</key>
                <string>vpn-seb-iphone</string>
                <key>AuthPassword</key>
                <string>c923E=!cno83LASwhd</string>
                <key>CommRemoteAddress</key>
                <string>dyndns.router.com</string>
            </dict>
            <key>PayloadDescription</key>
            <string>Konfiguriert VPN-Einstellungen</string>
            <key>PayloadDisplayName</key>
            <string>VPN</string>
            <key>PayloadIdentifier</key>
            <string>com.apple.vpn.managed.F28742EA-6E1C-4BA1-8797-6A5270B0EE61</string>
            <key>PayloadType</key>
            <string>com.apple.vpn.managed</string>
            <key>PayloadUUID</key>
            <string>F28742EA-6E1C-4BA1-8797-6A5270B0EE61</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>VPN-on-Demand</string>
            <key>VPNType</key>
            <string>L2TP</string>
        </dict>
    </array>
    <key>PayloadDisplayName</key>
    <string>VPN-on-Demand-Profil</string>
    <key>PayloadIdentifier</key>
    <string>Sebastians-iMac.xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx</string>
    <key>PayloadRemovalDisallowed</key>
    <false/>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <string>949D9466-4286-4BE0-BDA1-5826ABE59109</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
</dict>
</plist>
Zeile 15: Das IPsec-Secret, das wir bei L2TP-Server vergeben haben. Hier im Beispiel war das bcgS#U23.!OWPDxs=Mns8*D2
Zeilen 20: Gesamten Verkehr über VPN senden. Wer das nicht möchte macht aus der 1 eine 0
Zeilen 39, 40: Die Namen der WLAN-Netzwerke, in denen keine VPN-Verbindung gewählt werden soll
Zeilen 65…67: Domain-Namen des heimischen Netzwerks
Zeile 91: Der Name, den wir bei PPP Secrets vergeben haben. Hier im Beispiel war das vpn-seb-iphone
Zeile 93: Das Passwort, das wir bei PPP Secrets vergeben haben. Hier im Beispiel war das c923E=!cno83LASwhd
Zeile 95: DynDNS- oder IP-Adresse, über die euer Router von außen erreichbar ist
Zeile 117: Beliebiger Name für die VPN-Verbindung. Ich nehme hier VPN-on-Demand
Zeile 123: Beliebiger Name für das Profil. Ich nehme hier VPN-on-Demand-Profil

Im Ergebnis haben wir ein fertiges Profil, das nur noch an das iPhone übertragen und dort installiert werden muss.

VPN-Profil auf iPhone installieren

Wie schon zuvor erwähnt gibt es verschiedene Wege, wie wir das Profil auf das iPhone bekommen. Der einfachste ist sicherlich, sich das Profil per E-Mail oder AirDrop auf das Telefon zu senden. Den Anhang der E-Mail tippen wir einfach an, der Rest erklärt sich von selbst:

Installieren -> Code eingeben -> Installieren -> Installieren -> Fertig.

iPhone: VPN-on-Demand Profil installieren iPhone: VPN-on-Demand Profil installieren iPhone: VPN-on-Demand iPhone: VPN-on-Demand Einstellungen

Im Ergebnis haben wir eine neue VPN-Verbindung mit dem Namen VPN-on-Demand, die auch schon vorgewählt ist. Solange diese Verbindung ausgewählt ist, wird unser iPhone diese Verbindung immer dann wählen, wenn wir uns in fremden WLAN-Netzwerken bewegen, oder auf ein Netzwerkgerät zuhause per FQDN zugreifen.

Unter dem Schalter zum manuellen Verbinden befindet sich der Hinweis, dass die VPN-Verbindung im aktuellen Netzwerk nicht verbunden wird. Das liegt daran, dass wir uns in einem der vertrauenswürdigen WLAN-Netzwerke befinden und in den Einstellungen zu dieser VPN-Verbindung der Schalter Bei Bedarf verbinden aktiv ist. Schaltet man diesen aus, hat man wieder die volle Kontrolle über die VPN-Verbindung und das automatische Verbinden ist deaktiviert.

Die Verbindung, die wir zuvor zum Testen eingerichtet haben, kann dann auch entfernt werden. Die benötigen wir ja künftig nicht mehr.

Sebastian

...ist staatlich geprüfter Techniker für Elektrotechnik, Schwerpunkt Prozessautomatisierung und Energietechnik. Die Themen Automatisierung und Programmierung haben es ihm besonders angetan.
Außerdem ist er für jede technische Spielerei zu haben 😉
Sebastian

20 Comments

  1. Avatar
    Antworten kermit

    Hallo Sebastian,
    vielen Dank für diese ausführliche Anleitung. Leider klappt das verbinden mit iPhone Xs (IOS 12.2) auf meinen RB3011 (ROS 6.43.14) nicht. Habe schon alles mehrfach auf Richtigkeit geprüft. Folgendes findet sich im LOG:
    respond new phase 1 (Identity Protection): 84.147.94.69[500]80.187.118.34[500]
    ISAKMP-SA established 84.147.94.69[4500]-80.187.118.34[25767] spi:ceb919b91c91ce4d:3b8d4278e875727d
    80.187.118.34 failed to pre-process ph2 packet.
    80.187.118.34 peer sent packet for dead phase2
    80.187.118.34 peer sent packet for dead phase2
    Die letzte Meldung wiederholt sich dann mehrmals. Irgendeine Idee, wo das Problem sein könnte?
    Ciao, Peter

    • Sebastian
      Antworten Sebastian

      Hi Peter,
      So richtig kann ich mit dieser Meldung nichts anfangen. Wenn du dieser Anleitung folgst, dann lass dich bei den Screenshots bitte nicht von den blauen Markierungen irreführen, sondern beachte alle Einstellungen. Möglicherweise muss noch etwas mehr eingestellt werden, als die blauen Markierungen vorgeben. Die Anleitung habe ich im Nachgang erstellt. Da kann einem durchaus mal etwas durch die Lappen gehen.

      Wenn du einen Fehler in meiner Anleitung findest, dann würde ich mich über einen Hinweis von dir sehr freuen.

      Danke und viel Erfolg

  2. Avatar
    Antworten kermit

    Hallo Sebastian,
    mittlerweile bin ich schon etas weiter. Die IPSEC Tunnel konnte ich jetzt aufbauen. Das gelang nachdem ich bei der Konfiguration des IPSEC Peer auf dem Reiter „Advanced“ die Option „Generate Policy“ auf „port override“ gesetzt habe.
    Leider funktioniert der Traffic bisher nur in eine Richtung. D.h. DNS request löst der Router sauber auf und auch die Weiterleitung eines Pakets vom Cient zum Server funktioniert (mit einem Filter Eintrag in die Forward chain). Eine Anfrage an einen lokalen Webserver wird also zwar dorthin geschickt wird, jedoch kommt keine Antwort zurück, obwohl ich auch eine Filter Regel für die Gegenrichtung konfiguriert habe. Könnte das eine Problem mit dem NATting sein? Ich habe nur ein einfache srcnat mit Action masquerade auf das Out Interface all_ppp dfiniert.
    Ciao, Peter

  3. Avatar
    Antworten kermit

    Hallo Sebastian,
    mittlerweile hat sich geklärt, wo das Problem lag. Ich hatte zunächst, genau wie bei deiner Konfig, den IP Pool für VPN im gleichen Subnetz in dem auch der Router und alle meine LAN Geräte sind. Das hat definitiv bei mir nicht funktioniert. Dann habe ich den Pool einfach in ein anderes Subnetz umgezogen und danach lief alles ohne Probleme.
    Ciao, Peter

    • Sebastian
      Antworten Sebastian

      Hi Peter,
      Jetzt wo du das sagst kann ich mich dunkel daran erinnern, dass das anfangs bei mir auch nicht funktioniert hat. Aber irgendwas hat mich damals dazu motiviert, solange daran zu basteln, bis es mit IPs aus dem gleichen Subnet funktioniert. Da muss ich nochmal in mich gehen.

  4. Avatar
    Antworten Richard

    Hallo Sebastian

    Vielen Dank für diese Anleitung ich konnte mir das so bei mir auf IOS 13 problemlos einrichten.
    ich würde gerne das VPN nur nutzen wenn ich auf meinem Handy die Smarthome APP öffne.

    Kann man dies auch so einstellen?

    • Sebastian
      Antworten Sebastian

      Ja, dazu brauchst du nur das Profil entsprechend anpassen. Der dafür zuständige Block ist im Profil auch bezeichnet (Zeile 44).

      • Avatar
        Antworten Riccard

        Hallo Sebastian besten dank für die schnelle Rückantwort. Ja das hab ich gesehen passt soweit.
        Jedoch ist mir bei Zeile 73 VPN trennen im Mobilfunknetz nicht klar was es da machen soll. Verstehe ich richtig dass es sich dann nicht mehr mit dem VPN verbindet?

        Ich würde gerne die so haben dass wenn ich meine local domain öffne also fritz.box sich das VPN im Mobilnetz automatisch verbindet

        • Sebastian
          Antworten Sebastian

          Da muss ich ehrlich sagen, ich bin gerade nicht ganz sicher. Ich glaube, das hängt mit dem dem Wählen der VPN-Verbindung in fremden WLAN-Netzwerken zusammen. Lösch einfach mal den Block und schau, ob es sich wie gewünscht verhält. Für mich ist das ja eine gute Funktion, insofern kam es mir noch nicht in den Sinn, das zu entfernen.

  5. Avatar
    Antworten Fragesteller9

    Hi,
    tolle Anleitung.
    Ich habe ein einfaches VPN-Profil zu meiner Heim-Fritzbox (über Fritz-VPN). Blöd ist, dass sich die VPN-Verbindung immer sofort ausschaltet, wenn man das iPhone eine Zeit lang nicht benutzt hat. Das ist besonders in fremden WLANs ärgerlich.
    Frage: Wie lautet der Befehl, dass eine manuell gewählte VPN-Verbindung (z.b. „VPN-nach-Hause“) solange bestehen bleibt, bis ich sie wieder selbst deaktiviere?
    Ich habe eine VPN-App (Disconect) auf dem iPhone, die genau das macht und solange die VPN Verbindung aufrecht erhält (auch bei Funkverbindung), bis ich es manuell deaktiviere. Genau den Befehl suche ich.

    Vielen Dank!

    • Sebastian
      Antworten Sebastian

      Ich weiß, was du meinst aber nicht, was du mit „Befehl“ meinst. VPN-on-Demand wählt nach bestimmten Regeln die VPN-Verbindung und erhält sie solange aufrecht, wie die Bedingungen der Regeln erfüllt bleiben.

      Auch im manuellen VPN-Modus, also wenn in den Einstellungen „Bei Bedarf verbinden“ ausgeschaltet ist und man die Verbindung manuell startet, bleibt diese solange erhalten, bis man sie deaktiviert oder die Verbindung aufgrund von schlechtem Empfang einfach abreißt.

      Wenn deine VPN-Verbindung ständig getrennt wird, dann liegt das sicherlich daran, dass dein Router dies macht, wenn die Verbindung ungenutzt bleibt. Ich könnte mir vorstellen, dass deine App dem vorbeugt, indem es einfach irgendwelche Daten sendet und den Router somit austrickst.

  6. Avatar
    Antworten Johannes

    Hallo,

    Ich habe zwar keinen Mikrotik, aber eine Unifi USG, wo ich shcon länger ein L2TP-VPN aktiviert habe.

    Ich will nun „VPN on Demand“ und habe deine Anleitung befolgt. Ich habe deine Config editiert und inportiert. Ich kann den Tunnel manuell starten, aber er startet nicht automatisch, wenn ich im LTE (habe den Block mit Disconnet-on-LTE gelöscht) oder einen fremden WLAN bin.

    Ich habe eine Domain mit Supdomains. „subdomain.domain.com“. habe das so in der Config eingetragen.
    Am externen DNS verweist „subdomain.domain.com“ auf die interne Adresse des Webservers.

    Wenn ich nun „subdomain.domain.com“ aufrufe, passiert nichts. Starte ich den VPN manuell, dann kann ich auf die Seite zugreifen.

    Viele Grüße
    Johannes

    • Sebastian
      Antworten Sebastian

      Hi Johannes. Hast du es denn mal mit einer nichtöffentlichen Domain probiert? Vielleicht gibt es diesbezüglich Beschränkungen oder es müssen weitere Voraussetzungen erfüllt sein…

      • Avatar
        Antworten Johannes

        Hallo,

        Ja, in der tat. Ich hatte eine public DNS registriert. Solange der existiert, greift das „On Demand VPN“ scheinbar nicht. Sobald der Eintrag weg ist, geht es.

        Vg,
        Johannes

  7. Avatar
    Antworten Johanne

    Eine andere Frage:
    Es funktioniert soweit ganz gut. Dh. im LTE Netz wird VPN aufgebaut, im WLAN wieder abgebaut. KAnn man im LTE auch einen Timeout setzen, wann VPN wieder abgebaut wird?

    Ich habe eine App gestartet, die auf die „Domain“ im Profil zugreift. VPN wird gestartet. Wenn ich die App dann beende, bleibt die VPN Verbindung bestehen, zumindest mal auf alle Fälle 1 Stunde. Länger konnte ich noch nicht testen.

    Viele Grüße
    Johannes

    • Sebastian
      Antworten Sebastian

      Um ehrlich zu sein hab ich mir darum bisher noch keine Gedanken gemacht, weil ich das auch anders nutze, als ich ursprünglich mal vorhatte. Hast du eine Lösung dafür gefunden?

  8. Avatar
    Antworten see

    Hallo Sebastian,
    super Anleitung, konnte hiermit innerhalb kurzer Zeit, alles zum Laufen bekommen.
    Da es so gut funktioniert hat, wollte ich das Script auch für meinen Mac nutzen, was leider nicht funktioniert! Es scheint, als würde ständig die Verbindung aufgebaut und wieder getrennt werden.
    Hast Du eventuell auch hier eine Idee, wie ich das Problem lösen könnte? Denn gerade auf Reisen im Hotel oder ähnlich, bietet sich eine sichere Verbindung an.

    Vielen Dank 😊

    • Sebastian
      Antworten Sebastian

      Hi, das hab ich selber noch nie ausprobiert, also hab ich leider keinen anderen Tipp für dich, außer nochmal alle Einstellungen zu kontrollieren.

  9. Avatar
    Antworten Flo

    Hallo Sebastian.

    Vielen Dank für das Profil! Funktioniert auch in Verbindung mit einem Unifi USG bestens.
    Eine Frage hätte ich noch: Was hat es mit dem Code in den Zeilen

    102
    106
    125
    131

    auf sich?

    Danke Dir und viele Grüße!

    • Sebastian
      Antworten Sebastian

      Das wird durch den Apple Configurator erzeugt. Ganz platt formuliert, werden damit das Profil, die Einstellungen und der Computer, mit dem das Profil erzeugt wurde, eindeutig identifiziert. Könnte ja sein, dass du zwei Profile mit dem gleichen sichtbaren Namen installierst. Durch die eindeutigen internen Namen funktioniert das trotzdem.

Hinterlasse eine Antwort

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.