VPN aus China.

Der kleine VPN-Secure-Gateway-Erfahrungsbericht von heute hat natürlich einen Hintergrund. Es ist sozusagen ein langgehegter Sysadmin-Wunsch in Erfüllung gegangen, in dem meine Schwester, die zur Zeit im Fernen Osten weilt, in Shanghai aufgeschlagen ist und auf ihrem iPhone keinen Zugriff auf Facebook mehr hatte. Tja, so erlebt man als Bürger eines westlichen Staates die staatliche Reglementierung der öffentlichen Meinung am eigenen Leib.

Über normale Wege hilft da nichts, denn die Blockierung von Websites erfolgt im Falle von Facebook offensichtlich durch die Blockierung der von Facebook verwendeten IP-Adressen. Da hilft dann auch kein SSL, denn wenn man eine IP-Adresse erst gar nicht erreichen kann, hilft da auch die beste Verschlüsselung nicht. Also musste gestern mal wieder auf bewährte Weise meine Fritzbox ran, die ja eben VPN-Funktionalitäten mitbringt und mit dem VPN-Client des iPhone auch ganz gut harmoniert.

Zugang auf der Fritzbox eingerichtet, meiner Schwester die Daten zukommen lassen (und natürlich das Passwort nicht in Klartext, wir sind ja paranoid!). Und schon beim zweiten Anlauf funktionierte der VPN-Tunnel anstandslos, was sehr schön am Homescreen zu erkennen ist (man achte auf das kleine VPN-Symbol in der Informationsleiste):

IPSec bzw. Internet-Key-Exchange (IKE) laufen standardmäßig über UDP-Port 500 und der scheint auch tatsächlich nicht gesperrt zu sein von der IP-Adresse aus, von der meine Schwester ins Internet hineinstolpert (China Telecom).

Der Weg aller Daten ist nun folgender: Ist der VPN-Tunnel etabliert, wandern alle Daten, die das iPhone ins Internet abkippen möchte, nicht direkt ins Internet, sondern über den VPN-Tunnel an das andere Ende, das bei mir auf der Fritzbox hier in Deutschland liegt. Von hier aus geht der Verkehr also dann ins Internet und nimmt auch den umgekehrten Weg zurück. Der Zugriff auf Facebook geht also von China nach Deutschland und von hier aus zu Facebook (vermutlich nach Irland) und den gleichen Weg wieder zurück. Der Roundtrip dauert, wenn ich die Ping-Zeiten grob zusammenaddiere, ungefähr 1,5 Sekunden. Schöne neue Welt. Am faszinierendsten finden das übrigens unsere Eltern, für die so eine Story der Sicherstellung der interfamiliären Kommunikation auf IP-Transportebene schon eine fast schon magische Geschichte sein dürfte.

Fritzbox als Secure Gateway, ganz einfach gemacht.

Durch Zufall habe ich herausgefunden, dass AVM die Einrichtung einer Fritzbox zu einem Secure Gateway inzwischen fast kinderleicht gemacht hat. Zur generellen Info: Neuere Fritzboxen haben eine eingebaute VPN-Funktionalität auf Basis von IPSec, die auch recht zuverlässig funktioniert. Anfangs dafür gedacht, dass mobile Geräte so auf das heimische LAN zugreifen können, wurde die VPN-Funktionalität 2010 dahingehend erweitert, dass bei entsprechender Konfiguration mobile Geräte ihren gesamten Datenverkehr über das VPN leiten können, um somit eventuelle Regulierungen umgehen zu können und den Datenverkehr auch in unsicheren Umgebungen wie z.B. öffentlichen WLAN-Hotspots absichern zu können.

Der Schlüssel hierzu ist das kleine Tool namens „Fritz!Box Fernzugang einrichten“, das es im VPN-Themenportal kostenlos gibt. Wird mit diesem kleinen und feinen Tool eine VPN-Verbindung eingerichtet, wird im Einrichtungsassistenten nämlich irgendwann gefragt, ob über die einzurichtende VPN-Verbindung nicht nur das lokale Netzwerk erreicht werden soll oder ob darüber der gesamte Datenverkehr des mobilen Gerätes abgewickelt werden soll. Auf bekannte Weise wird dann die erstellte Konfiguration in die Fritzbox importiert und das mobile Gerät bzw. die VPN-Clientsoftware konfiguriert (Anleitungen gibt es auf der VPN-Themenportalseite).

Wichtig ist bei VPN-Clients, bei denen man angeben muss, welche Netze über den VPN-Tunnel geroutet werden sollen, anzugeben, dass nicht nur das lokale Netzwerk hinter der Fritzbox erreichbar sein soll, sondern eben auch das gesamte Internet. Das bezeichnet man üblicherweise auf IP-Adressebene als „0.0.0.0“ mit der Subnetzmaske „0.0.0.0“. Symbolhaft müssen also folgende Netzwerke über den VPN-Tunnel geroutet werden:

