Netzwerkanalyse, Fehlersuche, Testberichte
Home / News
Netzwerkanalyse
Grundlagen
Verkabelung
Erste Schritte
Baselining
Let's sniff
Tools
Auswerten/Filtern
Typische Probleme 1
Typische Probleme 2
Sicherheit
Bücher
Tutorials
Cacti
DSL einrichten
DynDNS einrichten
m0n0wall | pfSense
Nmap
VirtualBox
Wireshark
FAQ
Know How
Testberichte
Hardware-DB
Netzwerklexikon
Links / Service
Suche
Kontakt
Impressum
Feedback
Sitemap
Tutorials

VPN mit der FritzBox

AVM bietet für seine FRITZ!Box einen kostenlosen VPN-Client für Windows an. Die Software ermöglicht die einfache Einrichtung eines "Client to Site VPN" für mobile User.

Dieses Tutorial nutzt eine AVM FRITZ!Box Fon WLAN 7270 mit der Firmware-Version 54.04.67 und den FRITZ!Fernzugang Version 01.01.03 vom 6.10.2008 (Vista/XP) sowie FRITZ!Box-Fernzugang einrichten Version 01.00.05 vom 29.9.2008 (Vista/XP/2000).

Die VPN-Lösung von AVM basiert auf zwei Windows-Programmen. Mit FRITZ!Box-Fernzugang einrichten werden die Konfigurationsdateien erstellt. Für den Aufbau des VPN-Tunnels ist dann FRITZ!Fernzugang verantwortlich. Die Einrichtung läuft in drei Schritten ab:

  1. Erzeugung der Konfigurationsdateien
  2. Import der Konfiguration in die FritzBox
  3. Import der Konfiguration in den VPN-Client

AVM FRITZ!Box-Fernzugang einrichten

Mit dem Tool FRITZ!Box-Fernzugang einrichten werden die Konfigurationsdateien für die Fritzbox und den VPN-Client erstellt. Das Programm steht auf dem AVM VPN Service-Portal zum Download bereit. Beim ersten Start des Programmes sind noch keine Konfiguration vorhanden:

Programm zum VPN einrichten

Zum Erstellen einen neuer VPN-Verbindung klicken Sie auf das Symbol Neu. Da wir einen VPN-Zugang für einen einzelnen Benutzer einrichten wollen, wählen Sie die Option Fernzugang für einen Benutzer einrichten aus.

Client to Site VPN

Im folgenden Schritt benötigt das Konfiguartionsprogramm die E-Mail-Adresse des mobilen Benutzers. Diese wird aber nur zur Identifikation genutzt. Sie können also auch eine andere Zeichenkette eingeben.

E-Mail des Benutzers

Damit der mobile Benutzer einen VPN-Tunnel zur Fritzbox aufbauen kann, benötigt diese eine feste IP-Adresse oder einen DNS-Namen. Da bei ADSL- und VDSL-Zugängen in der Regel dynamische IP-Adressen zum Einsatz kommen, benötigt man einen dynamischen DNS-Eintrag. Details finden Sie in meinen DynDNS Tutorial. Tragen Sie den DynDNS-Namen der Fritzbox hier ein.

DynDNS Name der Fritzbox

Die Fritzbox nutzt per Default das IP-Netz 192.168.178.0/24 für das LAN. Der erste VPN-Benutzer bekommt die IP-Adresse 192.168.178.201 zugewiesen. Hier können Sie die Werkseinstellungen übernehmen.

IP-Adressen

Die Konfigurationsdateien sind fertig. Sie können sich das Verzeichnis im Explorer anzeigen lassen. Die Datei fritzbox.cfg muss in die Fritzbox importiert werden. Die Datei vpnuser.cfg wird vom VPN-Client benötigt. Die Dateinamen enthalten zusätzlich die Kennung der Fritzbox bzw. die E-Mail des Benutzers.

Erstellung der Konfigurationsdateien

Die fertige Konfiguration ist im Tool sichtbar.

Fertige Konfiguartion

fritzbox.cfg

