)( mini-howto

this page in english

dies ist ein mini-howto für )( unter verwendung von open source software.

(")(" steht hier für "wardriving" und wardriving wiederum steht für das aufspüren drahtloser netzwerke während man sich per auto, rad, zu fuß oder sonstwie im gelände bewegt.
der ausdruck wardriving ist IMHO schlecht gewählt und sollte nicht mit "war" (krieg) in verbindung gebracht werden.
man kann sehr gut gleichzeitig ein "wardriver" und ein pazifist sein.
"warXing" nehme ich als oberbegriff für wardriving, warwalking, warriding oder jede andere art von warmoving. manchmal sage ich "wardriving" statt warXing, weil das der bekannteste dieser ausdrücke ist.)


auf dieser seite zu finden:


zurück zu meiner )( home page



die gps-maus (links hinten) und das notebook mit laufendem kismet und gpsdrive.


0. überblick

dies ist ein kurzer führer, wie man )( mit open source software machen kann. auf die verwendung propietärer treiber, wie sie für viele wlan karten angeboten werden, werde ich nicht eingehen. tatsächlich ist der einzige open source treiber, den ich kenne (und mit dem ich erfahrung habe) der noch in entwicklung befindliche linux-wlan-ng treiber. außerdem werde ich mich auf linux (suse and debian) beschränken, da ich mit den anderen offenen betriebssystemen keine erfahrungen habe, außer:

auf einem anderen notebook (acer travelmate) habe ich ganz kurz die "war-bsd" live-cd distribution ausprobiert. ich habe nur geschwind ausprobiert, dass das system bootet, dass sich die netgear wlan pc-card konfigurieren und benutzen lässt, und dass das schnüffelprogramm läuft.

dieses mini-howto ist im wesentlichen gerade mal ein beispiel, wie man )( machen kann, aber sicher keine auch nur halbwegs vollständige anleitung.


1. voraussetzungen

die installation von wlan und )(-software ist meist nicht wirklich einfach. man muss schon mehr können als nur ein setup-programm doppelklicken... aber wer noch nie einen tar-ball installiert hat oder noch nicht weiß wie man einen kernel kompiliert, kann das ja lernen. ich habe es ja auch geschafft... ;-)


