Open Source im professionellen Einsatz

© photocase.com

Von WAP zu IP: OpenVPN tunnelt und schützt mobile

Gestapelte Röhren

,

Dass OpenVPN zu mehr taugt als für simple virtuelle Netze, bestätigt ein trickreiches Szenario. Es wertet kurzerhand einen vermeintlich beschränkten WAP-Zugang zu einer kompletten IP-Anbindung auf, die sogar das Mitlauschen des Netzbetreibers verhindert.

Schade, wenn sich hinter der erhofften Handy-Internet-Flatrate in Wahrheit nur ein lausiger WAP-Zugang verbirgt. Gestandene Netzwerker hindert das aber nicht daran, nach Herzenslust mit allen erdenklichen Protokollen im Internet zu arbeiten und dabei auch Schnüffelei am WAP-Gateway zu unterbinden. Ihr wichtigstes Werkzeug ist OpenVPN ([1] bis [3]) zusammen mit geschicktem Tunneln und Routing. Die folgenden Betrachtungen bedienen sich zu Demonstrationszwecken der O2-WAP-Flatrate (Abbildung 1 und [4]), passen aber auch auf andere Angebote.

Abbildung 1: Ein nettes Angebot: Das Surf & E-Mail-Paket von O2 kostet 4,95 Euro im Monat bei unbegrenztem Datenvolumen. Jedoch gilt es, wie bei allen Mobilfunk-Angeboten, das Kleingedruckte zu studieren.

Abbildung 1: Ein nettes Angebot: Das Surf & E-Mail-Paket von O2 kostet 4,95 Euro im Monat bei unbegrenztem Datenvolumen. Jedoch gilt es, wie bei allen Mobilfunk-Angeboten, das Kleingedruckte zu studieren.

GPRS (General Packet Radio Service, siehe Kasten "GPRS") ist fast flächendeckend verbreitet und damit trotz beschränkter Bandbreiten für viele Datennomaden eine interessante Online-Option. Für den Zugang sorgen ein Modem-fähiges Mobiltelefon (für diesen Artikel getestet mit einem Nokia 6680) oder eine Datenkarte für GPRS oder UMTS (Universal Mobile Telephone Service, [5], [6]). Die erste Variante verlangt eine Verbindung zwischen Telefon und Laptop, je nach Gerät klappt das per Bluetooth (BT), Infrarot (Irda), USB oder seriellem Kabel. Eine GPRS- oder UMTS-Karte setzt einen passenden Schacht im Laptop voraus. Zudem sollte der Linux-Kernel die Karte unterstützen.

GPRS

Der General Packet Radio Service (GPRS) benötigt keine eigene Infrastruktur, er erweitert bestehende GSM-Netze. GPRS-Handys stellen für den schnellen Austausch der Datenpakete eine dauerhafte Verbindung zu einem Einwahlpunkt her (APN, Access Point Name). Die Endgeräte dürfen mehrere GSM-Kanäle zusammenfassen. Wie viele Kanäle sie schaffen, hängt vom jeweiligen Endgerät ab sowie von der Anzahl freier Kanäle in der Funkzelle. Üblicherweise haben Sprachverbindungen Vorrang.

In der Einführungsphase von GPRS haben die Betreiber netzseitig eine Bandbreite von 53,6 KBit/s pro Funkzelle vorgesehen (vier Kanäle à 13,4 KBit/s). Stehen alle acht Kanäle für GPRS zur Verfügung, würde die Bandbreite auf 107,2 KBit/s klettern. Weitere Steigerungen durch bessere Fehlerprotokolle erlauben theoretisch 171,2 KBit/s (8 Kanäle à 21,4 KBit/s). Die aktuelle Handys können zwei bis vier Kanäle à 13,4 KBit/s zusammenfassen, noch mehr ist mit speziellen Datenkarten möglich.

