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

2Sharp4U schrieb:
Den gibt es doch aber.
Verbindung bearbeiten und dann ganz unten:
Abschnitt „AKTIVIERUNG AUF WUNSCH“
Mobil
WLAN
SSIDs

Einfacher gehts denke ich nicht mehr ;)
Nun ja, folgende 2 Probleme mit WireGuard via FRITZ!Box, welche sich mit der Config-Datei über IPSec so nicht gestalteten (dort einwandfreie Funktion):

1. Ziel ist on demand VPN ein wenn fremdes WLAN. Manueller Tunnel-Aufbau über Einstellungen / VPN wenn im Mobilfunk. Das klappt so nicht mit WireGuard:

WireGuard-Setting:
IMG_4848.jpeg


Resultat in Einstellungen-App wenn im Mobilfunk:
IMG_4849.jpeg


==> Es lässt sich mobil über das WireGuard-Profil händisch also GAR KEIN VPN aufbauen!
Es müsste erst on demand manuell deaktiviert werden, dann klappt es. Allerdings vergisst man natürlich das on demand wieder einzuschalten (damit es beim nächsten fremden WLAN wieder klappt), extrem ungut.

2. Ziel ist on demand VPN ein wenn fremdes WLAN und wenn im Mobilfunk bestimmte Hostnames/IPs (lokale Dienste Zuhause) aufgerufen werden.
==> Finde hierzu so GAR KEINE Konfigurationsmöglichkeit in der WireGuard-App.

Beides, insbesondere aber Anforderung 1, sind ein NoGo für WireGuard aktuell. Hoffentlich habe ich nur irgendeine Konfigurationsoption übersehen und ihr klärt mich gleich entsprechend auf :-)
 
paxtn schrieb:
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-tr...ritzbox-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
Hallo PAXTN,

ich habe eine Frage zu deiner gesendeten config.Datei. Ich hatte bis dato auch diesen Code und er lief auch einwandfrei. Dazu hatte ich aber noch eingestellt / codiert, dass ich notfalls manuell das VPN aktivieren kann, leider habe ich die config.Datei gelöscht und weiß nicht mehr genau, was ich noch in die Datei einfügen muss, um wieder die Möglichkeit zu haben, dass ich VPN manuell aktivieren kann. Eigentlich muss ich doch lediglich einen String hinzufügen, in dem ich beschreibe, dass ich manuell aktivieren möchte. Anbei mal meine Datei als TXT. Leider funktioniert diese nicht richtig, da ich mich manuell aktivieren kann, da geht aber die automatische VPN Funktion überhaupt nicht. Kannst du da evtl. mal drüber schauen?
 

Anhänge

Zurück
Oben