192.168.178.0 mit der Subnetzmaske 255.255.255.0
0.0.0.0 mit der Subnetzmaske 0.0.0.0

Detailierte Informationen zum Routing finden sich in meinem Artikel vom September 2010 zum Thema Secure Gateway mit der Fritzbox.

Kleiner Warnhinweis: Wenn der komplette Datenverkehr über die heimische Fritzbox geroutet wird, sollte man sich bewusst sein, dass der heimische Internet-Zugang und dessen Bandbreite einen Flaschenhals darstellen könnten. Gibt es zu Hause also z.B. nur einen DSL 1000, dann ist dessen Up- und Download-Begrenzungen der Flaschenhals, wenn die VPN-Verbindung nicht sehr flott ist. Wer also regelmäßig seine heimische Fritzbox für VPN und für ein Secure Gateway benötigt, sollte sich zu Hause einen flotten Internet-Zugang leisten.

Die mobile Halbherzigkeit von Apple Safari in Sachen FTP.

Ich habe mehr oder weniger aus Jux und Dollerei gerade einmal probiert, ob der Mobile Safari, der Webbrowser auf iOS-Gerätschaften, FTP beherrscht. Und tatsächlich, ich war sehr gut beraten, die ansonsten eigentlich schon prädestine, museale Ausstattung des Mobile Safari nicht in einer Wette dazu zu nutzen, eine Gegenwette abzuschließen. Denn tatsächlich beherrscht der Mobile Safari FTP. Allerdings, und da bleibt sich Apple treu, so bescheuert schlecht, dass es doch schon wieder alle Vorurteile erfüllt.

Als Webbrowser FTP zu können, ist leichter gesagt, als getan. Denn im Gegensatz zum Web ist FTP vor allem eine Geschichte, die für gewöhnlich passwortgeschützt passiert. Hier mal mein Setup:

Meine Fritzbox hat einen angeschlossenen USB-Stick, das ich als Speicherlaufwerk einsetze. Mit der VPN-Funktionalität der Fritzbox habe ich auf diese Weise eine ziemlich praktische Home-Cloud, die ich aus dem Internet problemlos erreichen kann – per VPN und innerhalb meines LAN dann per SMB („Windows Netzwerk) oder auch per FTP. Im Webbrowser gebe ich für diesen Zugriff einfach ein:

ftp://fritz.box/

Normale Webbrowser probieren den FTP-Zugriff und bekommen dann von meiner Fritzbox die Rückmeldung, dass der FTP-Zugriff nicht anonym erfolgen kann, sondern Zugangsdaten erforderlich ist. Normale Webbrowser kennen dieses Verhalten und fordern den Benutzer mit einem Passworteingabefeld auf, Zugangsdaten einzugeben, mit denen dann der FTP-Zugriff nochmals durchgeführt werden kann, nun eben mit Authentifizierung.

Für Apple scheint dies völlig neu zu sein. Denn gebe ich einfach die obige Adresse ein, fragt mich der Mobile Safari nicht etwa nach Zugangsdaten, sondern lässt mich im Regen stehen:

Keine Zugriffsrechte
Sie haben nicht die erforderlichen Zugriffsrechte, um „/“ anzuzeigen.

Darauf wäre ich gar nicht gekommen.

Allerdings sind wir ja nicht vollkommen blöd, sondern wissen ja, wie das URL-Schema funktioniert. Und das URL-Schema hat feste Regeln, wie man neben einer Adresse auch Zugangsdaten übermittelt:

ftp://benutzername:passwort@fritz.box

Und siehe da: So funktioniert das sogar im Mobile Safari, danach bin ich auf meinem Speicherlaufwerk und kann Dateien herunterladen.

Eine ganze Reihe von Nachteilen gibt es, allesamt Mobile-Safari-Schwächen:

  • Es wird nur FTP unterstützt, nicht die verschlüsselte Variante SFTP. Das ist freilich nur ein „weiches“ Problem, denn SFTP unterstützen auch andere Webbrowser nicht. Damit ist der FTP-Zugriff per Webbrowser immer eine Geschichte, die man, wenn es um sensible Daten geht, nur mit einer zusätzlichen Transportverschlüsselung machen sollte. Da der FTP-Zugriff zu meiner Homecloud nur innerhalb meines LAN funktioniert und ich vom Internet aus zwangsläufig ein VPN nach Hause benötige, ein in diesem Szenario vernachlässigbares Problem.
  • Mobile Safari kennt zwar das URL-Schema und die Art und Weise, wie in diesem Schema Zugangsdaten übermittelt werden, allerdings ist die Umsetzung halbherzig. Denn den obigen URL mit integriertem Passwort kann ich so nicht als Lesezeichen hinterlegen, sondern würde gern folgendes als URL verwenden:ftp://benutzername@fritz.boxMit diesem URL können nämlich alle anderen, FTP-fähigen Webbrowser etwas anfangen und fragen nur noch das Passwort ab, das für den Zugriff notwendig ist. Mobile Safari kann mit diesem URL nichts anfangen.
  • Sehr, sehr wichtig: Mobile Safari führt, so wie jeder andere Webbrowser auch, einen URL-Verlauf, in dem alle aufgerufenen URL der letzten Zeit gespeichert werden. Leider speichert Mobile Safari hierbei auch Adressen, in denen sich Benutzernamen und/oder Passwörter befinden. Um das zu verschmerzen, gibt es zwei Möglichkeiten. Das so genannte „private Surfen“ in den Safari-Einstellungen aktivieren oder an der gleichen Stelle den Verlauf löschen. Ist leider relativ umständlich, weil beide Dinge nicht direkt im Mobile Safari vorgenommen werden können, aber leider nicht unwichtig, wenn man sensible Zugangsdaten nicht im Verlauf herumspazieren möchte.

