Wireless LAN #

Da wir beim letzten LUG-Treffen über das Thema WLAN diskutiert haben und das wir alle viel zu wenig WLAN-Karten haben, habe ich nochmals ein wenig Forschung betrieben und möchte meinen Wissensstand hier niederschreiben. Erweiterungen sind jederzeit gewünscht. -- ThomasBayen

Informationen #

Es gibt eine grosse Menge an Listen und Hilfeseiten zum Thema, die eigentlich alle nicht wirklich helfen. Im Nachhinein kann ich als Startpunkt erstmal das Linux-WLAN-HOWTO empfehlen. Dies ist eine nach meiner Erfahrung recht gute Übersicht über alle Treiberbestrebungen unter Linux.

Im LinuxWiki steht auch was zum Thema: http://linuxwiki.de/LinuxHardware_2fPcmciaKarten

Wer Wardriving machen will, also "fremde" Netze aufspüren und abhören will, muss die Karte dazu in einen monitor-Modus bringen (so eine Art promiscuous mode für WLAN-Karten). Dies unterstützen nicht alle Treiber. Wer sowas will, schaut mal bei den wardriving-Tools Kismet oder Wellenreiter nach. Wer einen eigenen Access Point betreiben will, benötigt den hostap-Treiber. Dieser läuft nur mit dem Prism-Chipsatz.

Kartentreiber #

Es gibt drei Gruppen von Chipsätzen, die ich für interessant erachtet habe (und eine, die definitiv uninteressant ist):

Prism #