Diese Angaben beziehen sich auf den Download. Beim Upload begnügen sich Mobiltelefone gern mit einem oder zwei Kanälen. Die oft zu findende Klassifizierung versucht das zu verbergen: Class-10-Geräte nutzen vier Down- und zwei Upstream-Kanäle. Class 8 deutet auf vier Down-, aber nur einen Upstream hin.

Wie bei GSM halten alle eingebuchten GPRS-Teilnehmer permanent über Signalisierungskanäle Kontakt mit dem Netz. Der Teilnehmer ist während dieser Zeit immer online. Die Kanäle müssen aber nicht ständig aufgebaut bleiben - das Telefon schaltet sie hinzu, wenn es tatsächlich Daten abrufen will.

Komprimieren, aber richtig

GPRS arbeitet mit starker Datenkompression. Der Endanwender kann daher auf Kompression in höheren Protokollschichten verzichten - vorausgesetzt er reicht die Daten im Klartext weiter. Wer eine Verschlüsselungsschicht einfügt, entzieht der GPRS-Kompression die Grundlage. Weil OpenVPN&Co. das Problem bereits von Analogmodems kennen, implementieren sie eine Kompression, die zuschlägt, bevor die Verschlüsselung die Daten bearbeitet.

GPRS verwendet zur Paketvermittlung das Internet Protocol. Üblicherweise bieten die Mobilfunkanbieter ihren Datenkunden eine private Netzwerkadresse an. Die IP-Parameter übermittelt das von anderen Diensten bekannte Point-to-Point-Protokoll (PPP). Jedes Datenpaket besitzt somit eine eindeutige Empfängeradresse im Funknetz, um zum Endgerät zu gelangen. Hierfür ist es unerheblich, über welchen der Funkkanäle es eintrifft.

Die GPRS-Telefonnummer ist bei allen Anbietern identisch: »*99***1#« sollte bei den meisten Geräten funktionieren. Einige Nutzer älterer Nokias berichten, dass es bei ihnen nur mit »*99#« oder »*98*#« funktioniert. Bei den Autoren hat die GPRS-Einwahl mit einem Sony-Ericsson T610 und einem Nokia 6680 ohne spezielle Anpassungen geklappt.

Steht die Verbindung zum Einwahl-Device, muss es die Anweisungen für die GPRS-Verbindung erhalten. Das übernimmt traditionellerweise der PPP-Daemon mit einem Skript. Anschließend stehen einige zusätzliche Routing-Konfigurationen an. Ein geschickt angepasstes OpenVPN sorgt für den Rest.

Handy als Modem

Am besten verbinden sich Laptop oder PC mit dem Mobiltelefon per Bluetooth. Fehlt dieser Drahtlosfunk am Rechner, dann rüsten ein USB-Dongle oder eine PCMCIA-Steckkarte diese Fähigkeit problemlos nach. Dank der drahtlosen Verbindung bleibt das Telefon frei für optimalen Empfang positionierbar. Die Verbindung mittels Kabel (USB oder seriell) ist unhandlicher, dafür leidet der Akku des Mobiltelefons weniger.

Bluetooth richten die meisten Distributionen inzwischen automatisch ein. Bei einigen Dongles oder Karten muss der Anwender eventuell die Firmware nachinstallieren. Umfangreiche Hilfe geben die Projektseiten zum Linux-Bluetooth-Stack ([7] bis [9]). Das Kommando »hciconfig« (Listing 1, Zeile 1) zeigt anschließend die Daten der Schnittstelle. Alternativ reicht auch der Aufruf »hcitool dev« (Zeile 8), der bei Erfolg die MAC-Adresse des BT-Dongle ausgibt.

Listing 1:
Bluetooth-Verbindung