Nun gut, immerhin kann Mobile Safari FTP-Zugriff so auch mit Zugangsdaten, wenn auch auf eine ziemlich vorsintflutliche Weise. Schön sehen die Dateiauflistungen auch nicht aus, aber technisch funktioniert es und ich kann Inhalte aus meiner Homecloud auf iPhone/iPad herunterladen.

Die AVM Fritzbox als VPN Secure Gateway für das iPhone.

Update vom 2. März 2012: In der Zwischenzeit hat AVM mitgedacht und in dem kleinen Softwareprogramm „FRITZ!Fernzugang einrichten“ eine Option eingebaut, mit der in einer zu erstellenden Konfiguration die Secure-Gateway-Funktion eingebaut werden kann. Dieser Artikel ist mit seiner komplexen Anleitung daher weitgehend hinfällig und steht hier nur noch aus historischen Gründen, dennoch gelten die technischen Hintergründe nach wie vor und sind aktuell.

Vor einiger Zeit habe ich versucht, meine AVM Fritzbox 7270 für eine verwegen klingende, aber gar nicht so unsinnige Funktion einzusetzen: Mit meinem iPhone wollte ich die die VPN-Funktionalität der Fritzbox nutzen, um zwischen iPhone und Fritzbox ein VPN aufzubauen. Über dieses VPN wollte ich nicht nur Rechner in meinem eigenen Netzwerk erreichen, sondern die Fritzbox so einsetzen, dass über sie auch der Datenverkehr abgewickelt wird, der vom iPhone ins Internet möchte. Die Idee dahinter war, auf diesem Weg dann auch ein offenes und unverschlüsseltes WLAN nutzen zu können, denn der gesamte Datenverkehr von und zum Internet könnte dann eben über diesen VPN-Tunnel abgewickelt werden.

So weit, so gut. Was mit größeren Gerätschaften funktioniert, funktionierte jedoch nicht mit der Fritzbox. Zwar konnte ich über den VPN-Tunnel mein Netzwerk erreichen, jedoch keinen Datenverkehr ins Internet routen. Das blockte die Fritzbox ab und das ließ sich auch mit einigem Gefrickel in der Konfiguration nicht ändern.

Um es kurz zu machen: Nun geht es! Mit dem Firmware-Update vom September 2010 wurde die VPN-Funktionalität offenbar entsprechend angepasst, so dass nach einer kleinen Änderung der VPN-Konfigurationsdatei, die für den Import in die Fritzbox bestimmt ist, die Fritzbox als Secure Gateway für VPN-Verbindungen von einem iPhone (und natürlich auch einem iPad) genutzt werden kann. Hier mal alles Notwendige Schritt für Schritt.

Schon eine VPN-Konfiguration auf der Fritzbox?

Dann bitte Vorsicht walten lassen, denn wenn jetzt die neu erstellte VPN-Konfigurationsdatei hochgeladen wird, werden alle bestehenden VPN-Konfigurationen entfernt. Wenn also eine bestehende VPN-Konfiguration vorhanden ist und die auch noch benötigt wird, dann müssen beide VPN-Konfigurationen in einer Datei zusammengeführt werden. Hier sollte bitte das oben genannte Programm „FRITZ!Fernzugang einrichten“ zum grundlegenden Aufbau der VPN-Konfiguration eingesetzt werden, damit die Verschachtelung der einzelnen Konfigurationen korrekt bleibt. Die notwendigen Änderungen für die VPN-Verbindung des iPhone lässt sich dann immer noch nachträglich hinzufügen.

VPN-Konfiguration auf der Fritzbox

Die Fritzbox hat nach wie vor auf ihrer Benutzeroberfläche keine eigene Einstellungsmöglichkeiten für VPN-Verbindungen, diese müssen also weiterhin als VPN-Konfigurationsdatei importiert werden. Solche VPN-Konfigurationsdateien können mit einem kostenlosen Programm namens „FRITZ!Fernzugang einrichten“ (gibt es bei AVM im Download-Bereich) erstellt werden. Da wir jedoch für die VPN-Geschichte vom iPhone die so erstellte VPN-Konfigurationsdatei sowieso nochmal anpassen müssen, hier eine VPN-Konfigurationsdatei in ganzer Länge zum Herauskopieren und Anpassen. Ist zwar nicht schön formatiert, erfüllt aber seinen Zweck. Einfach den folgenden eingerückten Teil in einen Texteditor kopieren. Infos zu den rot markierten Bereichen gibt es weiter unten:

vpncfg {
connections {
enabled = yes;
conn_type = conntype_user;
name = "Accountname";
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 {
key_id = "Accountname";
}
mode = phase1_mode_aggressive;
phase1ss = "all/all/all";
keytype = connkeytype_pre_shared;
key = "sharedsecret";
cert_do_server_auth = no;
use_nat_t = yes;
use_xauth = yes;
use_cfgmode = no;
xauth {
valid = yes;
username = "Accountname";
passwd = "Kennwort";
}
phase2localid {
ipnet {
ipaddr = 0.0.0.0;
mask = 0.0.0.0;
}
}
phase2remoteid {
ipaddr = 192.168.178.202;
}
phase2ss = "esp-all-all/ah-none/comp-all/no-pfs";
accesslist =
"permit ip 192.168.178.0 255.255.255.0 192.168.178.202 255.255.255.255",
"permit ip any 192.168.178.202 255.255.255.255";
}
}

Zu den rot markierten Bereichen:

  • „name“ und „key_id“
    Ein beliebiger Accountname, der in beiden Feldern gleich lauten muss. Keine komplizierten Sonderzeichen oder Leerschritte.
  • „remote_virtualip“ und „ipaddr“
    Das ist die virtuelle IP-Adresse, unter der das iPhone (bzw. der VPN-Client) später im lokalen Netzwerk der Fritzbox erscheinen wird. Wenn das LAN mit den Netzwerk-Standardeinstellungen betrieben wird, nutzt die Fritzbox das Netzwerk 192.168.178.x und für VPN-Clients IP-Adressen ab 201. (In diesem Fall habe ich jetzt die 192.168.178.202 ausgewählt, weil ich noch eine weitere VPN-Konfiguration nutze, die hier nicht aufgeführt ist.)
  • „key“
    Hier ist der Shared Secret für die IPSec-Verschlüsselung einzutragen. Prinzipiell gehen hier auch Sonderzeichen, es genügt jedoch eine Zeichenfolge mit Groß- und Kleinbuchstaben, sowie Ziffern. Da dieses Shared Secret später auf dem VPN-Client auch nur einmal eingegeben werden muss, darf es gern länger sein, bei mir sind es 16 Stellen.
  • „username“ und „passwd“
    Das sind Benutzername und Passwort für die zusätzliche XAUTH-Authentifizierung. Hier empfehle ich für „username“ den oben schon festgelegten Accountnamen, für „passwd“ ist ein Passwort empfehlenswert, das nicht das Shared Secret ist und immerhin so aufgebaut sein sollte, dass man es sich einfach merken kann, da dieses Passwort bei jedem VPN-Verbindungsaufbau – zumindest auf dem iPhone – eingegeben werden muss.
  • „accesslist“
    Die Zeile mit dem rot markierten Eintrag ist eminent wichtig dafür, wie der ausgehende Datenverkehr des VPN-Clients auf der Fritzbox behandelt werden soll. Hier ist wichtig, dass die rot markierte IP-Adresse genau die gleiche Adresse ist, wie weiter oben bei „remote_virtualip“ und „ipaddr“ angegeben.

Alles angepasst? Dann die Datei mit beliebigem Dateinamen und der Dateiendung „.cfg“ abspeichern und diese Datei in die Fritzbox importieren. Das passiert in der Rubrik „Internet“ unter „Freigaben“ und dort in der Registerkarte „VPN“. Der Importvorgang dauert einige Sekunden und quittiert dann entweder mit einem erfolgreichen oder erfolglosen Import. Ist er erfolglos, stimmt mit ziemlicher Sicherheit etwas am Aufbau der VPN-Konfiguration nicht.

VPN-Konfiguration auf dem iPhone

Die VPN-Konfiguration auf dem iPhone ist weit weniger kompliziert, als es klingt. Zu finden ist sie in den Einstellungen unter „Allgemein“, dort unter „Netzwerk“ und dort wiederum unter „VPN“. Hier auf „VPN hinzufügen“ tippen und den Button „IPSec“ wählen. Es erscheint folgendes Fenster:

