Leserartikel [Anleitung] Einrichtung VPN on Demand zur FRITZ!Box

paxtn

Captain
Dabei seit
März 2007
Beiträge
3.297
Hallo zusammen,

ich habe mich heute mit dem Thema Erstellung einer VPN-Verbindung on Demand zur heimischen FRITZ!Box auseinandergesetzt, damit sich mein iPhone in bestimmten Situationen mit dem VPN verbindet und diese Verbindung auch im Standby aufrecht erhält.

Ich möchte euch hiermit eine kleine Anleitung geben, falls dies noch jemand anderes mal machen möchte. Ich hatte nämlich keine perfekt funktionierende Anleitung gefunden und musste diverse Informationen aus verschiedenen alten Anleitungen zusammensuchen.

Im Internet liest sich oft, dass man hierfür den Apple Configurator benötigt, welchen es natürlich nur für MacOS gibt. Man kann auf Linux/Windows auch einfach eine .mobileconfig Datei im XML-Schema erstellen und diese dann entsprechend auf das iPhone importieren.

Zuerst müsst ihr entsprechend der AVM Webseite das VPN bei der FRITZ!Box zusammen mit einem Benutzer eingerichtet haben. Das sind Schritte 1 und 2 auf der folgenden Webseite: https://avm.de/service/vpn/tipps-tricks/vpn-verbindung-zur-fritzbox-unter-apple-ios-zb-iphone-einrichten/.

Danach könnt ihr euch zu dem jeweiligen Nutzer die VPN Einstellungen (Server, SharedSecret, etc.) anzeigen lassen.

Nun könnt Ihr die mobileconfig-Datei im XML Schema erstellen, z.B. FritzboxVPN.mobileconfig.

Ich gebe euch im Folgenden mal ein Beispiel, welches Ihr mit euren Daten füllen müsstet. Ich habe im Code jeweils notiert, wo ihr welche Informationen hinzufügen könnt. Das erkennt ihr an den eckigen Klammern, z.B. [USERNAME].

XML:
<?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>LocalIdentifier</key>
                <!-- FRITZ!Box Benutzername -->
                <string>[USERNAME]</string>
                <key>LocalIdentifierType</key>
                <string>KeyID</string>
                <key>RemoteAddress</key>
                <!-- DDNS-URL der FRITZ!Box, z.B. xxxxxx.myfritz.net -->             
                <string>[DDNS-URL der FRITZ!Box]</string>
                <key>SharedSecret</key>
                <!-- SharedSecret der FRITZ!Box --> 
                <data>
                [SHAREDSECRET]
                </data>
                <key>XAuthEnabled</key>
                <integer>1</integer>
                <key>XAuthName</key>
                <!-- FRITZ!Box Benutzername -->
                <string>[USERNAME]</string>
                <key>XAuthPassword</key>
                <!-- FRITZ!Box Passwort des Benutzers -->
                <string>[PASSWORD]</string>
                <!-- VPN-On-Demand Codeblock -->
                <key>OnDemandEnabled</key>
                <!-- Die 1 im Folgenden bedeutet, dass VPN on Demand aktiviert wird -->
                <integer>1</integer>
                <key>OnDemandRules</key>
                <array>
                     <dict>
                        <!-- VPN bei einzelnen WLAN-Netzwerken deaktivieren -->
                        <key>Action</key>
                        <string>Disconnect</string>
                        <key>InterfaceTypeMatch</key>
                        <string>WiFi</string>
                        <key>SSIDMatch</key>
                        <array>
                            <string>[WLAN-NAME]</string>
                        </array>
                    </dict>
                    <dict>
                        <!-- VPN bei aktiver WLAN-Verbindung aktivieren -->
                        <key>Action</key>
                        <string>Connect</string>
                        <key>InterfaceTypeMatch</key>
                        <string>WiFi</string>
                    </dict>
                    <dict>
                        <!-- VPN im Mobilfunknetz nicht aktivieren - falls eine Verbindung auch beim Mobilfunk gewünscht ist, dann muss hier die Action auf "Connect" geändert werden -->
                        <key>Action</key>
                        <string>Disconnect</string>
                        <key>InterfaceTypeMatch</key>
                        <string>Cellular</string>
                    </dict>
                    <dict>
                        <!-- VPN Default state -->
                        <key>Action</key>
                        <string>Ignore</string>
                    </dict>
                </array>
                <!-- VPN-On-Demand Codeblock ENDE-->
            </dict>
            <key>IPv4</key>
            <dict>
                <key>OverridePrimary</key>
                <integer>1</integer>
            </dict>
            <key>PayloadDescription</key>
            <string>Configures VPN settings</string>
            <key>PayloadDisplayName</key>
            <!-- Bezeichnung, z.B. FRITZ!Box-VPN -->
            <string>[VPN-BEZEICHNUNG]</string>
            <key>PayloadIdentifier</key>
            <!-- Hier könnt ihr einfach die myfritz-Adresse hinterlegen, z.B. xxxxxx.myfritz.net -->
            <string>[DDNS-URL der FRITZ!Box]</string>
            <key>PayloadType</key>
            <string>com.apple.vpn.managed</string>
            <key>PayloadUUID</key>
            <!-- PayloadUUID, hier könnt ihr einfach die myfritz-Adresse hinterlegen, z.B. xxxxxx.myfritz.net -->
            <string>[DDNS-URL der FRITZ!Box]</string>
            <key>PayloadVersion</key>
            <real>1</real>
            <key>Proxies</key>
            <dict>
                <key>HTTPEnable</key>
                <integer>0</integer>
                <key>HTTPSEnable</key>
                <integer>0</integer>
            </dict>
            <key>UserDefinedName</key>
            <!-- Name des VPNs auf dem iPhone, z.B. FRITZ!Box-VPN -->
            <string>[VPN-NAME]</string>
            <key>VPNType</key>
            <string>IPSec</string>
        </dict>
    </array>
    <key>PayloadDisplayName</key>
    <!-- Name des VPN Profils, z.B. "VPN on Demand-Profil" -->
    <string>[PROFILNAME]</string>
    <key>PayloadIdentifier</key>
    <!-- PayloadIdentifier, Hier könnt ihr einfach die myfritz-Adresse hinterlegen, z.B. xxxxxx.myfritz.net -->
    <string>[DDNS-URL der FRITZ!Box]</string>
    <key>PayloadRemovalDisallowed</key>
    <false/>
    <key>PayloadType</key>
    <string>Configuration</string>
    <key>PayloadUUID</key>
    <!-- PayloadUUID, Hier könnt ihr einfach die myfritz-Adresse hinterlegen, z.B. xxxxxx.myfritz.net -->
    <string>[DDNS-URL der FRITZ!Box]</string>
    <key>PayloadVersion</key>
    <integer>1</integer>
