Zum Inhalt springen
Blog » VPN-Verbindung zur FRITZ!Box automatisch aufbauen und halten

VPN-Verbindung zur FRITZ!Box automatisch aufbauen und halten

Je nach Reiseland gibt es unterschiedliche Einschränkungen beim Zugriff auf diverse Internetdienste. Wer eine FRITZ!Box in der Heimat hat, kann seine Internetverbindung darüber tunneln, um weiterhin auf alle gewünschten Dienste zuzugreifen.

Außerdem erfährt der Mobilfunk- bzw. WLAN-Betreiber vor Ort auf diese Weise nicht, welche Webseiten und Dienste aufgerufen werden.

Die Einrichtung ist grundsätzlich direkt in den Einstellungen von iOS und MacOS möglich. Mit ein wenig mehr Aufwand kann man jedoch auch ein Konfigurationsprofil anlegen. Dadurch ergeben sich einige Vorteile:

  • Die Verbindung wird automatisch (wieder)aufgebaut, auch bei zwischenzeitlicher Unterbrechnung, z.B. durch einen Wechsel von WLAN auf Mobilfunk.
  • Der Verbindungsaufbau zu Diensten wie Google Gmail, Youtube), Meta (Facebook, Whatsapp), Twitter sowie allen Webseiten mit .de-Adresse läuft immer ausschließlich über die VPN-Verbindung.
  • Andere Dienste werden über VPN genutzt, wenn sie anders nicht erreichbar sind.
  • Chinesische Webseiten und Dienste werden nie über die VPN-Verbindung aufgerufen, da diese mitunter über einen deutschen Internetanschluss auch gar nicht richtig funktionieren (z.B. Beijing HealthKit).

Die einzelnen Schritte zur Einrichtung werden im Folgenden beschrieben:

Einrichtung eines Nutzers auf der FRITZ!Box mit VPN-Zugriff

Damit man sich aus der Ferne mit der FRITZ!Box verbinden kann, muss diese entsprechend eingestellt werden. Die zwei Schritte sind:

  • Anmeldung der FRITZ!Box beim Dienst MyFritz
  • Anlegen eines Benutzers mit VPN-Zugriff

Das Vorgehen ist nicht kompliziert und es existieren im Internet diverse Anleitungen dazu, z.B. auf der Seite des FRITZ!Box-Herstellers AVM.

Ermittlung der Zugriffsdaten

Für die VPN-Verbindung zur FRITZ!Box werden einige Zugangsdaten benötigt, die in FRITZ!OS ausgelesen werden können. Unter „System“ > „FRITZ!Box-Benutzer“ wählt man dazu den entsprechenden Benutzer zur Bearbeitung aus.

Wenn der Haken bei „VPN“ gesetzt und die Einstellung gespeichert ist, erscheint daneben ein Link „VPN-Verbindungsdaten anzeigen“. Per Klick öffnet sich ein Pop-Up mit den benötigten Informationen.

Eintragen der Daten in die Vorlage der Profildatei

Für das VPN-Konfigurationsprofil sind unterschiedliche Einstellungen möglich. Zwei Vorlagen sind unten aufgeführt. In beiden Fällen wird Code in einen Texteditor eingefügt. Dann müssen die Zugangsdaten (Beschaffung s. oben) an den passenden Stellen (gekennzeichnet durch GROSSBUCHSTABEN) eingefügt werden. Die fertige Datei wird als vpn.mobileconfig gespeichert. Dabei ist nur die Dateiendung wichtig.

Vorlage 1: Always On Full Tunnel

Im einfachsten Fall wird die Verbindung immer, d.h. bei WLAN- und Mobilfunkverbindung aufgebau und alle Daten darüber „getunnelt“. Das gewährt den höchsten Schutz davor, dass der WLAN- oder Mobilfunk-Betreiber die Daten ausspäht oder gar manipuliert. Es sind alle Internetdienste verfügbar, auf die man auch in Deutschland zugreifen kann.