Der PrismII-Chipsatz soll der am meisten verbreitete sein. Auch die Versionen Prism2, Prism2.5 und Prism3.0 laufen mit identischem Treiber. Man hat die Wahl zwischen dem wlan-ng-Treiber, dem orinoco-Treiber und dem hostap-Treiber (HostAP). Für diesen Chipsatz gibt es die schönsten Tools, neben dem Monitor Mode insbesondere auch den hostap-Treiber zum Errichten eines eigenen Access Points (für LUGer besonders interessant, gute Anleitung auf http://trekweb.com/~jasonb/articles/hostap_20021012.shtml) und Erfahrungsbericht auf HostAP.

Orinoco, Aironet #

Diese beiden Treiber sind auch schon älter und wahrscheinlich ausgereift. Sie unterstützen den Monitor Mode.

Falsch! Der aktuelle Orinoco-Treiber (orinoco-0.11b) im 2.4.20er Kernel stürzt unter großer Netzlast ab. Ich empfehle ein Update auf orinoco-0.13c, da nun das Tx Timeout fast gelöst zu sein scheint. Der Monitor Mode wird auch nicht von Haus aus unterstützt, sondern nur der Promiscuous mode. Will man die Karte im Monitor Mode nutzen, muss ein Patch von http://airsnort.shmoo.com/orinocoinfo.html The Shmoo Group eingespielt werden. -- DocX
Der Orinoco-Treiber hat auch Probleme mit WEP, wenn die STA Firmware der Karte zu neu ist (Zum Flashing siehe bei Junsunhttp://linux.junsun.net/intersil-prism/: ich habe STA 0.8.0, STA 1.5.6 und STA 1.7.1 sowie einige Zwischenstände probiert, und der Orinoco-Treiber verweigert das Setzen von WEP Keys bei Ständen über 1.5.6). Der hostap-Treiber läuft dagegen problemlos. -- MartinK

CentrinoWLAN #

Die von Intel stark geförderten Centrino-Rechner wurden bis Anfang 2004 nicht unterstützt. Inzwischen gibt es jedoch einen Treiber, der zumindest im Infrastruktur-Modus (also mit Access Point) gut funktioniert. Mehr dazu auf der Seite CentrinoWLAN.

Atmel #

Es gibt einen GPL-Treiber von Atmel (http://atmelwlandriver.sourceforge.net), der erst mit den 2.6.x-Kerneln in den offiziellen Kernel Einzug gehalten hat. Dieser Chipsatz ist in sehr vielen USB-WLAN-Geräten verbaut worden (generell von abzuraten, da USB recht langsam ist), aber auch in PCMCIA-Karten. Zum Beispiel läuft damit auch die "Siemens Gigaset PC Card 11" (und meine "Belkin F5D6020"). Dazu habe ich einen 2.6er-Kernel genommen und das Debian-Paket atmel-firmware mit der Firmware von http://at76c503a.berlios.de gezogen und installiert. Da ich eine Karte mit diesem Chipsatz habe, gibts nähere Infos auch bei mir. -- ThomasBayen

Auf der Seite AtmelWLANKarte habe ich dokumentiert, wie man eine Siemens Gigaset PC Card 11 unter Debian Sarge zum laufen bekommt. -- ThomasBayen

TI #

Karten, die als 22MBit bezeichnet werden (z.B. DLink 650+), haben den ACX100-Chipsatz von Texas Instruments. Entgegen allen Gerüchten läuft diese Karte nicht unter Linux. Es gibt einen Binärtreiber, der nach einigen Kernel-Manipulationen zu laden ist und mit etwas Ahnung von der Materie (die ein Anfänger bekanntlich nicht hat), kann man sie auch zu einem Verbindungsaufbau überreden, aber der Treiber ist sehr langsam und stürzt vor allem dauernd ab. Da keine Sourcen vorliegen, kann das auch keiner reparieren. Meine Erfahrungen :-( stehen auf der Seite DLinkWLAN.

Ralink, z.B. RT73 #

Ich (ThomasBayen) besitze einen USB-Stick von Hama, der einen RT73-Treiber benutzt. Hier half es (wie bei USB-Geräten oft), die Geräte-ID aus dem System-Log zu nehmen und bei Google einzugeben. Treiber gibt es unter http://rt2x00.serialmonkey.com/wiki/index.php?title=Main_Page, wobei es aktuell (Juli 2007) auch Debian-Pakete in der experimental-Distribution gibt, die man benutzen kann. Ein bisschen was dazu steht auf der Seite ThinClientLokalBooten. Ich denke, daß diese Pakete bald auch in Debian Lenny als vorkompilierte Kernelmodule zur Verfügung stehen.

Links mit Listen von Karten #

Hilfreich sind in diesem Zusammenhang folgende Links: Liste alle Chipsätze' und Liste fast alle Funkkarten''

Welche Karte #

Jetzt wissen wir also, was wir wollen!?! Weit gefehlt! Das Problem ist, dass kein Hersteller irgendwo angibt, welchen Chipsatz er verwendet. Nicht nur, dass das nicht auf der Verpackung steht - nein, selbst auf den Karten selber ist nichts angegeben. :-( Dazu kommt, dass man nicht glauben darf, dass eine Karte das Chipset XY benutzt, nur, weil derselbe Hersteller unter demselben Namen und in derselben Verpackung letztes Jahr eine Karte mit XY verkauft hat...

Erste Antwort von Kai auf "welche Karte":

Media-Markt in Krefeld hat umgebaut und dabei an einem Montag Sonderangebote gehabt. Eines davon ist sehr interessant :

 11 Mbit - 802.11b Kompatibel
 SIEMENS I - Gate 11Mbit Eine PCMCIA-Funknetzkarte mit PRISM Chipsatz laut schriftlicher Aussage des Media Marktes und ich zitiere wörtlich " ... auch für Linux Betriebssystem geeignet, für WIN98/ME/2000/XP und Linux."
Franz hat ein paar dieser Karten besorgt (39,-). Mein (ThomasBayen) Test hat ergeben: Einstecken - Läuft! :-) Mein PCMCIA-System lädt dabei automatisch den Orinoco-Treiber. Mit den anderen beiden habe ich es noch nicht probiert. Der Treiber erzählt im System-log, dass die Karte eine 0.7 Firmware hat und bestimmte Funktionen nur mit 0.8 gehen. Bei mir lief jedoch alles (Infrastruktur Modus ohne WEP). Infos gibts auch unter http://www.fujitsu-siemens.de/rl/produkte/wireless/igate_pccard.html
Die Firmware 0.7 funktioniert prinzipiell, allerdings wird WEP unter Linux nicht unterstuetzt. Der PCI Adapter ist offenbar baugleich mit SMC2602W, die PCMCIA Card mit der SMC2632W. Da auf der Siemens Site keine entsprechende Firmware angeboten wird, habe ich mir von www.smc-europe.com das Firmwareupdate 8c3 besorgt und (unter Windows) geflasht. Mit der Firmware 0.8 klappt auch WEP einwandfrei. - HeinzHayduk
ThomasBayen hat Dank HeinzHayduk und http://www.smc-europe.com seine Karte auch geupdatet. Dabei ist wichtig, das man die Karte erst normal, d.h. mit dem Siemens-Treiber unter Windows installiert. Danach lädt man dann das Update-Tool herunter und startet es. Meine Firmware ist jetzt die 8.3. Nun WEPpt die Karte auch!
Zum Thema Flashen ist die Seite von Junsunhttp://linux.junsun.net/intersil-prism/ unbedingt zu empfehlen. Dort bekommt man verschiedene Firmware-Stände (z.B. STA 1.7.1, den man für WPA braucht). Nach meiner Erfahrung ist für einen Linuxer das hostap-util prism2_srec die einfachste und sicherste aller Möglichkeiten: kein Windoze reboot nötig! Je nach Karten-Hardware braucht man Firmware-Dateien mit bestimmtem zweitem Buchstaben, etwa '1' für die I-GATE Karten (also für STA 1.7.1 dann: S1010701.HEX zum Flashen, oder R1010701.HEX für temporäres Laden ins Karten-RAM). Doch keine Angst: prism2_srec flasht nur, wenn man beim Compile ein zusätzliches #define gesetzt hat, und wenn das Image auch wirklich zur Karte passt.

Was kann ein Krefelder jetzt tun? (Meine Leidensgeschichte) #

Wenn jemand einen Laden in Krefeld kennt, der Ahnung von der Materie hat, bitte sofort melden! Meine Erfahrungen bei der Suche nach sowas waren eher abschreckend. Faktisch gibt es in Krefeld leider nur den Media Markt, der eine gewisse Auswahl liefert. Eigentlich hasse ich diesen Laden ja, weil er ein Monopol aufgebaut hat. Ausserdem gibts da Null Beratung und Null Verkäufer mit Linux-Ahnung. So habe ich da im Dezember die DLinks gekauft, was eine völlige Pleite war. :-( Allerdings ist der Service nicht völlig schlecht. Die haben nämlich vorgestern (im März) anstandslos meine beiden DLinkWLAN-Karten zurückgenommen. Da war ich erstmal glücklich, dass ich den Schrott los war. :-)

Ich habe mir die Karten dort alle eine halbe Stunde lang angesehen, was mir überhaupt nix geholfen hat. :-( Dabei hatte ich ein paar Ausdrucke mit (z.B. die Kartenliste von Kismet). Dort stand "Belkin Karte läuft, weil Prism". Also habe ich mir die Karte gekauft (79,-). Zuhause lief das Ding dann natürlich nicht. Als ich dann Internet-Zugang hatte und ein wenig herumgestöbert habe, kam heraus, dass es die Belkin F5D6020 in zwei Versionen gibt. Eine alte mit PrismII und eine neue mit Atmel... :-(

Erst dachte ich, daß jetzt derselbe Ärger wieder anfängt, allerdings war die Übersetzung und Installation des Atmel-Treibers im Vergleich zu den Bemühungen, die DLink-Karte ans laufen zu bekommen, ein Kinderspiel. Die Karte läuft, und zwar schneller und stabiler als die DLink! Leider gibts keinen Monitor Mode aber das ist mir inzwischen erstmal egal...

Als ich dann wieder zu Hause war, habe ich in der Kernel-Konfiguration gelesen, dass der Hermes (d.h. Prism) Treiber auch die Netgear MA401 unterstützt. Auch im LinuxWiki auf der Seite http://linuxwiki.de/LinuxHardware_2fPcmciaKarten wird jemand erwähnt, der Hilfe anbietet. Diese habe ich auch im Media Markt gesehen. Desweiteren habe ich bei meinem Linux eine 3com Officeconnect ans laufen gebracht, läuft echt gut das Ding. (Sascha Solecki)

Ob die Netgear nun wirlich immer noch den Prism enthält, kann ich natürlich nicht beschwören. Ich selber habe jetzt die Belkin erstmal am Laufen und werde weitere Spielchen auf später verlegen.

Ich kann definitiv bestätigen das eine Netgear MA311 vom Mai 2003 die sich per lspci mit: "Network controller: Harris Semiconductor: Unknown device 3873 (rev 01)" meldet, mit dem HostAp Treiber Version 0.0.2 als WLAN Accesspoint läuft. Die Karte ist ausserdem sehr günstig. Ca. 60 €.

Ich habe 3 Karten von Siemens (Gigaset PCI Card 54) gekauft, weil Peter gesagt hat, dass welche von Siemens bei Lugis mal funktioniert haben (s.o.). Was ich dann vor dem Kauf überhört hatte, war, dass er dafür keinen Linuxtreiber gefunden hat:-( Aber dann sind wir auf den ndiswrapper gestoßen, der die Benutzung der Windowstreiber ermöglicht. Mit der sehr guten Anleitung auf Sourceforge hat das Ganze relativ schnell geklappt (ca. 1/2 Stunde). Dort steht auch, wie und wo man den richtigen Treiber für seine Karte findet. Den Treiber auf der beiliegenden CD sollte man nicht nehmen. Die Anleitung funktioniert auch für andere Karten. Dann muss noch "wireless-tools" installiert werden. Dem Krefelder (und natürlich der Krefelderin) empfehle ich SWL-Datentechnik in St. Tönis, Kaiserstraße --SusanneWenz

Access Point #

Nachdem ich beim ersten Anlauf in jugendlichem Wahnsinn eine PCMCIA und eine PCI-Karte gekauft hatte, um einen Rechner als Access Point zu benutzen, wollte ich diesmal die ganze Sache einfach nur ans Laufen bringen. Also habe ich einen Belkin Wireless Access Point F5D6130 gekauft (DM 129,- - eine PCMCIA-Karte mit PCI-Adapter ist auch nicht günstiger). Das Ding wird ins LAN gesteckt und Fertig! Der Verbindungsaufbau ging sofort! :-)

Zur Konfiguration des Gerätes (für Verschlüsselung etc.) liegt natürlich nur eine Windows-CD bei. Dieses Programm kann irgendwo im LAN oder WLAN installiert sein. Allerdings habe ich voller Erstaunen auch ein Konfigurationsprogramm unter Linux im Debian-Paket ap-utils entdeckt. Der AP ist wohl baugleich mit einigen anderen Atmel-basierten APs (z.B. Linksys). Und dieses Tool kann wesentlich mehr als das Windows-Tool. So ist es auch möglich, die Sendeleistung heraufzusetzen(!).

Ein zweiter Vorteil des APs ist natürlich, daß man ihn an einer günstigen Stelle postieren kann und dann nur ein normales Netzkabel dorthin verlegen muss. Ist die Karte in einem PC, muss man ggf. ein Antennenverlängerungskabel benutzen, was nicht nur teuer ist, sondern sich auch sehr ungünstig auf die Sendeleistung auswirkt.

Übrigens gibt es auch die Möglichkeit, zwei dieser APs als Bridge zwischen zwei LANs zu konfigurieren. Das ist dann die etwas teurere Lösung, bei der man allerdings gar keine Treiberprobleme mehr hat.

Die Art von Bridging ist aber nicht auf kommerzielle APs beschränkt: das Feature nennt sich WDS (Wireless distribution system) und ist seit längerem mit dem hostap-Treiber möglich. Allerdings muss man Karten mit älteren Firmwareständen hoch-Flashen (s.o. unter Junsunhttp://linux.junsun.net/intersil-prism/). Das hostap-READMEhttp://hostap.epitest.fi/cgi-bin/viewcvs.cgi/*checkout*/hostap/README?rev=HEAD&content-type=text/plain enthält Hinweise zu dem WDS-Feature.

Sicherheit #

Ich habe den AP an einem ganz eigenen Netzwerksegment, d.h. an einer eigenen Netzwerkkarte an einem Linux-Router mit entsprechender Firewall. Man sollte sich darüber im klaren sein, dass WEP grundsätzlich zu knacken ist. Ich denke, dass ich lieber eine ganz unverschlüsselte Verbindung nehme (um keine Illusion aufzubauen), um z.B. über Port 80 ins Internet zu gehen und dann über diese Verbindung ein separates VirtualPrivateNetwork mit VPNmitIPSec oder OpenVPN aufbaue, wenn ich in mein LAN will. Zugriff ins LAN ohne VPN wird dann komplett verboten. So hängt die Sicherheit dann von meinem VPN ab, was erstens erlaubt, die beste Software dafür zu wählen und zweitens normale WLAN-Sniffer stark verwirren dürfte.

Konfiguration #

Die Konfiguration der Schnittstelle mache ich wie bei LaptopNetzwerkAutokonfiguration beschrieben. So, wie der Atmel-Treiber sich installiert, wird er im PCMCIA über die "network"-Skripte installiert, d.h. es gilt alles auch für normale Ethernet-Karten gesagte. Als Gegenstelle (zur Angabe von MAC-Adresse und IP) kann man bei guessnet nicht nur den AP selber angeben (dessen IP konfiguriert werden kann) sondern auch einen Rechner wählen, der im LAN existiert, das an den AP angeschlossen ist (Der AP routet offensichtlich auch ARP-Pakete weiter, ist also eine richtige Bridge).

Die "wireless"-Skripte vom PCMCIA-System werden nur benötigt, wenn man WLAN-spezifische Parameter einstellen will. Wenn man z.B. zwei Access Points in der Reichweite hat und nicht immer beim Nachbarn (oder beim Hotspot im Breuers) landen will, sollte man in /etc/pcmcia/wireless.opts entsprechend Änderungen vornehmen, um eine ESSID auszuwählen. Manche Access Points sind hier auf "WLAN" vorkonfiguriert, man kann aber z.B. auch "LUG" einstellen. Die Telekom verwendet z.B. "T-Mobile_T-Com". In dieser Datei sollte man übrigens auch WEP usw. einstellen können.

Im Prinzip habe ich aus obiger Erwägung den Access Point und die Karte gar nicht konfiguriert. Das bedeutet, ich habe eine unverschlüsselte Standard-Verbindung. Daraus ergeben sich folgende Eigenschaften:

  • Kein Ärger mit der WEP-Unterstützung der Treiber und keine vorgegaukelte, falsche Sicherheit
  • Der AP muss an ein eigenes Netzwerksegment (DMZ) angeschlossen werden und nicht in das normale LAN!
  • Beide(!) Seiten der Verbindung sollten eine Firewall besitzen. (D.h. sie müssen ebensogut abgesichert sein wie jeder Rechner, der sich z.B. direkt ins Internet einwählt)
  • Auf beiden Seiten werden Clients für ein VirtualPrivateNetwork installiert, über die dann die eigentliche Verbindung ins LAN aufgebaut wird.
  • Die Firewall am Access Point lässt keine Pakete durch, die nicht mit dem VPN zusammenhängen

WEP #

Wenn man denn WEP doch einsetzen möchte, dann natürlich nur mit 128 Bits (genauer: 104). Gegenüber der VPN-Lösung ist der Aufwand sehr viel geringer, und man kann sogar Windoze-Clients zulassen. Hierzu ein Tipp: Um nicht mit Hex-Keys arbeiten zu müssen, kann man bei Windoze-Treibern häufig eine Passphrase eingeben und sich daraus einen Hexkey erzeugen lassen (so was wie MD5-Hash). Das nwepgen-Programm aus dem linux-wlan-ng Utilitypaket verwendet dabei den gleichen Algorithmus wie die (Nessus-kompatiblen) Windozetreiber, so dass man in Linux und Windoze die gleiche Passphrase verwenden kann. Allerdings klappt das nur mit 40-Bit Schlüssellänge :-( falls man nicht den Patchhttp://lists.linux-wlan.com/pipermail/linux-wlan-devel/2002-February/000873.html einspielt, siehe auch mein Hinweis in Linux-Communityhttp://www.linux-community.de/Neues/story?storyid=11647. (Leider passt der Patch wegen Formatierung nicht richtig, also ist Handarbeit angesagt...) Aber dann kann man aus einer gemeinsamen Passphrase die gleichen WEP128 Keys erzeugen. Interoperabilität Win/Lin ist auch eine Form von Gastfreundlichkeit. - Martin

Einstellen von WEP-Keys #

Wer sich mit einem Debian-System an einem WEP-geschützten Acces Point anmelden will, kann seine WEP-Parameter am einfachsten in der Datei /etc/network/interfaces einstellen, in der bekanntlich auch alle anderen Parameter für die Interfaces angegeben werden. Hier kann man zum Beispiel folgendes schreiben:

  iface eth1 inet dhcp
        WIRELESS_ESSID MEINAP
        WIRELESS_KEY 1234-5678-9abcd-ef01-2345-6789-ab
        up /etc/init.d/openvpn start
        down /etc/init.d/openvpn stop

Erweiterung für Gastfreundlichkeit #

Obiges Setup hat den Vorteil, daß es sich relativ problem- und risikolos so erweitern läßt, daß man auch "Gäste" bedienen kann bzw. sich für "ungefährliche" Dinge gar nicht am VPN einloggen braucht.

  • Auf dem Rechner, an dem der AP hängt, sollte ein DHCP-Server laufen, der die Anmeldung neuer Rechner übernimmt.
  • Die Firewall kann Pakete, die nicht ins LAN (sondern ins Internet) gehen, weiterrouten und so Zugang ins Internet für "Gäste" gestatten (evtl. nur Port 80)
  • Wenn man nur ins Internet möchte, besteht so gar keine Notwendigkeit, das VPN aufzubauen. So bietet man evtl. weniger Angriffsfläche für Entschlüsselungsversuche

Ad-Hoc modes #

Es gibt zwei verschieden Ad-Hoc modes. Zum einen den alten Ad-Hoc Demo Mode (auch bekannt als Lucent Mode) und den neuen IBSS Ad-Hoc Mode. Beide Ad-Hoc modes sind inkompatibel und funktionieren nicht miteinander. Wer also eine alte WLan-Karte hat oder eine alte Firmware, kann Probleme bekommen wenn er an ein Netz im Ad-Hoc Modus betreiben will. -- DocX

Ich dachte, dieses Thema kann man weitgehend vernachlässigen. Wie weit ist das Problem denn praktisch verbreitet? Wie alt muss eine Karte sein, damit es gefährlich wird??? -- ThomasBayen

Funkstrecken #

Zum Thema "längere Funkstrecken" gibt es im Netz einige interessante Erfahrungsberichte, z.B. http://www.pl-berichte.de/t_netzwerk/wlan-selbstgemacht/wlan-selbstgemacht.html