</dict>
</plist>
Diese Config baut bei hinterlegten WLAN-Netzen und im Mobilfunknetz keine VPN-Verbindung auf. Eine VPN-Verbindung wird in allen sonstigen WLAN-Netzen automatisch aufgebaut.

Die Datei könnt ihr dann auf das iPhone übertragen (per Mail, FTP, Cloud, etc.) und öffnet dann dort die Datei.

iOS informiert euch, dass die Config-Datei in die Einstellungen geladen wurde. Danach geht ihr in die Einstellungen, wo ihr die die heruntergeladene Profildatei wiederfindet, installiert diese und müsst dabei das SharedSecret eingeben.

Danach verhält sich die automatische VPN Verbindung entsprechend euren Vorgaben und verbindet sich in den jeweiligen Fällen automatisch bzw. unterbricht die Verbindung.

Ich persönlich finde das ziemlich genial und äußerst praktisch, vor allem wenn man häufiger in Hotels o.ä. schläft.

Falls Ihr einen PiHole einsetzt, bedenkt bitte, dass bei einer VPN Verbindung nur der Standard-DNS-Adresse des Routers gefolgt wird.

Ich wünsche euch viel Spaß und falls Fragen bestehen, könnt ihr euch gerne melden. :)

Viele Grüße
paxtn
 
Zuletzt bearbeitet: (Rechtschreibung)

derchris

Lieutenant
Dabei seit
Jan. 2004
Beiträge
614
Das ist ziemlich genial, aber wie klappt das in Hotels, wenn man dort ein Captiv Portal hat?

Wenn ich mein FTTH endlich bekomme, dann würde ich das glaube ich gleich so einrichten, dass iPhone und iPad in alle WiFis, bis auf das heimische, den Tunnel aufbauen.
 

Balthasarbildet

Lt. Commander
Dabei seit
Jan. 2005
Beiträge
1.777
Super, aber es geht auch hiermit echt sehr einfach: VPN Auto-On https://routinehub.co/shortcut/2338
Ich hatte diesen Kurzbefehl hier schon irgendwo empfohlen, finde es aber grad selbst nicht mehr.
  1. Erst den Kurzbefehl installieren. Man muss ggf. vorher in Einstellungen->Kurzbefehle das Installieren von Kurzbefehlen aus unsicheren Quellen zulassen (alle Quellen die nicht Apple sind, gelten in dem Fall als unsicher).
  2. Danach den Kurzbefehl ausführen. Er ist dabei gut dokumentiert und funktioniert entweder in jedem WLAN außer den vorher definierten, oder bei Verbindung zu einer bestimmten Domain.
  3. Es werden zuerst alle Details für die VPN-Verbindung abgefragt.
  4. Danach die WLAN-SSIDs eingeben, bei denen kein VPN aufgebaut werden soll
  5. Optional Domains angeben, bei deren Besuch die Verbindung automatisch aufgebaut werden soll
  6. Das fertige Profil wird dann unter Einstellungen->Allgemein->Profile gespeichert. Dort muss es nochmal explizit installiert werden.
  7. Voila!

 

paxtn

Captain
Ersteller dieses Themas
Dabei seit
März 2007
Beiträge
3.297
Das ist ziemlich genial, aber wie klappt das in Hotels, wenn man dort ein Captiv Portal hat?
Das weiß ich noch nicht, da ich das bisher noch nicht testen konnte.
Im Internet liest man diesbzgl. teilweise von Problemen. Ich würde es trotzdem probieren. :)
(Im Notfall kann man das ondemand auch kurz unterbrechen und danach wieder aktivieren)
Super, aber es geht auch hiermit echt sehr einfach: VPN Auto-On https://routinehub.co/shortcut/2338
Ich hatte diesen Kurzbefehl hier schon irgendwo empfohlen, finde es aber grad selbst nicht mehr.
Genau, deinen Beitrag hatte ich auch gesehen.
Allerdings müsste ich in diesem Fall dem Ersteller des Kurzbefehls vertrauen und ich finde, dass so eine XML-Datei nun schnell erstellbar ist und importiert werden kann.
Aber natürlich, diese Möglichkeit gibt es auch. :)
 

Balthasarbildet

Lt. Commander
Dabei seit
Jan. 2005
Beiträge
1.777
Naja, du musst nicht vertrauen. Du kannst dir den Kurzbefehl einfach angucken und nachvollziehen, was er macht.
 

paxtn

Captain
Ersteller dieses Themas
Dabei seit
März 2007
Beiträge
3.297
Top