01 # hciconfig
02 hci0:   Type: PCCARD
03         BD Address: 00:04:76:C8:4A:E8 ACL MTU: 128:8  SCO MTU: 64:8
04         UP RUNNING PSCAN ISCAN AUTH ENCRYPT
05         RX bytes:1046 acl:0 sco:0 events:58 errors:0
06         TX bytes:850 acl:0 sco:0 commands:35 errors:0
07 
08 # hcitool dev
09 Devices:
10         hci0    00:04:76:C8:4A:E8
11 
12 # hcitool scan
13 Scanning ...
14         00:0E:07:47:93:1B       BT-Phone
15 
16 # l2ping 00:0E:07:47:93:1B
17 Ping: 00:0E:07:47:93:1B from 00:04:76:C8:4A:E8 (data size 20) ...
18 0 bytes from 00:0E:07:47:93:1B id 200 time 63.05ms
19 0 bytes from 00:0E:07:47:93:1B id 201 time 48.13ms
20 0 bytes from 00:0E:07:47:93:1B id 202 time 45.13ms
21 3 sent, 3 received, 0% loss
22 
23 # hcitool cc 00:0E:07:47:93:1B
24 # hcitool dc 00:0E:07:47:93:1B

Als einfachen Test prüft »l2ping« (Zeile 16), ob das Mobiltelefon auf Pings an seine MAC-Adresse antwortet. Diese MAC ist am schnellsten durch einen Scan der Umgebung herauszubekommen (Zeile 12). Damit es klappt, muss die lokale Nahfunk-Fähigkeit auf dem Handy aktiviert sein. Nach einer gewissen Verzögerung sollte sich mindestens das eigene Gerät melden.

Paare finden sich

Anschließend wird es Zeit, die beiden Geräte zu paaren (Pairing). Dieser Vorgang führt zu einer verschlüsselten Verbindung mit Shared Secret; ohne erfolgreiches Pairing ist kein Datenaustausch möglich. Wieder ist das Kommando »hcitool« zuständig, das nun dringend Administrator-Rechte benötigt.

Der Parameter »cc« (Listing 1, Zeile 23) dient dem Verbindungsaufbau zum Gerät mit der MAC-Adresse 00:0E:07:47:93:1B. Kennt das Mobiltelefon die Gegenstelle nicht, fordert es den Benutzer auf das Passwort einzugeben, das er am PC in »/etc/bluetooth/pin« hinterlegt hat. Als Code taugen nur Zahlen, sonst wird die Eingabe am Telefon schwierig.

Der Parameter »dc« in Zeile 24 löst die Verbindung wieder. Damit hat sich das Telefon den Partner gemerkt und zum Verbindungsaufbau genügt das Kommando »rfcomm« - bis sich der Rechnername ändert oder ein neuer Dongle im Computer steckt. In dem Fall müsste der Anwender das Passwort für ein erneutes Pairing eingeben.

Über die Bluetooth-Strecke gilt es nun, eine serielle Verbindung aufzubauen: »rfcomm connect 1 00:0E:07:47:93:1B 1« erledigt das. Es quittiert den Vorgang mit folgender Ausgabe:

Connected /dev/rfcomm1 to 00:0E:07:47:93:1B on channel 1
Press CTRL-C for hangup

Das Kommando legt bei einem erfolgreichen Aufruf eine serielle Schnittstelle an, im Beispiel »/dev/rfcomm1«. Auf diese greift im nächsten Schritt der PPP-Daemon zu.

Traditionell übernimmt der PPP-Daemon die Internet-Einwahl, egal ob mit klassischem Modem, ISDN oder GPRS. Die meisten Distributionen halten die Konfiguration unterhalb des »/etc/ppp«-Verzeichnisses vor. Die Skripte »ip-up« und »ip-down« führt der PPP-Daemon nach erfolgreichem Auf- und Abbau der Verbindung aus. Wer zu diesem Zeitpunkt weitere Aktionen triggern will, legt zwei Skripte »ip-up.local« und »ip-down.local« im selben Verzeichnis an.

Diesen Artikel als PDF kaufen

Express-Kauf als PDF

Umfang: 7 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Als digitales Abo

Als PDF im Abo bestellen

comments powered by Disqus

Ausgabe 07/2013

Preis € 6,40

Insecurity Bulletin

Insecurity Bulletin

Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...

Linux-Magazin auf Facebook