2. )(-hardware beispiel

ich benutze ein ganz normales 2002er notebook mit nur einer besonderheit: einem internen mini-usb wlan device.
wie sich herausstellte sind usb basierte wlan devices nicht wirklich so viel komplizierter als die verbreiteteren pc-card wlan karten, aber es gibt halt viel weniger benutzer und daher weniger kollektives wissen im netz...
eine ganz andere geschichte sind die linux pdas wie zaurus oder yopy.
dafür gibt es eigene )(-applikationen, aber ich kenne mich damit nicht aus.

nach wie vor plane ich die anschaffung eines apple ibooks oder powerbooks.
sobald ich so eines habe werde ich über )( mit powerbooks hier berichten.


2.1 notebook und wlan treiber

ich habe eine seite über mein notebook und sein wlan modul hier.


2.2 gps device

mein notebook hat die herkömmlichen Schnittstellen (i.e. parallel and serial) nicht. daher musste ich mir eine usb-basierte gps-maus suchen.

im märz 03 war das günstigste angebot eine holux gm-210 gps-maus mit zusätzlichem usb adapter.

zuerst hielt ich das lange extrakabel mit dem konverter in der mitte für einen nachteil. inzwischen finde ich das so fast drei meter lange kabel praktisch, denn ich kann die maus wie üblich ganz vorne unter die windschutzscheibe legen und den computer auf den mittleren zusammengeklappten sitz in der mittleren sitzreihe stellen, was nicht nur cool aussieht, sondern auch besten empfang für die integrierte antenne sichert (der mittlere sitz des vans ergibt zusammengeklappt einen kleinen tisch).

die gm-210 hat einen starken magnetfuß, um sie auch auf dem autodach montieren zu können. dieser magnet ist so stark, dass man aufpassen muss, dass er nicht zu dicht an die festplatte gerät. ich benutze eine kleine stahlplatte unter der gps-maus, wenn ich sie im rucksack oder der tasche transportiere, der stahl schließt dann das magnetfeld kurz, so dass dieses keinen schaden anrichten kann.


2.3 stromversorgung

mein notebook läuft etwa zwei stunden von einer batterieladung. da ich eine zweite batterie habe, kann ich einen 3 bis 4 stunden trip nur mit akkus schaffen. natürlich muss ich dann nach etwa knapp zwei stunden eine pause einlegen, linux beenden, batterie wechseln, neu booten, und die )(-anwendungen wieder starten.

für längere touren habe ich mir einen belkin "ac anywhere" 140watt bei 230volt Konverter mit nahezu sinusförmiger spannung gekauft.
(im abschnitt wardriving weiter unten muss ich noch was über dieses ding sagen...)
der hauptvorteil dieses spannungskonverters ist, dass er nur 70 euros gekostet hat.


3. )(-software

außer linux gibt es noch andere freie betriebssysteme, mit denen ich aber praktisch keine eigenen erfahrungen habe. ich werde mich hier auf linux (und da auf suse und debian) beschränken.

das wichtigste programm für )( sucht ständig die Kanäle des 802.11b-Standards nach access points oder anderen wlan-geräten ab, liest die gps-koordinaten ein und protokolliert gefundene netze mit allen wichtigen informationen in dateien oder datenbanken. windows benutzer verwenden meist das bekannte programm netstumbler. für linux gibt es verschiedene open source applikationen für denselben zweck. ich habe die deutsche software wellenreiter ausprobieren wollen, habe es aber nie geschafft, alle benötigten bibliotheken zusammenzufinden und das ganze dann zum laufen zu bringen. ich gab das auf und kam auf kismet.

ich mag kismet inzwischen sehr. es ist das genaue gegenteil von "ressourcenhungrig". es braucht nicht mal das x window (xfree86) system, so dass man es auch auf älteren, langsameren notebooks verwenden kann. ein weiterer vorteil ist, dass es beim scannen absolut passiv bleibt, d.h. es sendet keinerlei pakete aus. daher kann niemand wissen, dass da ein kismet-lauscher vorbeikommt...
weiterhin bietet es allerlei interessante informationen über die gefundenen netze, sogar während dem fahren mit nur jeweils einem tastendruck abrufbar.

ein cooles ergänzungsprogramm zu kismet ist gpsdrive. diese österreichische software zeigt automatisch die richtige karte im gewünschten maßstab, scrollt diese live mit, zeigt die luftlinienentfernung zum eingestellten ziel, die derzeitige position und richtung, und es zeichnet die gefunden netze in die karte, alles in echtzeit. (natürlich braucht gpsdrive das x window system. zusätzlich braucht es noch einen laufenden mysql datenbank-server.)

ein weiterer nützlicher zusatz (falls man es geschafft hat, das sound-subsystem des notebooks zu aktivieren) ist festival, eine sprachausgabe-software.
damit liest dann kismet die frisch gefundenen netzwerke gleich laut vor: "new network found. ssid is thd-wireless. channel 6. network open."
(anmerkung: man könnte eine deutsche stimme für festival installieren und kismet für deutsche sätze konfigurieren, aber das habe ich mir nicht angetan, mir gefällt der englische text ganz gut.)


3.1 wlan drivers

intersils wlan chipsatz prism war in den letzten jahren einer der meistverbauten. inzwischen verwenden viele neue 802.11b designs neuere, billigere chipsätze. leider gibt es für die meisten keinen open source treiber-support. mein internal mini-usb device ist zum glück noch prism-basiert und wird daher vom open source projekt "linux-wlan-ng" von absolute-value-systems unterstützt. im folgenden schreibe ich über die linux-wlan-ng treiber für den prism chipsatz.


3.2 gps treiber voraussetzungen

der gpsd dämon liest die gps daten von einem seriellen port ein. wenn man nun usb-basierte hardware hat, muss im linux-kernel serial-over-usb support eingeschaltet sein. für neuere suse distributionen ist das der default, aber nicht für das aktuelle debian system. für debian müsste man also den kernel neu kompilieren. wer das noch nie gemacht hat, sollte sich auf einiges an zeit- und ernergieaufwand gefasst machen, das zu lernen. aber es zahlt sich allemal aus, einfach für das coole gefühl, wenn man es geschafft hat...


3.3 kernel vorbereitung

linux-wlan-ng braucht einen vollständig konfigurierten kernel source, der zum laufenden kernel passen muss.

wer seinen eigenen kernel kompiliert, braucht nur zu kontrollieren, dass der link "/usr/src/linux" auf das aktuelle kernel source directory zeigt.
andernfalls muss man den kernel source tree installieren (und auch diesen link kontrollieren).
weiterhin muss der source tree dann voll konfiguriert werden.
um den kernel source zu konfigurieren, ohne ihn zu installieren, kann man die folgenden schritte ausführen:

(dies ist ein quick-and-dirty rezept, manches ist vielleicht überflüssig, aber so genau weiß ich das nicht, sorry)


3.4 treiber installation

wenn die kernel sourcen-konfiguration einmal geschafft ist, ist die installation der linux-wlan-ng treiber ziemlich einfach. nach dem herunterladen des tarball packt man diesen mit dem kommando "tar -xzf linux-wlan-ng-version" in ein geeignetes verzeichnis (im home dir oder zum beispiel in "/usr/src"). die installationsprozedur ist in der README datei im source dir gut beschrieben. im wesentlichen führt man nacheinander aus: "make config", "make all" und "make install".

nach der installation kommt der schwierige teil: die konfiguration.

nach langen und frustrierenden versuchen mit den diversen network und hotplug scripts der verschiedenen linux distros gab ich beides auf und machte eine brutal-primitive konfiguration auf folgende weise:

ich änderte alle init scripts, die ich finden konnte, so, dass sie sich direkt ohne fehler beenden, und somit gar nichts tun, insbesondere nichts böses. dies erreicht man leicht durch einfügen einer zeile "exit 0" direkt unter der kopfzeile der script-datei. allgemeingültige regeln kann ich hier nicht angeben, weil diese scripte und die verzeichnisstrukturen, in denen sie abgelegt sind, von distribution zu distribution stark unterschiedlich sind, und sogar von version zu version derselben distro oft ganz anders daherkommen.

auf der seite über mein linux und wlan habe ich noch ein paar detailliertere tipps.


3.5 scanning/schnüffel-software

die kismet-installation beginnt mit dem download und auspacken des tarballs (v.2.8.1 war zu der zeit aktuell). das weitere vorgehen steht in der README datei.
die warnungen von ./configure und make sind zu beachten, ein fehlerfreier durchlauf bedeutet nicht, dass alles geklappt hat. wenn beispielsweise die devel libs von imagemagick fehlen, wird zwar kismet, aber nicht gpsmap gebaut.
sehr wichtig ist das sorgfältige anpassen der beiden config-dateien von kismet, denn die defaults passen für prism-basierte hardware gar nicht. beide config dateien (in "/usr/local/etc/") sind self-documenting, so dass es nicht schwierig ist, sie richtig einzustellen.
das wichtigste setting legt den paket-typ fest. hier muss man "source=prism2,wlan0,prism" für prism-basierte hardware einstellen. ausserdem müssen die gps und festival settings auf "true" gesetzt werden.
zumindest für meine hardware funktionieren die sound-lautstärke-settings nicht. einerseits ist das bong, das netzwerk-verkehr anzeigt, viel zu laut, andererseits brauche ich eine hohe lautstärke-einstellung in kde und der notebook-hardware, damit die festival-stimme gut zu hören ist. mein ausweg aus diesem dilemma ist ganz einfach das editieren der zu lauten sound-dateien mit einem wave-editor auf eine viel geringere lautstärke, und dann kismet für die verwendung der neuen leisen sounds konfigurieren (i.e. in der datei kismet_ui.conf einstellen).
weiterhin ist die einstellung des user accounts wichtig, unter dem kismet dann laufen soll. man muss denselben benutzer account einstellen, unter dem man nachher die )(-sessions laufen lassen will.


3.6 live mapping software

gpsdrive installation: das geht ganz nach anweisung. das einzige, was einzustellen ist, ist das linux device wo gpsd (dieser dämon wird mit gpsdrive mitgeliefert) die gps-daten erwarten soll. in meinem fall (suse linux) war das der port "/dev/ttyUSB0", was herauszufinden ziemlich schwierig war. in debian habe ich das nie geschafft, dass gpsd meine gps-maus gefunden hätte, möglicherweise habe ich da bei der kernel-konfiguration etwas übersehen.


3.7 sprachausgabe

festival installation: wieder genau nach anleitung. außer dem anwendungsprogramm sollte man noch drei default-stimmen installieren. die einfache installations-prozedur ergibt eine riesige installation auf der platte. wenn man platz sparen muss, muss man halt tiefer in die docu einsteigen, wenn man alle hinweise befolgt kommt man letzten endes mit wenigen megabytes aus. soweit ich mich erinnere, brauchte ich gar nichts zu konfigurieren, sondern festival funktionierte out-of-the-box.


3.8 )(-start-skript

da das korrekte starten der vielen kleinen programme ziemlich mühsam ist, habe ich mir ein kleines skript geschrieben, das alles in der richtigen reihenfolge startet, und es in meinen path gelegt, und ein kde-icon dafür auf den schreibtisch gelegt, so dass ich es mit einem mausklick aufrufen kann.

mein skript "Kismet" (beachte das große K) sieht so aus:

#!/bin/sh
#script "Kismet": start kismet and friends in the correct sequence
PATH=/sbin:/bin:/usr/bin:/usr/local/bin:/usr/local/sbin:$PATH
gpsd -p /dev/ttyUSB0
sudo kismet_monitor
sleep 1
if [ $# -lt 1 ] || [ $1 != -nohopper  ] ;  then
        echo "=> use option -nohopper if you do not want to use kismet_hopper"
        sudo kismet_hopper -n &
fi
kismet
# end-of-script

dieses skript setzt natürlich voraus, dass sudo (via visudo) so konfiguriert wurde, dass der user die programme kismet_monitor und kismet_hopper ohne passworteingabe aufrufen darf.

den start von gpsdrive habe ich am ende des skriptes absichtlich nicht eingefügt.
stattdessen verwende ich dazu ein zweites icon.
der vorteil dieser teilung ist, dass ich das "Kismet" skript auch dann aufrufen kann, wenn ich gpsdrive nicht brauche, zum beispiel beim warwalking, oder wenn ich gerade kein x window system laufen habe.


4. warXing

der erste schritt zur vorbereitung eines gelungenen )(-abenteuers ist das downloaden der benötigten karten für gpsdrive.
dies kann man interaktiv machen, indem man gpsdrive in den "position mode" schaltet und den download-map-befehl verwendet.
das sollte man also vorher zuhause machen, wo man vollen internetzugriff hat. sobald man dann später kismet gestartet hat, wird das wlan-device in den monitor-mode gebracht, und steht für normalen internetzugang nicht mehr zur verfügung, selbst wenn gerade ein offener access point in reichweite wäre. theoretisch könnte man eine zweite wlan-karte für den gleichzeitigen netzzugriff nutzen, aber dies wäre in den meisten ländern illegal, falls es ein fremdes netzwerk ist, oder sehr teuer, wenn es ein kommerzieller hotspot ist, und außerdem wird man gerade dann, wenn man die nächste karte bräuchte, vermutlich gerade weder das eine noch das andere vorfinden.
eine weitere möglichkeit, unterwegs die karten aus dem netz zu laden, wäre die verwendung eines gsm oder gprs datenmodems, z.b. eines handys. allerdings wäre das heutzutages sogar noch teurer.
aus diesen gründen ist es IMHO viel besser, seine route vorher gut zu planen und die benötigten karten in den gewünschten maßstäben vorher zu besorgen.
die andere, nicht-interaktive methode, karten zu laden, ist die verwendung des download skripts, das ebenfalls der gpsdrive applikation beiliegt. mir liegt dieser weg weniger, daher sage ich hier nichts dazu.


4.1 wardriving

es dauert schon eine weile, eine wardriving session zu starten. mit ins auto hüpfen und losbrausen ist da nicht viel. (wenn man mit jemand anderem mitfährt, der nur schnell was besorgen will, kann das ein problem sein...)

ich brauche so rund 10 minuten, um alles hergerichtet zu haben:


der dc/ac spannungswandler ist schon eingesteckt.


die gps-maus unter der windschutzscheibe.


das notebook auf dem mittleren sitz, der hier als tisch dient.

jetzt endlich kann die tour losgehen, und der spaß fängt an. in einer guten gegend findet kismet die netze bei weitem schneller, als festival mit der gesprochenen ansage mitkommt, gleichzeitig zeigt gpsmap die passende mitscrollende karte, zeigt position und richtung deutlich an (ja, ich kann das sogar zur navigation nutzen, wenn der verkehr nicht zu hektisch ist) und zeigt die gefundenen netzwerke graphisch in der karte an.
so soll wardriving sein! das ist der lustige teil der sache.

der lästige dc/ac-Konverter schaltet sich selber ab, wenn er zu heiß wird. zudem, wenn man den motor ausmacht, z.b. beim parken oder tanken, und nachher wieder startet, fällt während des zündvorgangs kurz die 12 volt bordspannung aus. häufig bleibt der konverter danach ausgeschaltet, so dass ich dann wieder aussteigen muss, zur heckklappe gehen, und den konverter ein paarmal neu einschalten, bis er sich wieder bequemt zu funktionieren... so sollte das natürlich nicht sein.

zum glück ist das zusammenräumen am ende der tour bei weitem einfacher und schneller erledigt als das aufbauen: in zwei minuten kann das fertig sein. die einzige wichtige regel ist, erst gpsdrive beenden, dann kismet quitten, danach alles andere abbauen und einpacken, sonst hängt sich irgendein prozess auf.
während das notebook herunterfährt, kann man es schon zuklappen und zusammen mit dem anderen zeug wegpacken.


4.2 warwalking

ich habe meinem eastpak oben eine kleine stahlplattform verpasst.
der magnetfuß der gps-maus hält diese dann ordentlich fest, nach oben in den himmel schauend - und zu den gps-satelliten.
vor dem warwalking muss ich:


die magnetische gps-maus auf der stahlplattform.


fertig zum warwalking.

ich frag mich oft, was die passanten so denken, wenn kismet aus meinem rucksack stories erzählt, wie "new network found. ssid no name. channel 11. network encrypted."?


4.3 warXing

warbiking mit dem radl ist auch lustig, aber im prinzip das gleiche wie warwalking.
warXing mit dem schiff oder segelflugzeug? hab ich noch nicht probiert...


5. postprocessing

wieder zuhause, kommt die nacharbeit. zuerst muss man die dateien kontrollieren, die kismet geschrieben hat. die .network dateien müssen vernünftige werte für die koordinaten enthalten, sonst kann man die dateigruppe dieses datums und dieser seriennummer nicht verwenden. dann kann man das skript gpsmap, das mit kismet daherkommt, zum zeichnen der endgültigen karten verwenden: das ist ja das ziel von )(, die karten der gefundenen netzwerke zu zeichnen und zu veröffentlichen.
leider sind die optionen und parameter von gpsmap zahlreich und nicht leicht richtig zu belegen. man kommt auf keinen fall um ein sorgfältiges studium der man page ("man gpsmap") herum. trotzdem werden einige experimente nötig sein, bis die ergebnisse zufriedenstellen. es ist absolut notwendig, die gpsmap-aufrufe in skript-files zu sichern, um sie wiederverwenden zu köönen und damit man dieselben fehler nicht immer wieder macht.
(gpsmap benötigt die imagemagick devel library, die in den meisten distros schon dabei ist. wenn diese lib während dem bauen von kismet fehlt, wird gpsmap nicht compiliert und nicht installiert!)

6. publication

wenn die karten gelungen sind, wird man sie auf einem der wardriving portale oder auf der eigenen website veröffentlichen wollen. das dateiformat der kartenbilder (png, jpg, gif) kann man schon beim aufruf von gpsmap festlegen, was qualitätsverluste beim nachträglichen konvertieren vermeiden hilft.
bei der auswahl der optionen für die beschriftung muss man die rechtlichen bestimmungen beachten.
(meines erachtens ist zum beispiel die nennung der (e)ssid namen zumindest in europäischen ländern problematisch.)


zurück zu meiner )( home page


zurück zu rm's home