Anleitung zur Einrichtung & Konfiguration einer VPN-Verbindung zwischen einer FritzBOX und Windows, akiralinux (Ubuntu) und Android Clients 2014 Stefan W. Lambert kontakt@stefanius.de
Copyright-Hinweis Dieses Dokument obliegt den Bestimmungen der GNU-Lizenz für freie Dokumentation (GNU Free Documentation License Version 1.2) und darf unter Beachtung der Bestimmungen dieser Lizenz frei genutzt werden. Haftungsausschluß Die Nutzung dieses Dokumentes erfolgt auf eigene Gefahr. Der Autor übernimmt keinerlei Haftung für Schäden, die durch die Verwendung des Dokumentes entstehen. Ebenso übernimmt der Autor keinerlei Haftung für inhaltliche oder fachliche Mängel des Dokumentes Autor Stefan W. Lambert kontakt@stefanius.de - Seite 2 -
Inhaltsverzeichnis 0. Vorbemerkung...5 1. Voraussetzungen...6 2. VPN-Konfigurationsdatei...7 2.1 Anpassung Konfigurationsdatei...7 2.2 Import VPN-Konfigurationsdatei in FRITZ!Box...10 3. VPN-Clients konfigurieren...13 3.1 Windows Client...13 3.1.1 Konfiguration...13 3.1.2 VPN-Verbindung herstellen...20 3.2 akiralinux (Ubuntu) Client...23 3.2.1 Konfiguration...24 3.2.2 VPN-Verbindung herstellen...28 3.3 Android Client...30 3.3.1 Konfiguration...30 3.3.2 VPN-Verbindung herstellen...33 - Seite 3 -
- Seite 4 -
0.Vorbemerkung AVM, der Hersteller der FRITZ!Boxen, stellt zur VPN-Konfiguration das Windows Programm 'FRITZ!Box Fernzugang einrichten' (http://avm.de/fileadmin/user_upload/de/service/vpn/fritz_boxfernzugang_einrichten.exe) zur Verfügung. Das Programm erstellt eine Klartext-VPNKonfigurationsdatei, die mit jedem Texteditor eingelesen (und verändert) werden kann. Dieses Dokument ist keine Anleitung zur Bedienung der o. g. AVM Software, sondern beschreibt die notwendigen Arbeitsschritte zur Anpassung der VPN Konfigurationsdatei an individuelle NetzwerkGegebenheiten, den Import der VPN-Konfigurationsdatei in die FRITZ!Box, sowie die Konfiguration der VPN-Clientsoftware für Windows, Linux und Android. Apple iphone, ipad und MAC können zwar ebenso als VPN-Clients genutzt werden. In Ermangelung passender Testhardware ist deren Einrichtung in dieser Anleitung jedoch nicht enthalten Die Anpassung der VPN-Konfigurationsdatei hat gegenüber der Verwendung der AVM-Software m. E. den Vorteil, dass das Programm nicht erst heruntergeladen und installiert werden muss. Ausserdem ist es nur für Windows verfügbar, so dass Linux Benutzer zur Nutzung der Software 'Wine' benötigen. Die in diesem Tutorial enthaltene 'FRITZ!Box VPN-Konfigurationsdatei' kann unter http://dl.stefanius.de/cubie/software/vpn_fritzbox/fritzbox_vpn_mmustermann.cfg heruntergeladen werden. Anwender, die die VPN-Konfigurationsdatei lieber mit dem genannten AVM Programm erstellen möchten, finden unter 'http://avm.de/service/vpn/praxis-tipps/schritt-fuer-schritt-anleitungfernzugang-fuer-einen-benutzer-einrichten/' eine passende Anleitung hierfür. Anmerkung: In dieser Anleitung wird die VPN-Verbindung so konfiguriert, dass der gesamte Datenverkehr des VPNClients über die VPN-Verbindung läuft. Damit der VPN-Client auch auf Hosts und Webservices (wie z. B. seafile.mynet.home oder baikal.mynet.home) im Heimnetzwerk zugreifen kann, bestehen zwei Konfigurationsmöglichkeiten. 1. 2. Die lokale 'hosts'-datei auf dem VPN-Client Der Eintrag eines (vorhandenen) DNS-Servers im Heimnetzwerk in die VPN bzw. Netzwerkkonfiguration des VPN-Clients Diese Anleitung beschreibt ausschließlich die notwendigen Arbeitschritte für Punkt 2 - Seite 5 -
1.Voraussetzungen Zur Einrichtung eines VPN wird entweder eine öffentliche IP-Adresse oder ein Dynamic DNS-Name für die FRITZ!Box benötigt. Dies gewährleistet, dass die FRITZ!Box immer unter der gleichen IP-Adresse vom Internet erreicht werden kann. Mehr Informationen zu Dynamic DNS sind unter http://de.wikipedia.org/wiki/dynamisches_dns zu finden. Als DDNS-Dienst nutze ich seit einiger Zeit das Angebot der Firma TwoDNS (http://twodns.de/de ). Das Unternehmen hat seinen Firmensitz in Deutschland, bietet bis zu fünf kostenlose Dynamic DNS Adressen und nervt seine Kunden nur selten mit Werbemails. Grundsätzlich kann jedoch jeder beliebige Dynamic DNS Anbieter genutzt werden. - Seite 6 -
2. VPN-Konfigurationsdatei 2.1 Anpassung VPN-Konfigurationsdatei Die VPN Konfigurationsdatei enthält die benötigten Angaben zur Einrichtung einer benutzerbezogenen FRITZ!Box VPN Verbindung. AVM supportet bis zu acht VPN-Verbindungen, wobei die Anzahl der gleichzeitigen VPN-Verbindungen lediglich durch die Bandbreite und Auslastung der Internetleitung beschränkt ist. Der Aufbau der VPN-Konfigurationsdatei ist folgendermaßen: /* * C:\Users\mmustermann\AppData\Roaming\AVM\FRITZ! Fernzugang\mustermann_dynvpn\fritzbox_VPN_mmustermann.cfg * Fri Nov 21 11:56:49 2014 */ vpncfg { connections { enabled = yes; conn_type = conntype_user; name = "Benutzername"; 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 = Interne_IP-Adresse_VPN-Client; remoteid { key_id = "Benutzername"; } mode = phase1_mode_aggressive; phase1ss = "all/all/all"; keytype = connkeytype_pre_shared; key = "Pre_Shared_Key"; cert_do_server_auth = no; use_nat_t = yes; use_xauth = yes; xauth { valid = yes; username = "Benutzername"; passwd = "Passwort"; } use_cfgmode = yes; phase2localid { - Seite 7 -
ipnet { ipaddr = 0.0.0.0; mask = 0.0.0.0; } } phase2remoteid { ipaddr = Interne_IP-Adresse_VPN-Client; } phase2ss = "esp-all-all/ah-none/comp-all/no-pfs"; accesslist = "permit ip Internes_IP-Netzwerk 255.255.255.0 Interne_IP-Adresse_VPN-Client 255.255.255.255", "permit ip any Interne_IP-Adresse_VPN-Client 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 Die farbig markierten Textteile müssen an die jeweiligen Gegebenheiten angepasst werden Textteil Bedeutung Beispiel Benutzername Name des VPN Benutzers mmustermann Interne_IP-Adresse_VPN-Client Interne IP-Adresse die dem VPN Client beim erfolgreichen Verbindungsaufbau zugewiesen wird 192.168.1.192 Pre_Shared_Key Key für die VPN-Verbindung 01234567890 Passwort Passwort für den Verbindungsaufbau 12345678 Internes_IP-Netzwerk IP-Adresse des internen IPNetzwerkes 192.168.1.0 Anmerkung zum Pre_Shared_Key: Der Pre_Shared_Key dient zur Verschlüsselung der VPN-Verbindung. Er sollte mindestens 20 Zeichen lang sein und Ziffern, sowie Groß-, Kleinbuchstaben und Sonderzeichen enthalten. Der in dieser Anleitung genutzte Pre_Shared_Key erfüllt keinerlei Sicherheitsvorgaben und ist nur für Demozwecke geeignet. - Seite 8 -
Beispiel VPN-Konfigurationsdatei: /* * C:\Users\slambert\AppData\Roaming\AVM\FRITZ! Fernzugang\mustermann_dynvpn\fritzbox_VPN_mmustermann.cfg * Fri Nov 21 11:56:49 2014 */ vpncfg { connections { enabled = yes; conn_type = conntype_user; name = "mmustermann"; 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.1.192; remoteid { key_id = "mmustermann"; } mode = phase1_mode_aggressive; phase1ss = "all/all/all"; keytype = connkeytype_pre_shared; key = "01234567890"; cert_do_server_auth = no; use_nat_t = yes; use_xauth = yes; xauth { valid = yes; username = "mmustermann"; passwd = "12345678"; } use_cfgmode = yes; phase2localid { ipnet { ipaddr = 0.0.0.0; mask = 0.0.0.0; } } phase2remoteid { ipaddr = 192.168.1.192; } phase2ss = "esp-all-all/ah-none/comp-all/no-pfs"; accesslist = "permit ip 192.168.1.0 255.255.255.0 192.168.1.192 255.255.255.255", "permit ip any 192.168.1.192 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 - Seite 9 -
2.2 Import VPN-Konfigurationsdatei in FRITZ!Box Zum Import der VPN-Konfigurationsdatei in die FRITZ!Box folgende Arbeitsschritte ausführen: Das Webinterface der FRITZ!Box gestartet und eingeloggt. In die 'erweiterte Ansicht' der FRITZ!Box gewechselt Im Menü der FRITZ!Box auf 'Internet / Freigaben' und dort in den Reiter 'VPN' wechseln Den Button 'VPN-Verbindung hinzufügen' auswählen' Hier 'Eine VPN-Konfiguration aus einer vorhandenen VPN-Einstellungsdatei importieren' auswählen und 'Weiter' - Seite 10 -
Den Button 'Durchsuchen' wählen In der nachfolgenden Dateiauswahlbox die VPN-Konfigurationsdatei auswählen - Seite 11 -
Jetzt den 'ok'-button auswählen und die Nacfrage mit 'ok' bestätigen und die Konfigurationsdatei importieren Durch Auswahl des Buttons 'Übernehmen' die neue VPN-Verbindung bestätigen. Damit ist der Import der Konfigurationsdatei abgeschlossen. Die neue VPN-Verbindung ist verfügbar und 'wartet' auf eine Verbindung. - Seite 12 -
3. VPN Clients konfigurieren 3.1 Windows Client 3.1.1 Konfiguration Als VPN-Client unter Windows verwende ich die kostenlose Software der Firma Shrew Soft (Download: https://www.shrew.net/download/vpn/vpn-client-2.2.2-release.exe). Der VPN-Client ist ausgereift und einfach zu konfigurieren. Nachdem die Software heruntergeladen und installiert ist, erfolgt die Konfiguration wie folgt. Programm starten und über 'Add' die Konfiguration einer neuen VPN-Verbindung beginnen - Seite 13 -
Reiter 'General' Bei Host Name or IP Address die Dynamic-DNS Server-Adresse der FRITZ!Box eintragen (in diesem Beispiel mustermann.dynvpn.de) Reiter 'Client' Keine Änderung Je nach Firmwareversion der FRITZ!Box muss u. U. bei 'NAT-Traversal' anstatt 'enable' die Option 'force-rfc' ausgewählt werden. - Seite 14 -
Reiter 'Name Resolution' Keine Änderung - Seite 15 -
Reiter 'Authentication' Als Authentication Method 'Mutual PSK + XAuth' auswählen; unter 'Local Identity' bei Identification Type 'Key Identifier' auswählen und bei 'Key ID String' den Benutzernamen (in der VPNKonfigurationsdatei der Name hinter der Bezeichnung ' key_id') eintragen (im Beispiel 'mmustermann'). Unter 'Remote Identity' bei Identification Type 'IP Address' auswählen - Seite 16 -
Unter 'Credentials' bei 'Pre Shared Key' den IPSec Pre-Shared Key des jeweiligen Benutzers eintragen (im Beispiel: 01234567890) Alle anderen Einstellungen werden bei den Vorgaben belassen Zum Abspeichern der VPN-Client Konfiguration den 'Save'-Button auswählen - Seite 17 -
DNS-Server des Heimnetzwerkes konfigurieren Damit der VPN-Client neben öffentlichen Domainnamen (z. B. google.de) auch Webservices im Heimnetzwerk (z.b. baikal.mynet.home) erreichen kann, bestehen zwei Möglichkeiten 1. in der lokalen 'hosts'-datei sind die entsprechenden Webservices eingetragen. (Informationen zur lokalen 'Hosts'-Datei auf Windowsrechnern sind z. B. unter http://praxistipps.chip.de/hosts-datei-bearbeiten-in-windows_1307 zu finden) 2. Im Heimnetzwerk ist ein DNS-Server vorhandenen Nachfolgend sind die Netzwerkeinstellungen für den Eintrag einen DNSServers im Heimnetzwerk beschrieben. Schritt 1 Netzwerkverbindung mit der die VPN-Verbindung aufgebaut wird, auswählen. (Alternativ können die folgenden Arbeitsschritte bei allen Netzwerkverbindungen ausgeführt werden) Anschließend rechte Maustaste drücken und aus dem Kontextmenü 'Eigenschaften' auswählen. - Seite 18 -
Schritt 2 Aus der Liste 'Internetprotokol Version4 (TCP/IPv4) und den Button 'Eigenschaften' auswählen Schritt 3 Hier den Checkbutton 'Folgende DNS-Server' auswählen und als ersten DNS-Server die IP-Adresse des DNS-Servers im Heimnetzwerk eintragen. Als zweiter DNS-Server sollte ein öffentlicher DNS-Server eingetragen werden (im Beispiel ein Google DNS-Server) Zum Schluss mit 'OK' speichern - Seite 19 -
3.1.2 VPN Verbindung herstellen Um die VPN-Verbindung zwischen dem Windows-Client und der FRITZ!Box aufzubauen muss als erstes die Shrew Soft VPN-Client Software gestartet werden Im nächsten Schritt wird die gewünschte VPN-Verbindung ( im Beispiel 'mustermann.dynvpn.de) und danach der 'Connect' Button ausgewählt Im nachfolgenden Programmfenster den Benuternamen und Passwort des VPN-Benutzers eingeben (in der VPN-Konfigurationsdatei die Werte von 'username' und 'passwd') und den Button 'Connect' auswählen - Seite 20 -
Die VPN-Verbindung zur FRITZ!Box wird nun hergestellt. Nach Fertigstellung erscheint im Kontrollfenster die Meldung 'tunnel enabled' Achtung!!!! Sobald eines der beiden Shrew Soft Programmfenster geschlossen wird, wird die VPNVerbindung beendet. Aus diesem Grund die beiden Programmfenster lediglich minimieren Überprüfung der VPN-Verbindung Öffnen eines cmd-fensters und Eingabe des Befehls 'ipconfig' dieser Befehl listet alle Netzwerkschnittstellen des Computers auf. Ethernet-Adapter LAN-Verbindung* 2: Verbindungsspezifisches DNS-Suffix: IPv4-Adresse.......... : 192.168.1.192 Subnetzmaske.......... : 255.255.255.0 Standardgateway......... : 0.0.0.0 Eine der Netzwerkschnittstellen (in diesem Beispiel die 'LAN-Verbindung 2') hat die IP-Adresse, die in der VPN-Konfigurationsdatei als IP-Adresse des VPN-Clients festgelegt wurde. - Seite 21 -
Beenden der VPN-Verbindung Zum Beenden der VPN-Verbindung im Shrew Soft 'VPN Connect' Programmfenster den Button 'Disconnect' auswählen. - Seite 22 -
3.2 akiralinux (Ubuntu) Client In dieser Anleitung wird die Einrichtung des VPN-Clients unter akiralinux, konkret unter 'akiralinux 14 on Zorin OS' beschrieben. Da akiralinux jedoch auf Ubuntu basiert, gilt sie ebenso für Ubuntu und alle Ubuntu Derivate einschl. Linux Mint. Für andere Linuxdistributionen ist die Anleitung nicht getestet. Da es sich bei der verwendeten Linuxsoftware jedoch um eine Standardsoftware handelt, sollten die beschriebenen Arbeitsschritte auch für andere Linuxdistributionen gelten. Bevor die Konfiguration des VPN-Clients durchgeführt werden kann, muss das dazu notwendige Networkmanager Plugin 'network-manager-vpnc' aus den Softwarepaketquellen installiert werden Dazu wird eine Terminalfenster geöffnet und folgender Befehls eingegeben. sudo apt-get install network-manager-vpnc Danach kann die Konfiguration des VPN starten - Seite 23 -
3.2.1 Konfiguration Schritt 1 Das Networkmanager-Icon in der Statuszeile, dann den Eintrag 'VPN-Verbindungen' und 'VPN konfigurieren' auswählen Schritt 2 'hinzufügen' auswählen - Seite 24 -
Schritt 3 Als Verbindungstyp ' Cisco-kompatibler VPN-Client' und danach den Button 'erzeugen' auswählen Schritt 4 Die abgefragten Werte wie im nachfolgenden Screenshot erläutert eintragen und den Button 'Erweitert' auswählen Wird im Feld 'Benutzerpassword' das Passwort des Benutzers eingetragen und der Wert auf 'gespeichert' gesetzt, erfolgt der Aufbau der VPN-Verbindung ohne Passwortabfrage. - Seite 25 -
Schritt 5 Auch hier die Werte wie im nachfolgenden Screenshot erläutert, einsetzen und den Button 'Anwenden' auswählen - Seite 26 -
Schritt 6 DNS-Server des Heimnetzwerkes konfigurieren Damit der VPN-Client neben öffentlichen Domainnamen (z. B. google.de) auch Webservices im Heimnetzwerk (z.b. baikal.mynet.home) auflösen kann, bestehen zwei Möglichkeiten 1. in der lokalen 'hosts'-datei sind die entsprechenden Webservices eingetragen. (Informationen zur lokalen 'Hosts'-Datei auf Linux (Ubuntu) Rechnern sind z. B. unter http://wiki.ubuntuusers.de/hosts zu finden) 2. Im Heimnetzwerk ist ein DNS-Server vorhandenen Nachfolgend sind die Netzwerkeinstellungen für den Eintrag einen DNSServers im Heimnetzwerk beschrieben. In den IPv4 - Einstellungen die Werte, wie im nachfolgenden Screenshot erläutert einsetzten und die VPN-Konfiguration speichern Damit ist die Konfiguration des VPN-Clients unter akiralinux abgeschlossen - Seite 27 -
3.2.2 VPN Verbindung herstellen Schritt 1 Das Networkmanager-Icon in der Statuszeile, dann den Eintrag 'VPN-Verbindungen' und die zuvor erstellte VPN-Verbindung 'Mustermann-VPN' auswählen Schritt 2 Im Fenster 'VPN legitimieren' das Password des VPN-BENUTZERS eingeben und den 'ok'-button auswählen - Seite 28 -
Sobald folgendes Mitteilungsfenster angezeigt wird, ist die VPN-Verbindung erfolgreich aufgebaut. - Seite 29 -
3.3 Android Client Die VPN-Client Software ist in Android (zumindest ab Android 4.0) standardmäßig enthalten. Sie ist unter 'Einstellungen => Netzwerkverbindungen => weitere Einstellungen => VPN' zu finden. 3.3.1 Konfiguration Schritt 1 Das '+' - Zeichen anwählen - Seite 30 -
Schritt 2 Die abgefragten Werte wie im nachfolgenden Screenshot erläutert eintragen, - Seite 31 -
DNS-Server des Heimnetzwerkes konfigurieren Damit der VPN-Client neben öffentlichen Domainnamen (z. B. google.de) auch Webservices im Heimnetzwerk (z.b. baikal.mynet.home) erreichen kann, bestehen zwei Möglichkeiten 1. in der lokalen 'hosts'-datei sind die entsprechenden Webservices eingetragen. Dies ist unter Android leider nur bei gerooteten Smartphones und Tablets möglich. 2. Im Heimnetzwerk ist ein DNS-Server vorhandenen Nachfolgend sind die Netzwerkeinstellungen für den Eintrag einen DNSServers im Heimnetzwerk beschrieben. danach 'speichern' auswählen Damit ist die Konfiguration des VPN-Clients unter Android abgeschlossen - Seite 32 -
3.3.2 VPN Verbindung herstellen Schritt 1 Zur Herstellung einer VPN-Verbindung vom Android Smartphone/Tablet das gewünschte VPN-Profil auswählen - Seite 33 -
Schritt 2 Im Fenster 'Mit 'NAME VPN PROFIL' verbinden' den Benutzernamen und das Password des VPNBENUTZERS eingeben und 'verbinden' auswählen Sobald die VPN-Verbindung erfolgreich durchgeführt ist, erscheint in der Statuszeile das 'Schlüssel'Symbol und unter dem VPN-Profil der Text 'verbunden' - Seite 34 -