Auch hier kurz die einzelnen Punkt ausführlich:

  • Beschreibung
    Die Beschreibung kann frei gewählt werden und dient lediglich zur Kennzeichnung der VPN-Verbindung auf dem iPhone.
  • Server
    Hier kommt die Adresse hinein, unter der die Fritzbox im Internet zu erreichen ist. Wer eine feste IP-Adresse hat, kann entweder die IP-Adresse oder den Hostnamen angeben. Wer keine feste IP-Adresse hat, kann sich mit einem DynDNS-Dienst behelfen.( Ich setze dyndns.org ein, die dazugehörigen Daten können bequem in der Fritzbox hinterlegt werden, so dass die Fritzbox selbstständig dafür sorgt, bei einem DSL-Verbindungsneuaufbau auch den DynDNS-Eintrag zu aktualisieren.)
  • Account
    Hier kommt der Accountname ein, der oben in der VPN-Konfiguration festgelegt wurde.
  • Kennwort
    Und hier eben das oben festgelegte Kennwort (nicht das Shared Secret!) hinein, wenn nicht bei jedem Verbindungsaufbau neu nach dem Kennwort für die Verbindung gefragt werden soll. Ich empfehle, das Kennwort hier nicht zu hinterlegen, so wie ich es immer bei mobilen Geräten handhaben würde, die VPN-Verbindungen in Netzwerke aufbauen können sollen, die nicht von einem eigenen Administrator, der im Ernstfall schnell die VPN-Konfigurationen deaktivieren kann, gehostet werden.
  • Zertifikat verwenden
    Ausgeschaltet lassen, wir verwenden kein Zertifikat.
  • Gruppenname
    Hier auch einfach den Accountnamen eintippen.
  • Shared Secret
    Und hier kommt das Shared Secret hinein.
  • Proxy
    Auf „Aus“ gestellt lassen, wir verwenden keinen Proxy.

Das war es. Einstellungen sichern und gut.

VPN aufbauen

Das VPN lässt sich in den iPhone-Einstellungen mit dem nun neu eingeblendeten VPN-Schieber starten. Einfach den Schieber aktivieren und schon wird versucht, den Tunnel zu öffnen. Wird der Tunnel zur Fritzbox etabliert, erscheint nach einigen Sekunden die Passwortabfrage. Glückt diese, erscheint in der Infozeile des iPhone ein winziges VPN-Symbol, gleichzeitig ist auf der Benutzeroberfläche die nun aktive VPN-Verbindung zu sehen.

Wer ein Jailbreak-iPhone besitzt und das höchst empfehlenswerte Programmpaket SBSettings installiert hat, um damit einige grundlegende Funktionen des iPhone schnell zu aktivieren, kann in Cydia noch das zusätzliche Paket „SBSettings VPN Toggle“ installieren, das dann einen zusätzlichen Button für das Aktivieren/Deaktivieren der VPN-Verbindung zu SBSettings hinzufügt. Komfortabler geht es dann kaum noch.