Achtung: Mit dieser Konfiguration müssen alle Daten den Umweg über die heimische FRITZ!Box nehmen, was zu Geschwindigkeitseinbußen führen kann. Manche Dienste, auf die man im Ausland möglicherweise angewiesen ist, sind so auch gar nicht verfügbar (Bsp.: Beijing Healthkit). Daher empfehle ich für das iPhone in China die zweite Vorlage.

<?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>UserDefinedName</key>
      <string>VPN_AlwaysOn</string>
      <key>PayloadDisplayName</key>
      <string>VPN_AlwaysOn</string>
      <key>PayloadIdentifier</key>
      <string>com.vpn.vpn2</string>
      <key>PayloadUUID</key>
      <string>E664AF07-677A-D8C9-16DE-0386A4EDB686</string>
      <key>VPNType</key>
      <string>IPSec</string>
      <key>IPSec</key>
      <dict>
        <key>RemoteAddress</key>
        <string>ADRESSEDEINERFRITZBOX.myfritz.net</string>
        <key>AuthenticationMethod</key>
        <string>SharedSecret</string>
        <key>SharedSecret</key>
        <string>DEINSHAREDSECRET</string>
        <key>XAuthEnabled</key>
        <integer>1</integer>
        <key>XAuthName</key>
        <string>DEINBENUTZERNAME</string>
        <key>XAuthPassword</key>
        <string>BENUTZERPASSWORT</string>
        <key>LocalIdentifier</key>
        <string>DEINBENUTZERNAME</string>
        <key>LocalIdentifierType</key>
        <string>KeyID</string>
      </dict>
      <key>OnDemandEnabled</key>
      <integer>1</integer>
      <key>OnDemandRules</key>
      <array>
        <dict>
          <!-- VPN Default state -->
          <key>Action</key>
          <string>Connect</string>
        </dict>
      </array>
      <key>OverridePrimary</key>
      <true/>
      <key>IPv4</key>
      <dict>
        <key>OverridePrimary</key>
        <integer>1</integer>
      </dict>
      <key>PayloadType</key>
      <string>com.apple.vpn.managed</string>
      <key>PayloadVersion</key>
      <integer>1</integer>
    </dict>
  </array>
  <key>PayloadDisplayName</key>
  <string>VPN Configurations</string>
  <key>PayloadIdentifier</key>
  <string>2E6CBADD-3B7F-16DB-8B2C-968CF3F7ADE2</string>
  <key>PayloadRemovalDisallowed</key>
  <false/>
  <key>PayloadType</key>
  <string>Configuration</string>
  <key>PayloadUUID</key>
  <string>21778048-47C6-8895-29A1-DFB2B776BF99</string>
  <key>PayloadVersion</key>
  <integer>1</integer>
</dict>
</plist>

Vorlage 2: VPN-Tunnel für ausgewählte Dienste

In diesem Fall werden nicht alle Daten durch den VPN-Tunnel übertragen. Lokale chinesische Dienste (*.cn) werden davon ausgenommen. Häufig blockierte Dienste (von Google, Facebook, Twitter) sowie alle deutschen Domains (*.de) werden immer über den VPN-Tunnel kontaktiert. Bei den übrigen Übertragungen wird der VPN-Tunnel verwendet, falls der Dienst anders nicht erreicht wird.