Die fritzbox.cfg ist für den Import in die Fritzbox bestimmt. Ein Blick in die Konfigurationsdateien kann bei der Einrichtung von VPN-Tunnel zu Geräten von Drittherstellern hilfreich sein. Gut zu sehen sind die Einstellung auf Aggressiv Mode und der Pre-Shared Key (PSK).

vpncfg {
        connections {
                enabled = yes;
                conn_type = conntype_user;
                name = "Mirko";
                always_renew = no;
                reject_not_encrypted = no;
                dont_filter_netbios = yes;
                localip = 0.0.0.0;
                local_virtualip = 0.0.0.0;
                remoteip = 0.0.0.0;
                remote_virtualip = 192.168.178.202;
                remoteid {
                        user_fqdn = "Mirko";
                }
                mode = phase1_mode_aggressive;
                phase1ss = "all/all/all";
                keytype = connkeytype_pre_shared;
                key = "af5eAa5Mdbw@84Lea1aa4c4bb0cI>b6c3";
                cert_do_server_auth = no;
                use_nat_t = no;
                use_xauth = no;
                use_cfgmode = no;
                phase2localid {
                        ipnet {
                                ipaddr = 192.168.178.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2remoteid {
                        ipaddr = 192.168.178.202;
                }
                phase2ss = "esp-all-all/ah-none/comp-all/pfs";
                accesslist = 
                             "permit ip 192.168.178.0 255.255.255.0 192.168.178.202 255.255.255.255";
        } {
                enabled = yes;
                conn_type = conntype_user;
                name = "mirko";
                always_renew = no;
                reject_not_encrypted = no;
                dont_filter_netbios = yes;
                localip = 0.0.0.0;
                local_virtualip = 0.0.0.0;
                remoteip = 0.0.0.0;
                remote_virtualip = 192.168.178.201;
                remoteid {
                        user_fqdn = "mirko";
                }
                mode = phase1_mode_aggressive;
                phase1ss = "all/all/all";
                keytype = connkeytype_pre_shared;
                key = "S958aa21eb5b8(e384A27f6c5b0e7{b9d5c6";
                cert_do_server_auth = no;
                use_nat_t = no;
                use_xauth = no;
                use_cfgmode = no;
                phase2localid {
                        ipnet {
                                ipaddr = 192.168.178.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2remoteid {
                        ipaddr = 192.168.178.201;
                }
                phase2ss = "esp-all-all/ah-none/comp-all/pfs";
                accesslist = 
                             "permit ip 192.168.178.0 255.255.255.0 192.168.178.201 255.255.255.255";
        }
        ike_forward_rules = "udp 0.0.0.0:500 0.0.0.0:500", 
                            "udp 0.0.0.0:4500 0.0.0.0:4500";
}

// EOF

vpnuser.cfg

Die vpnuser.cfg wird vom FRITZ!Fernzugang benötigt.

version {
        revision = "$Revision: 1.30 $";
        creatversion = "1.1";
}

pwcheck {
}

datapipecfg {
        security = dpsec_quiet;
        icmp {
                ignore_echo_requests = no;
                destunreach_rate {
                        burstfactor = 6;
                        timeout = 1;
                }
                timeexceeded_rate {
                        burstfactor = 6;
                        timeout = 1;
                }
                echoreply_rate {
                        burstfactor = 6;
                        timeout = 1;
                }
        }
        masqtimeouts {
                tcp = 15m;
                tcp_fin = 2m;
                tcp_rst = 3s;
                udp = 5m;
                icmp = 30s;
                got_icmp_error = 15s;
                any = 5m;
                tcp_connect = 6m;
                tcp_listen = 2m;
        }
        ipfwlow {
                input {
                }
                output {
                }
        }
        ipfwhigh {
                input {
                }
                output {
                }
        }
        NAT_T_keepalive_interval = 20;
}

targets {
        policies {
                name = "fritz.uridium.net";
                connect_on_channelup = no;
                always_renew = no;
                reject_not_encrypted = no;
                dont_filter_netbios = yes;
                localip = 0.0.0.0;
                virtualip = 192.168.178.202;
                remoteip = 0.0.0.0;
                remotehostname = "fritz.uridium.net";
                localid {
                        user_fqdn = "Mirko";
                }
                mode = mode_aggressive;
                phase1ss = "all/all/all";
                keytype = keytype_pre_shared;
                key = "af2eAa5Mabw@84Kea1aa1c4bc0cI>b2c3";
                cert_do_server_auth = no;
                use_nat_t = no;
                use_xauth = no;
                use_cfgmode = no;
                phase2localid {
                        ipaddr = 192.168.178.202;
                }
                phase2remoteid {
                        ipnet {
                                ipaddr = 192.168.178.0;
                                mask = 255.255.255.0;
                        }
                }
                phase2ss = "esp-all-all/ah-none/comp-all/pfs";
                accesslist = "permit ip any 192.168.178.0 255.255.255.0";
                wakeupremote = no;
        }
}

policybindings {
}

// EOF

VPN in der Fritzbox einrichten

Rufen Sie die Weboberfläche Ihrer Fritzbox im Browser auf: http://fritz.box/ oder http://192.168.178.1/. Der Import der Konfigurationsdatei erfolgt unter Einstellungen / Internet / Freigaben / VPN. Klicken Sie auf Durchsuchen und wählen Sie die vorher erzeugte Datei fritzbox.cfg aus. Starten Sie den Import mit der Schaltfläche VPN-Einstellungen importieren.

Import der VPN Konfiguartion in die Fritzbox

Nicht mehr benötigte Konfigurationen können über die Schaltfläche mit dem roten Kreuz gelöscht werden.

FRITZ!Fernzugang

Für den VPN-Zugriff auf die Fritzbox benötigt der Client die Windows-Software FRITZ!Fernzugang. Die aktuelle Version finden Sie auf dem AVM VPN Service-Portal.

FRITZ Fernzugang mit dem Assistent konfigurieren

Nach dem erfolgreichen Import der vpnuser.cfg zeigt der FRITZ!Fernzugang die VPN-Verbindung an. Mit der Schaltfläche Aufbau können Sie die VPN-Verbindung herstellen.

FRITZ-Fernzugang mit importierter Konfiguration

Der Client darf sich nicht im selben Netz befinden wie die Fritzbox. Für einen Test werden daher zwei Internetzugänge benötigt.

Fehlersuche

Für die Nutzung von VPN muss das Wireless LAN der Fritzbox mit WPA oder WPA2 verschlüsselt sein. Bei Nutzung von WEP oder bei einem offenen WLAN, deaktiviert die Fritzbox die VPN-Funktionalität.

IKE-Fehlermeldungen der Fritzbox

IKE-Error 0x200A "invalid exchange type"
IKE-Error 0x200B "exchange type not supported"
IKE-Error 0x200C "invalid major version"
IKE-Error 0x200D "invalid minor version"
IKE-Error 0x200E "invalid protocol version"
IKE-Error 0x000F "payloads not encrypted"
IKE-Error 0x0010 "payloads are encrypted"
IKE-Error 0x0011 "invalid cookie"
IKE-Error 0x0012 "wrong initiator cookie"
IKE-Error 0x0013 "wrong responder cookie"
IKE-Error 0x0014 "invalid payload type"
IKE-Error 0x0015 "invalid msg id type"
IKE-Error 0x0016 "invalid protocol id type"
IKE-Error 0x0017 "invalid spi"
IKE-Error 0x0018 "invalid doi"
IKE-Error 0x0019 "unexpected value"
IKE-Error 0x001A "invalid key size"
IKE-Error 0x001B "payload malformed"
IKE-Error 0x001C "invalid id"
IKE-Error 0x001D "invalid transform id"
IKE-Error 0x001E "unexpected next payload"
IKE-Error 0x001F "missing payload"
IKE-Error 0x2020 "hash mismatch in received packet"
IKE-Error 0x2021 "invalid hash on send"
IKE-Error 0x2022 "auth method not supported"
IKE-Error 0x2023 "attribute not supported"
IKE-Error 0x1024 "dh key generation failed"
IKE-Error 0x1025 "error in crypto module"
IKE-Error 0x2026 "no proposal chosen"
IKE-Error 0x2027 "timeout"
IKE-Error 0x1028 "quickmode: no isakmp sa"
IKE-Error 0x0029 "info message without spi"
IKE-Error 0x202A "certificate not available"
IKE-Error 0x202B "id type not supported"
IKE-Error 0x202C "dns: host/domain not found"
IKE-Error 0x202D "dns: timeout"
IKE-Error 0x202E "dns: unspecified error"
IKE-Error 0x2031 "unspecified error"
IKE-Error 0x2032 "xauth failed"
IKE-Error 0x2033 "xauth authentication failed received"
IKE-Error 0x2034 "attribute of unknown type received"
IKE-Error 0x1035 "peers xauth reply contained not all requested values"
IKE-Error 0x2036 "request for unsupported xauth type received"
IKE-Error 0x2037 "request attribute not available"
IKE-Error 0x2038 "xauth failed, reason: timeout"
IKE-Error 0x2039 "config mode failed, reason: timeout"
IKE-Error 0x203A "timeout while waiting for initial config mode packet"
IKE-Error 0x203B "timeout while waiting for initial xauth packet"
IKE-Error 0x203C "config mode reply msg incomplete"
IKE-Error 0x203D "phase 1 sa removed during negotiation"
IKE-Error 0x203E "phase 1 aborted, ip address of neighbour has changed"
IKE-Error 0x203F "authentication failed"
IKE-Error 0x2040 "invalid hash"

Der Client muss über eine aktive Netzwerkverbindung verfügen. Ohne diese werden keine Konfigurationen angezeigt.

Namensauflösung / DNS / DynDNS

Der Client stellt die Verbindung zur Fritzbox über deren IP-Adresse her. Dazu erfolgt zuerst eine Namensauflösung mit DNS. Testen Sie die DNS-Auflösung mit einem ping meinefritzbox.dyndns.org. Den Hostnamen müssen Sie natürlich anpassen. Die angezeigte IP-Adresse muss mit der WAN-IP auf der Startseite der Fritzbox übereinstimmen.

Dienste für den AVM FRITZ!Fernzugang

Die AVM-Software installiert drei zusätzliche Dienste im Windows:

AVM FRITZ!Fernzugang Cert Service
AVM FRITZ!Fernzugang Client
AVM FRITZ!Fernzugang IKE Service

Alle drei Dienste müssen im Status "Gestartet" sein, damit der Fernzufriff funktioniert. Ansonsten folgt auf die Statusmeldung "Anmelden am Dienst AVM FRITZ!Fernzugang" der Fehler "Die Anmeldung am Dienst FRITZ!Fernzugang ist fehlgeschlagen". Mögliche Ursache können andere VPN-Clients (Netgear, NCP, Lancom) auf dem PC sein. Diese müssen deinstalliert werden.

Monitor.exe

Im Verzeichnis "C:\Programme\FRITZ!Fernzugang" befindet sich das Programm monitor.exe. Das kleine Tool zeigt Statusinformationen zu VPN-Verbindungen an:

Monitor.exe zeigt Statusinformationen der VPN-Verbindungen

Die Logfiles in "C:\Programme\FRITZ!Fernzugang\logs" können bei der Fehlersuche ebenfalls nützlich sein.

VPN Passthrough

Der FRITZ!Fernzugang basiert auf IPsec. Geht der Client über einen DSL-Router ins Internet, muss der Router VPN Passthrough für IPsec (IKE, ESP) unterstützen. Mitunter blocken Mobilfunk- und UMTS-Provider IPsec in ihren Netzen.

Weiterführende Informationen zu VPN

Bei Fragen zu VPN wird Ihnen im Netzwerkforum geholfen.

 

 
© 2004-2023, network lab - we make your net work - Netzwerkforum
aktualisiert am 22.03.2012