Die üblichen Hinweise, Fragen und Antworten

  • iPad?
    Gute Nachricht: Funktioniert im Prinzip genau so, wie auf dem iPhone und ist auch genau so zu konfigurieren.
  • VPN-Passwörter auf mobilen Geräten
    Wie oben kurz angerissen: VPN-Passwörter gehören nicht auf mobile Geräte, auch wenn diese Sperrfunktionen haben. Mit dem Shared Secret geht es nicht anders, das Passwort für die zusätzliche XAUTH-Authentifizierung muss man jedoch wirklich nicht auf dem iPhone hinterlegen, sondern gibt das bei jedem Verbindungsaufbau ein. Grundsicherungsmaßnahme.
  • Absicherung der Fritzbox
    Ein paar Dinge müssen auch einfach hier klar sein. Die Fritzbox braucht ein vernünftiges Passwort, ein eingerichtetes WLAN-Netzwerk sollte verschlüsselt mit WPA2 und einem hinreichend langen Key arbeiten und wenn man die Fritzbox-Bedienoberfläche für Fernzugriffe aus dem Internet aktiviert, dann bitteschön SSL gesichert und mit gesondertem HTTP-Zugriffspasswort. Ein sicheres VPN lebt davon, dass sowohl Client, als auch Server gesichert sind.
  • Ist der Tunnel sicher?
    IPSec ist grundsätzlich state-of-the-art und eine aktuelle und weit verbreitete VPN-Tunneltechnologie. Welche Algorithmen tatsächlich eingesetzt werden, habe ich aktuell nicht parat, es dürfte sich jedoch um grundsätzlich starke Verschlüsselung handeln, die noch mit einer zusätzlichen Benutzerauthentifizierung („XAUTH“) ergänzt wird. In Sachen Tunnel gilt: Aufgebaut wird der immer nur zwischen Client und Server, also in diesem Fall zwischen iPhone und Fritzbox. Wenn also nicht gerade jemand eine Man-in-the-middle-Attacke fährt und beispielsweise den Endpunkt so manipuliert, dass dieser nicht auf der heimischen Fritzbox endet, sondern auf einem anderen Gerät, ist man also weitgehend sicher davor, dass der Tunnel von Dritten abgehört werden kann – wenn eben die Schlüssel hinreichend komplex sind.
  • Kann man dem VPN-Client auf dem iPhone trauen?
    Das ist eine gute Frage. Pardon, kann ich nicht beantworten. Zum einen, weil ich kein Verschlüsselungsspezialist bin und zum anderen, weil die iOS-Software des iPhone/iPad nicht öffentlich zur Evaluation zur Verfügung steht. Dass „Cisco“ draufsteht, ist zumindest ein Zeichen dafür, dass es sich nicht um ganz namenlose Software handelt und da viele Unternehmen auf Cisco-Router und -Software schwören, kann man sich zumindest ein Stück weit darauf verlassen, dass es nicht ganz so üble Software sein dürfte. Für Paranoiker gilt jedoch auch hier, dass sowohl Apple, als auch Cisco eben US-amerikanische Unternehmen sind.
  • Performance und Stromverbrauch
    Die Performance der Fritzbox ist für VPN-Verbindungen ausreichend, selbst mehrere VPN-Verbindungen bedient meine Fritzbox 7270 problemlos. Da sie eine ADSL-Fritzbox ist, ist die Limitierung des ADSL-Anschlusses vermutlich schneller erreicht, als die VPN-Verschlüsselungsperformance. Auf dem iPhone gilt das grundsätzlich auch, nur ist hier zu beachten, dass alles, was zusätzliche Performance braucht, Energie verbraucht und die muss man sich auf einem iPhone immer gut einteilen. Es macht also Sinn, das VPN immer dann einzusetzen, wenn man es auch zwingend braucht und das ist immer dann der Fall, wenn ein drahtloses Netzwerk unverschlüsselt sendet und die zu übertragene Kommunikation das ebenfalls ist. Nutzt man über das iPhone beispielsweise SSL-gesichertes Banking oder Mailkonten auf Basis von ActiveSync oder verschlüsseltem IMAP, dann sind diese Kommunikationskanäle bereits verschlüsselt. Ebenso unproblematisch ist so Kommunikation wie beispielsweise der eingebauten Wetter-App, die niemand wirklich verschlüsselt braucht. Sinnvoll ist VPN-Verschlüsselung spätestens dann, wenn Apps über API auf Dienste zugreifen und hier befürchtet werden muss, dass dies nicht über HTTPS gesichert läuft. Kaum eine Social-Networking-App tut das nämlich oder bietet hierzu Optionen an. Spätestens hier ist der VPN-Tunnel gefragt und die investierte Energie eine gute Anlage.

Unsicherheiten auf Unkonferenzen.

WLAN-Netzwerke sind eine coole Sache. Gerade auf Barcamps. Und dabei stört meist noch nicht mal, dass gerade auf solchen „nerdigen“ Unkonferenzen die aufgebauten WLAN-Netzwerke schwer unter Last stehen und schon die Netzplanung für eine kleinere Veranstaltung recht anspruchsvoll sein kann. Die hohe Zahl an Geräten ist auch recht einfach zu erklären: Zwei WLAN-fähige Gerätschaften sind mit Smartphone und Laptop fast schon normal und nicht wenige Nutzer bringen es auf drei, vier oder gar mehr WLAN-fähige Geräte. Mal eben einen Access Point hinstellen, um einen WLAN-Hotspot aufzubauen, ist da nicht. Da braucht es schon segmentierte Netze.

Über was sich allerdings relativ wenig Nutzer Gedanken machen, ist die Übertragungssicherheit. Bei offenen WLAN-Netzwerken wird in der Regel nicht mit Verschlüsselung gearbeitet, um das Benutzen des WLAN-Netzwerks zu vereinfachen. Das bedeutet allerdings, dass Übertragungen von und zum Access Point so offen sind, wie Postkarten. Schneidet ein Nutzer einfach mal den Datenverkehr im Äther mit, sind Zugangsdaten, Passwörter und vertrauliche Informationen offen, wenn der Einzelne nicht mit einer optionalen Verschlüsselung seine Übertragungen absichert, beispielsweise durch die Nutzung sicherer Kanäle per SSL oder einem VPN. Letzteres wäre der Königsweg: VPN aufbauen und den gesamten Übertragungsweg absichern, dann spielt auch das offene WLAN-Netzwerk keine Rolle.

Zwar können die meisten Endgeräte (selbst Smartphones) heutzutage als VPN-Client tätig werden – sogar das iPhone – allerdings scheitert es meist daran, dass es an einem VPN-Endpunkt fehlt, der idealerweise im eigenen Betrieb oder zu Hause steht. Es gibt zwar kommerzielle Dienste, die VPN-Endpunkte anbieten, aber im Grunde genommen höhlt das jede Sicherheitsphilosophie schon wieder aus.