<?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>UserDefinedName</key>
      <string>VPN_CN</string>
      <key>PayloadDisplayName</key>
      <string>VPN_CN</string>
      <key>PayloadIdentifier</key>
      <string>com.vpn.vpn3</string>
      <key>PayloadUUID</key>
      <string>E664AF07-677A-D8C9-16DE-0386A4EDB687</string>
      <key>VPNType</key>
      <string>IPSec</string>
      <key>IPSec</key>
      <dict>
        <key>RemoteAddress</key>
        <string>ADRESSEDEINERFRITZBOX.myfritz.net</string>
        <key>AuthenticationMethod</key>
        <string>SharedSecret</string>
        <key>SharedSecret</key>
        <string>DEINSHAREDSECRET</string>
        <key>XAuthEnabled</key>
        <integer>1</integer>
        <key>XAuthName</key>
        <string>BENUTZERNAME</string>
        <key>XAuthPassword</key>
        <string>BENUTZERPASSWORT</string>
        <key>LocalIdentifier</key>
        <string>BENUTZERNAME</string>
        <key>LocalIdentifierType</key>
        <string>KeyID</string>
      </dict>
      <key>OnDemandEnabled</key>
      <integer>1</integer>
      <key>OnDemandRules</key>
      <array>
        <dict>
          <key>Action</key>
          <string>EvaluateConnection</string>
          
          <key>InterfaceTypeMatch</key>
          <string>WiFi</string>
          
          <key>ActionParameters</key>
          <array>
            <dict>
              <key>Domains</key>
              <array>
                <string>*.cn</string>
                <string>spotify.com</string>
              </array>
              <key>DomainAction</key>
              <string>NeverConnect</string>
            </dict>
            
            <dict>
              <key>Domains</key>
              <array>
                <string>apple.com</string>
                <string>google.com</string>
                <string>gmail.com</string>
                <string>googlemail.com</string>
                <string>ggpht.com</string>
                <string>wa.me</string>
                <string>whatsapp-plus.info</string>
                <string>whatsapp-plus.me</string>
                <string>whatsapp-plus.net</string>
                <string>whatsapp.cc</string>
                <string>whatsapp.com</string>
                <string>whatsapp.info</string>
                <string>whatsapp.net</string>
                <string>whatsapp.org</string>
                <string>whatsapp.tv</string>
                <string>whatsappbrand.com</string>
                <string>t.co</string>
                <string>ads-twitter.com</string>
                <string>periscope.tv</string>
                <string>pscp.tv</string>
                <string>tweetdeck.com</string>
                <string>twimg.com</string>
                <string>twitpic.com</string>
                <string>twitter.co</string>
                <string>twitter.com</string>
                <string>twitterinc.com</string>
                <string>twitteroauth.com</string>
                <string>twitterstat.us</string>
                <string>twttr.com</string>
                <string>youtube.com</string>
                <string>*.de</string>
              </array>
              <key>DomainAction</key>
              <string>ConnectIfNeeded</string>
              <key>RequiredURLStringProbe</key>
              <string>0.0.0.0</string>
            </dict>
          </array>
        </dict>
        <dict>
          <key>Action</key>
          <string>EvaluateConnection</string>
          
          <key>InterfaceTypeMatch</key>
          <string>Cellular</string>
          
          <key>ActionParameters</key>
          <array>
            <dict>
              <key>Domains</key>
              <array>
                <string>apple.com</string>
                <string>google.com</string>
                <string>gmail.com</string>
                <string>googlemail.com</string>
                <string>ggpht.com</string>
                <string>wa.me</string>
                <string>whatsapp-plus.info</string>
                <string>whatsapp-plus.me</string>
                <string>whatsapp-plus.net</string>
                <string>whatsapp.cc</string>
                <string>whatsapp.com</string>
                <string>whatsapp.info</string>
                <string>whatsapp.net</string>
                <string>whatsapp.org</string>
                <string>whatsapp.tv</string>
                <string>whatsappbrand.com</string>
                <string>t.co</string>
                <string>ads-twitter.com</string>
                <string>periscope.tv</string>
                <string>pscp.tv</string>
                <string>tweetdeck.com</string>
                <string>twimg.com</string>
                <string>twitpic.com</string>
                <string>twitter.co</string>
                <string>twitter.com</string>
                <string>twitterinc.com</string>
                <string>twitteroauth.com</string>
                <string>twitterstat.us</string>
                <string>twttr.com</string>
                <string>youtube.com</string>
                <string>*.de</string>
                <string>*wikipedia*</string>
              </array>
              <key>DomainAction</key>
              <string>ConnectIfNeeded</string>
              <key>RequiredURLStringProbe</key>
              <string>https://www.google.de/</string>
            </dict>
            <dict>
              <key>Domains</key>
              <array>
                <string>*.cn</string>
                <string>spotify.com</string>
                <string>*</string>
              </array>
              <key>DomainAction</key>
              <string>NeverConnect</string>
            </dict>
          </array>
        </dict>
        <dict>
          <key>Action</key>
          <string>Disconnect</string>
        </dict>
      </array>
      <key>OverridePrimary</key>
      <true/>
      <key>IPv4</key>
      <dict>
        <key>OverridePrimary</key>
        <integer>0</integer>
      </dict>
      <key>PayloadType</key>
      <string>com.apple.vpn.managed</string>
      <key>PayloadVersion</key>
      <integer>1</integer>
    </dict>
  </array>
  <key>PayloadDisplayName</key>
  <string>VPN Configurations</string>
  <key>PayloadIdentifier</key>
  <string>2E6CBADD-3B7F-16DB-8B2C-968CF3F7ADE3</string>
  <key>PayloadRemovalDisallowed</key>
  <false/>
  <key>PayloadType</key>
  <string>Configuration</string>
  <key>PayloadUUID</key>
  <string>21778048-47C6-8895-29A1-DFB2B776BF98</string>
  <key>PayloadVersion</key>
  <integer>1</integer>
