• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

VPN on demand - Zieladressen über FQDN nicht erreichbar, über hostname schon

socrates

Erdapfel
Registriert
27.09.20
Beiträge
2
Hallo zusammen,

vor kurzem habe ich von "VPN on demand" für mein iPhone gehört. Also dass das iPhone beim Aufruf bestimmter Adressen automatisch im Hintergrund eine VPN Verbindung aufbaut. Also genau dass, was ich für meine Home Automation haben möchte.

Ich habe mehrere ".mobileconfig" Beispiele aus dem Internet ausprobiert, und mit dem unten stehenden funktioniert auch der Aufbau des VPN "on demand" automatisch.

Jetzt komme ich jedoch nicht weiter:

1) Ich starte z.B. Safari und rufe http://myserver.lab.mydomain auf
2) Das iPhone baut im Hintergrund die VPN Verbindung auf
3) Safari sagt mir, dass die Seite nicht gefunden werden kann.
4) Rufe ich in Safari bei bereits aktiviertem VPN (Schritt 2) http://myserver auf, so funktioniert die Verbindung.

- Ich brauche also den FQDN um über die .mobileconfig das VPN aufzubauen
- der FQDN funktioniert aber nicht zur Namensauflösung im VPN, hier funktioniert nur der Hostname.

Irgendwas mache ich doch falsch? 😟🤔

Danke im Voraus und ein schönes Restwochenende ;)

Soc

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>
                    <!-- 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>
                                    <string>.lab.mydomain</string>
                                </array>
                                <key>DomainAction</key>
                                <string>ConnectIfNeeded</string>
                                <key>RequiredDNSServers</key>
                                <array>
                                    <string>192.168.0.3</string>
                                    <string>192.168.0.4</string>
                                </array>
                            </dict>
                        </array>
                    </dict>
                     <dict>
                        <!-- VPN bei einzelnen WLAN-Netzwerken deaktivieren -->
                        <key>Action</key>
                        <string>Disconnect</string>
                        <key>InterfaceTypeMatch</key>
                        <string>WiFi</string>
                        <key>SSIDMatch</key>
                        <array>
                            <string>Fritzbox1</string>
                            <string>Fritzbox2</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>
 

socrates

Erdapfel
Registriert
27.09.20
Beiträge
2
ok, da konnte mir auch wirklich niemand helfen ...🤷‍♂️

das Problem lag nicht in der .mobileconifg, sondern in der Fritzbox. Ich habe mit mit der Software iMazing die Konsolenausgabe des iPhones angesehen, während ich das VPN aufgebaut habe. Dann nach IP's aus meinem lokalen Netz gefiltert.
Und siehe da: die Fritzbox übergibt sich selbst als DNS Server, auch wenn der DNS Server extern ist. Diese Einstellung kann offenbar auch nicht geändert werden, aber es gibt einen workaround:

In der Fritzbox:
1) Unter Internet → Zugangsdaten → DNS-Server die eigenen, lokalen DNS Server eintragen (die auch lokal die Namensauflösung machen)

2) Unter Heimnetz → Netzwerk → Netzwerkeinstellungen den "DNS-Rebind-Schutz" aktivieren, bzw. in das Textfeld darunter die lokale Domäne eintragen. Bei mir in o.g. .mobileconfig z.B. lab.mydomain.

3) die Fritzbox neu starten.

Dann funktioniert es "endlich".

Hoffe, das hilft ggf. noch jemand anderem...
 

Ijon Tichy

Clairgeau
Registriert
21.11.06
Beiträge
3.689
Kleiner Hinweis an dieser Stelle noch:

Laut Doku gibt man die Domains ohne * an – ich hatte das bisher auch so, und es funktioniert auch, aber eigentlich ist das nicht korrekt.

Bei dir ist es gemischt. :)