Hat mal also kein VPN, muss man zuschauen, wie man seine Dienste auf verschlüsseltem Wege nutzt. Bei HTTP, IMAP, SMTP und POP3 ist das theoretisch alles kein Problem, hier gibt es verschlüsselte Varianten, sofern die Gegenstelle mitspielt. Tja, sofern. Bei E-Mail kann man da ja durchaus mit seinem ISP diskutieren, aber bei HTTP und einem Web-2.0-Dienst ist man darauf angewiesen, dass der Diensteanbieter auch HTTPS anbietet. Twitter und Facebook, um bei zwei größeren Anbietern zu testen, tun das – hier kann man die Portale auch via „https://“ erreichen.

Alles kein Problem, wenn die Dienste direkt im Browser aufgerufen werden, denn dort hätte man die Wahl, einfach HTTPS zu verwenden. Die wenigsten Clients und Apps bieten das jedoch. Die meisten Twitter- und/oder Facebook-Clients bieten erst gar keine Einstellmöglichkeit für den API-Zugriff hinsichtlich HTTPS und das bedeutet, dass die meisten Clients unverschlüsselt mit den jeweiligen Diensten kommunizieren. Und das bedeutet, dass Zugangsdaten für die jeweiligen Dienste bzw. Cookie-Authentifizierungen unverschlüsselt über die Luftschnittstelle wandern, wenn das WLAN-Netzwerk offen ist.

Was tun? In solchen Umgebungen entweder tatsächlich den eigenen Datenverkehr über einen VPN-Tunnel absichern oder lieber auf das WLAN-Netzwerk verzichten und auf GSM/UMTS umschwenken. Genau genommen ist auch die Verschlüsselung im GSM-Standard nicht wirklich (mehr)  frei von Fragwürdigkeiten, allerdings besser als gar nichts.

iPhone per VPN mit der Fritzbox verbinden.

Update vom 08.10.2010: Die hier beschriebene Problematik existiert inzwischen nicht mehr, AVM hat seine Benutzer erhört und in eine spätere Firmware eingebaut. Bitte hierzu meinen Artikel namens „Die AVM Fritzbox als VPN Secure Gateway für das iPhone.“ beachten. Hier gibt es auch eine genaue Anleitung zum Einrichten eines VPN zwischen iPhone und Fritzbox.

AVM hat in seinem VPN-Portal seit neuestem auch eine Anleitung, wie ein iPhone mit seinen eingebauten VPN-Client-Funktionalitäten Kontakt zu einer Fritzbox über das Internet aufnehmen kann. Die ansehnliche Dokumentation, die allerdings eher etwas für Insider ist, führt auch zu einem funktionierenden VPN, das allerdings einen Nachteil hat:

Es lassen sich Rechner im LAN, das hinter der Fritzbox liegt, ansprechen und mit ihnen kommunizieren, die Fritzbox lässt sich jedoch nicht als „Secure Gateway“ für einen sicheren Internet-Zugang einsetzen, jedenfalls ist mir das nach Stunden Gefrickel nicht gelungen. Der IPSec-Tunnel lässt sich mit der XAUTH-Authentifizierung problemlos aufbauen, ich kann dann per Safari auch die Website der Fritzbox über die interne IP-Adresse ansprechen und per Remote-Desktop-Client auch Verbindung zu meinem PC aufnehmen, aber ins Internet kommt das iPhone nicht mehr, so lange der Tunnel aufgebaut ist; Websites „draußen“ im Internet sind nicht erreichbar.

Mit allerlei Schmuddelwerkzeug (aus Sicht von Apple) habe ich auf dem iPhone die Routing-Tabellen eingesehen, dasselbige per Telnet auf der Fritzbox – keine Beanstandungen. Die notwendigen Routing-Einträge sind an sich alle da, das iPhone weiß bei bestehender VPN-Verbindung, dass „0.0.0.0“ (also quasi alles) über den VPN-Tunnel zu finden ist und die Fritzbox weiß, dass „0.0.0.0“ auf das DSL-Interface zu schaufeln ist und kennt auch den Rückweg zum iPhone. Schade. Ich habe nach wie vor den Eindruck, dass das eigentlich gehen müsste.

So, und jetzt muss ich erst mal mein iPhone wieder in den Urzustand bringen. Ich habe es exzessiv als „Laborgerät“ missbraucht und mit allerlei Analysewerkzeugen vollgedonnert, so dass es derzeit keinesfalls „straßentauglich“ ist. Es ist aber erstaunlich, dass man mit dem iPhone problemlos telefonieren kann, während man in einer SSH-Sitzung nebenbei auf dem Gerät per VPN verbunden Netzwerkanalyse betreibt. Es ist nach wie vor ein Jammer, wenn man sieht, wie die Power dieses Gerätes (nämlich das Multitasking) gar nicht bzw. ab iPhone-OS 4.0 nur sehr zögerlich offiziell eingesetzt wird.

VPN mit der AVM Fritzbox 7270.