</dict>
</plist>

Installation und Aktivierung des Profils

Die Installation des Konfigurationsprofils ist einfach:

MacOS

Unter MacOS kann man die Datei direkt per Doppelklick öffnen. Danach öffnet man die Systemeinstellungen und wählt den Eintrag „Profile“ (bis MacOS 12). Das neue Profil wird unter „Geladen“ mit einem kleinen gelben Dreieck angezeigt. Wählt man es aus, kann man es „Installieren…“, wozu Adminrechte abgefragt werden.

In der Menüleiste oben rechts kann die VPN-Verbindung daraufhin ausgewählt werden. Falls sie dort nicht sichtbar ist, findet man sie in den Systemeinstellungen unter Netzwerk und kann dort auch den Haken setzen bei „VPN-Status in der Menüleiste anzeigen“.

iOS/iPadOS

Auf dem iPhone oder iPad installiert man das Konfigurationsprofil am einfachsten, in dem man es per AirDrop an das entsprechende Gerät schickt. Alternativ kann man es auch per Email verschicken. Danach wird es direkt oben Einstellungen angezeigt und man kann es installieren. Dazu wird das Gerätepasswort benötigt.

Die Verbindung sollte daraufhin automatisch aufgebaut werden. Man kann dies jedoch auch unter „Einstellungen“ > „VPN“ (de)aktivieren bzw. eine andere VPN-Verbindung (jedoch immer nur eine) auswählen.

FRITZ!Box-VPN-Verbindung mit mehreren Geräten

Eine FRITZ!Box kann laut AVM bis zu 12 VPN-Verbindungen aufbauen, bevor es zu Einschränkungen kommt. Mir ist jedoch aufgefallen, dass bereits bei zwei Geräten Verbindungsabbrüche vorkommen, wenn bei für beide Verbindungen der gleiche FRITZ!Box-Benutzer genutzt wird.

Wer mehrere Geräte per VPN mit der FRITZ!Box verbinden möchte, sollte dafür also jeweils einen Benutzer anlegen.

Anforderungen an den Internetanschluss

Geschwindigkeit

Im VPN-Betrieb müssen alle Daten durch den Up- und Downlink eurer FRITZ!Box. Die Reaktionszeiten nehmen dabei zwangsläufig zu. Außerdem kann die Datenrate dadurch geringer sein. Denn insbesondere bei DSL-Verbindungen ist die Uploadgeschwindigkeit oft deutlich geringer als der Download. Das fällt im normalen Betrieb selten auf, ist im VPN-Betrieb aber das „Nadelöhr“.

Akzeptable Ergebnisse werden bereits mit 10 MBit/s Upload erreicht. Mit 40 MBit/s Upload (bei „DSL100“) oder mehr läuft es aber deutlich flüssiger.

Anschlusstyp

Der VPN-Dienst über MyFritz funktioniert nur mit Anschlüssen, die über eine IPv4-Adresse verfügen.

2 Gedanken zu „VPN-Verbindung zur FRITZ!Box automatisch aufbauen und halten“

Schreibe einen Kommentar

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