[Update] Es ist mir erst bei näherer Evaluation aufgefallen, dass der Shrewsoft VPN-Client den Pre-Shared-Key (PSK), also das VPN-Zugangspasswort, in die Registry schreibt und dann auch noch in Klartext. Das ist leider ganz mies und eigentlich nur erträglich, wenn man die gesamte Festplatte des betreffenden Rechners verschlüsselt, also beispielsweise mit Truecrypt oder dem Windows Bitlocker (bei Business- oder Ultimate-Versionen von Vista und Windows 7). In allen anderen Szenarien: Finger weg, zumindest derzeit. Ich habe dem Programmierer des VPN-Clients mal in die Mailingliste geschrieben.

Seit genau neun Monaten mache ich nun schon mit der Fritzbox herum, endlich einmal ein VPN zu bewerkstelligen, so dass ich von “draußen” mit meinem Notebook und einem vernünftigen IPSec-abgesicherten VPN-Tunnel in mein Netz zu Hause zugreifen kann. Während ich an sich alle notwendigen Zutaten hatte, scheiterte es daran, dass die Dokumentation der VPN-Funktionalität leider nicht sehr gut und ich jedes Mal nach mehreren Stunden schlicht aufgegeben habe. Jetzt aber tut es, hier eine Anleitung:

  1. Der wichtigste Punkt ist die Klärung, wie die Fritzbox aus dem Internet erreicht werden kann. Ist man bei einem besseren DSL-Anbieter, gibt es eine feste IP-Adresse, bei den Discountern gibt es IP-Adressen mitunter nur dynamisch zugewiesen. Hier muss man sich mit einem Dyn-DNS-Dienst wie beispielsweise “dyndns.org” behelfen. In aktuellen Firmware-Versionen unterstützt die Fritzbox Dyn-DNS-Dienste aktiv, die Einstellungen finden sich unter “Einstellungen”, dort unter “Internet”, “Freigaben” und der Registerkarte “Dynamic DNS”. Wer also von seinem DSL-Anbieter nur eine dynamische IP-Adresse bekommt, kümmert sich erst einmal um dieses Thema.
  2. Nun die Firmware der Fritzbox aktualisieren, falls noch nicht aktuell. VPN-Funktionalität gibt es für die Fritzboxen 7270, 7170, 7240, 3270, 2170 und höchstwahrscheinlich auch in zukünftigen Fritzboxen. Die aktuellen Firmware-Version gibt es entweder durch das Servicemenü der eigenen Fritzbox oder auch über das AVM-VPN-Portal.
  3. Als nächstes muss ein VPN-Zugangsprofil eingerichtet werden. Das kann man leider nicht direkt über die Fritzbox eingeben, sondern braucht dazu ein Programm namens “FRITZ!Fernzugang einrichten”. Das Windows-Programm herunterladen, installieren und ausführen. Mit diesem Programm werden dann einige Netzwerkparameter abgefragt, die angegeben werden müssen. Darunter unter anderem das verwendete IP-Adressnetz im LAN und die IP-Adresse bzw. den Hostnamen (bzw. auch den DNS-Namen über einen Dyn-DNS-Dienst).
  4. Das Programm aus dem obigen Punkt erzeugt zwei Dateien, die man abspeichern sollte. Die Datei, die mit “fritzbox” beginnt, enthält die VPN-Einstellungen, die nun in die Fritzbox importiert werden müssen. Dazu in das Servicemenü der Fritzbox einloggen und im Startmenü auf “Fernzugang (VPN) klicken. Dort lässt sich nun das Profil auf dem lokalen Rechner auswählen und importieren. Ist der Import erfolgreich gewesen, erscheint das Profil unter “VPN-Verbindungen”.
  5. Nun kümmern wir uns um den VPN-Client. Hat man ein 32-Bit-Windows, kann man getrost den AVM-eigenen VPN-Client nutzen, der vor allem die hübsche Annehmlichkeit mitbringt, dass der sehr einfach mit der anderen Datei konfiguriert werden kann, der unter Punkt 3/4 eingerichtet wurde. Also den Client installieren, Konfigurationsdatei importieren und loslegen. Sie haben ein 64-Bit-Windows? Nächster Punkt…
  6. Dummerweise gibt es den AVM-eigenen VPN-Client nicht für 64-Bit-Windows-Versionen. Die 32-Bit-Version lässt sich nicht installieren und eine Anfrage an den AVM-Support kann man sich in der Sache auch sparen. Netterweise gibt es aber im Dickicht der vielen IPSec-Clients, die teilweise richtig viel Geld kosten, eine lohnenswerte Ausnahme: der Shrewsoft VPN Client. Den bekommt man auf der Shrewsoft-Download-Seite. Ich habe übrigens den letzten Release Candidate der zukünftigen Version 2.1.5 genommen, der ist schon hinreichend stabil.
  7. Wer den Shrewsoft VPN-Client installiert hat, braucht jetzt nur noch eine Anleitung und die findet sich freundlicherweise auch auf dem AVM-VPN-Portal, hübsch mit Screenshots bebildert: Shrew Soft VPN Connect zur Fritzbox
  8. Ergebnis: Funktioniert. Auf Anhieb.