original in cn Wang Xu
cn to en Wang Xu
en to de Katja Socher
Wang Xu ist PhD Student an der Beijinger Universit�t f�r Post und Telekommunikation in China und besch�ftigt sich mit drahtloser Kommunikation. Er wurde 1999 als Collegestudent zum Linuxliebhaber. Au�er Linux mag er auch TeX, C/C++, Perl, etc.
WLAN (IEEE 802.11b/a/g) wird immer popul�rer, da WLAN Karten immer billiger werden und mehr Organisationen ihren Angestallten oder der �ffentlichkeit Zugang zu WLAN erm�glichen. Fast jeder neue Laptop-Computer hat eine integrierte WLAN Karte und �ltere k�nnen PCMCIA WLAN Karten benutzen, sogar Desktop-Computer k�nnen USB WLAN Karten haben oder sogar eingebaute WLAN Karten. Andererseits werden WLAN Access Points (AP) an Universit�ten, in B�rogeb�uden, Hotels, Wohnh�usern etc. eingerichtet. Das WLAN erleichtert das Einrichten lokaler Netzwerke und unterst�tzt mobiles/normadisches Computern, was eine weitere Revolution in unserem Arbeits- und t�glichen Leben darstellt.
Von daher ist es auch f�r die Linuxwelt essentiell, WLAN Zugang zu unterst�tzen. Der Rest dieses Artikels ist wie folgt unterteilt: la�t uns �berlegen, wie man die Treiber f�r die Karten zum Laufen kriegt; dann versuchen wir, zu Netzwerken, die Autentifizierung benutzen, Zugang zu bekommen; und es gibt eine kurze Einf�hrung in die Werkzeuge f�r die WLAN Interface Konfiguration; schlie�lich gibt es eine Schlu�betrachtung.
Wenn du einmal eine Wireless LAN Karte in deinem Computer installiert hast, ist der erste Schritt, den Treiber zu installieren und zum Laufen zu kriegen. Eine WLAN Karte implementiert die Funktionen der physikalischen Schicht (PHY) und des media access control sublayer (MAC), wie es in mindestens einem der IEEE 802.11 Serien von Protokollen spezifiziert wurde, w�hrend der Treiber die Karte steuert, eine Netzwerkschnittstelle identisch zu einer Ethernetschnittstelle sowie andere WLAN spezifische Managementschnittstellen zur Verf�gung stellt.
Es gibt keine einheitliche Methode zum Installieren von Treibern bei der gro�en Zahl von Verk�ufern und Karten. Die meisten Treiber k�nnen jedoch durch eine der folgeden drei Methoden zum Laufen gebracht werden:
Anmerkung, auch wenn du die letzten beiden Methoden benutzt, mu�t du sicherstellen, dass der wireless LAN support in deiner Kernelkonfiguration gesetzt ist:
gnawux@APTITUDE:~$ grep CONFIG_NET_RADIO /boot/config-`uname -r` CONFIG_NET_RADIO=yWenn das nicht der Fall ist, solltest du den Kernel noch mal mit der aktivierten Option "Wireless LAN (non-hamradio) Drivers and Wireless Extensions" konfigurieren.
Die Treiber, die ausgereift genug sind und keine Lizenzprobleme machen, werden zum Linux Kernel hinzugef�gt. Von daher ist die Liste der unterst�tzten WLAN Karten im Kernel abh�ngig von der Version des Kernels und es ist deshalb klug, zu �berpr�fen, ob ein neuer Kernel eine bessere Unterst�tzung f�r deine Karte bietet, bevor du den Treiber installierst.
In diesem Abschnitt illustriere ich, wie man den Treiber f�r WLAN Karten basierend auf Intersil Prism chipsets (ISL38xx) benutzt. Die Liste mit den unterst�tzten Karten findet man unter http://prism54.org [2].
Um eine auf Prism basierende Karte benutzen zu k�nnen, braucht man den neuesten 2.6 Kernel, und aktiviert die "Intersil Prism GT/Duette/Indigo PCI/Cardbus" Option im Wireless LAN Treiber Abschnitt der Kernelkonfiguration, und baut den Kernel erneut.
Wenn du den Hilfetext des Moduls sorgf�ltig durchliest, wenn du den Kernel konfigurierst, wirst du vielleicht feststellen, da� du eine firmware von der prism54.org project Webseite [2] brauchst. Dies ist so, weil die Karte keinen EPROM hat, um die firmware zu speichern. Deshalb mu� man die firmware herunterladen, wenn der Treiber die Karte initialisiert. Die firmware kann wegen ihrer Lizenz nicht Teil des Kernels werden. Nach dem Holen der firmware and schieben nach "/usr/lib/hotplug/firmware/", reboote deinen Computer, und du wirst feststellen, da� du eine zus�tzliche Ethernetschnittstelle hast, die von der WLAN Karte zur Verf�gung gestellt wird.
Viele neue Karten haben, wie viele andere neue Hardware, keine GPL-kompatiblen Treiber der Hersteller oder die Treiber, die von der Open Source Community entwickelt wurden, sind noch nicht ausgereift genug, um in den Kernel integriert zu werden. Deshalb werden diese Treiber als Module bereitgestellt und einige von ihnen werden schlie�lich in zuk�nftigen Kernelversionen hinzugef�gt werden, wenn sie vollst�ndig sind.
Einer der bekanntesten Treiber ist der ipw2100 [3] f�r die Intel Pro/Wireless 2100 Karte, die ein Teil der Intel Centrino� Technologie ist und auf vielen Laptops installiert ist. In diesem Abschnitt f�hre ich in die Installation des ipw2100 Treibers ein.
Zuerst mu� man das Quellpaket des Treibers sowie die firmware von der Projektwebseite http://ipw2100.sourceforge.net herunterladen. Nachdem man sichergestellt hat, da� sein Kernel neu genug ist und mit Unterst�tzung f�r die Module hotplug firmware, and wireless LAN wie eben gesagt gebaut wurde, dekomprimiert man das Quellpaket:
APTITUDE:/usr/src# tar -zxvf ipw2100-1.0.1.tgzGehe dann zum Bilden und Installieren in das Quellverzeichnis:
APTITUDE:/usr/src/ipw2100-1.0.1# make APTITUDE:/usr/src/ipw2100-1.0.1# make installNach dem Installieren der Module, mu� man nun die firmware installieren:
Don't forget to copy firmware to /usr/lib/hotplug/firmware/ and have the hotplug tools in place.Genau so, wie die Meldung es sagt: dekomprimiere die firmware in das hotplug Verzeichnis, dann ist die Installationsprozedur beendet. Jetzt kannst du durch das folgende das ipw2100 Modul aktivieren:
APTITUDE:/usr/src/ipw2100-1.0.1# modprobe ipw2100Au�erdem f�gt man hier vielleicht noch ein paar Parameter f�r verschiedene Konfigurationen hinzu. Zum Beispiel kann der ifname Parameter den Schnittstellennamen spezifizieren:
APTITUDE:/usr/src/ipw2100-1.0.1# modprobe ipw2100 ifname=wlan0D.h. die Schnittstelle wird wlan0 genannt. F�r andere Parameter kann man die Dokumente im Quellpaket des ipw2100 Treibers lesen.
Leider gibt es f�r einige Karten �berhaupt keine Treiber f�r Linux oder der Treiber l�uft aus bestimmten Gr�nden nicht. Dies bedeutet jedoch nicht, da� wir sie unter Linux nicht benutzen k�nnen. Zumindest gibt es NDIS wrapper [1].
Die meisten WLAN Karten f�r Desktop- und Laptopcomputer unterst�tzen Windows 2000/XP, das die WLAN Unterst�tzung durch eine Standardschnittstelle namens NDIS handhabt. Deshalb unterst�tzen die Treiber f�r solche Karten normalerweise NDIS. Deshalb k�nnen wir solch einen Treiber einwickeln (wrap) und unter Linux zum Laufen bringen, als wenn es Windows 2000/XP w�re, was uns zum ndiswrapper Projekt f�hrt.
In diesem Abschnitt installiere ich den ndiswrapper f�r eine Netgear 121 WLAN Karte als ein Beispiel. Als erstes sollte man den ndiswrapper von der Projektseite http://ndiswrapper.sourceforge.net herunterladen und den NDIS Treiber f�r Windows vorbereiten. Der ndiswrapper besteht aus einem Kernelmodul und einem Satz von Werkzeugen. Du solltest es bauen und installieren:
APTITUDE:/usr/src/ndiswrapper-0.11# make installDann kannst du den Windowstreiber im Wrapper laden
APTITUDE:/usr/src/ndiswrapper-0.11# ndiswrapper -i ../wg121/WG121V200/ndis5/netwg121.infwobei die .inf Datei der NDIS Treiber f�r Windows ist. Nach der Installation des NDIS Treibers solltest du das folgende sehen
APTITUDE:/usr/src/ndiswrapper-0.11# ndiswrapper -l Installed ndis drivers: netwg121 driver present
Cheers! Die Installationsprozedur ist beendet.
Wenn du in einem �ffentlichen Bereich auf ein WLAN zugreifst, verlangt das WLAN eventuell einige Autentifizierungsmethoden aus Sicherheitsgr�nden. Die meisten verf�gbaren Autentifizierungsmethoden f�r WLAN basieren auf IEEE 802.1x (EAP) und IEEE 802.11i, und auf EAP basierende Methoden sind momentan die beliebtesten.
Es gibt viele auf EAP basierende Autentifizierungsmethoden, z.B. EAP-MD5, EAP-TLS, EAP-TTLS, EAP-SIM, LEAP, etc. Linuxbenutzer k�nnen xsupplicant benutzen, das von Open1x project [4] zur Verf�gung gestellt wird, um auf ein Netzwerk zuzugreifen, das auf 802.1x basierende Autentifizierung erfordert. In diesem Abschnitt benutze ich das LEAP protocol, das von Cisco corp. vorgeschlagen wurde, als eine Illustration. Beachte: ob das Protokol unterst�tzt wird, h�ngt von der Karte und dem Treiber ab, z.B. selbst wenn dein xsupplicant richtig installiert und konfiguriert wurde, kann es dir trotzdem unm�glich sein, auf das Netzwerk zuzugreifen, weil deine Karte oder dein Treiber es nicht unterst�tzen.
Du solltest xsupplicant von der Projektseite http://open1x.sourceforge.net herunterladen und installieren. Dann �ndere die Konfigurationsdatei, /etc/xsupplicant/xsupplicant.conf. Hier ist ein Beispiel f�r LEAP.
#example of /etc/xsupplicant/xsupplicant.conf #for LEAP protocol network_list = all #the list of networks to access default_netname = default #the default access network first_auth_command = <BEGIN_COMMAND>dhclient %i<END_COMMAND> #The command before authentication, which is usually used to get some info from #the network logfile = /var/log/xsupplicant.log #log file myssid #here is your network id, may be listed in the network list { type = wireless ssid = <BEGIN_SSID>myssid<END_SSID> allow_types = all identity = <BEGIN_ID>aptitude<END_ID> eap-leap { username = <BEGIN_UNAME>aptitude<END_UNAME> password = <BEGIN_PASS>passwd<END_PASS> }#setup for leap }LEAP ist eine einfache Autentifizierungsmethode, und es gibt viele Einstellungen f�r andere Methoden, bitte lies die Beispiele und Dokumente von xsupplicant.
Wie du wei�t, stellt WLAN eine Netzwerkschnittstelle identisch zu Ethernet zur Verf�gung, und du kannst sie als eine weitere Ethernetschnittstelle benutzen. Auf der anderen Seite hat eine WLAN Karte viel mehr Features als eine Ethernetkarte wegen des drahtlosen Mediums. Deshalb gibt es eine Menge Werkzeuge, um WLAN Karten zu konfigurieren und Informationen �ber den Status zu bekommen. Du findest die wireless tools auf http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/Tools.html [5], die von Jean Tourrilhes beigesteuert wurde.
Das n�tzlichste Werkzeug ist iwconfig, das �hnlich wie ifconfig benutzt werden kann. Der iwconfig Befehl ohne Parameter, aber mit dem Schnittstellennamen druckt den Arbeitsstatus der Karte:
gnawux@APTITUDE:~$ /sbin/iwconfig wlan0 wlan0 unassociated ESSID:off/any Nickname:"ipw2100" Mode:Managed Channel=0 Access Point: 00:00:00:00:00:00 Bit Rate=0 kb/s Tx-Power:off Retry:on RTS thr:off Fragment thr:off Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0Mit dem "mode" Parameter kannst du den WLAN Karten Arbeitsmode �ndern:
APTITUDE:/home/gnawux# iwconfig wlan0 mode 1 APTITUDE:/home/gnawux# iwconfig wlan0 wlan0 unassociated ESSID:off/any Nickname:"ipw2100" Mode:Ad-Hoc Channel=0 Cell: 00:00:00:00:00:00 Bit Rate=0 kb/s Tx-Power:off Retry:on RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality:0 Signal level:0 Noise level:0 Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0Hier �ndern wir die WLAN Karte in den "Ad Hoc" mode. Wir k�nnen auch den Netzwerknamen durch den "essid" Parameter �ndern:
APTITUDE:/home/gnawux# iwconfig wlan0 essid gnawux APTITUDE:/home/gnawux# iwconfig wlan0 wlan0 IEEE 802.11b ESSID:"gnawux" Nickname:"ipw2100" Mode:Ad-Hoc Frequency:2.412 GHz Cell: 02:0C:F1:0F:11:2A Bit Rate=0 kb/s Tx-Power:off Retry:on RTS thr:off Fragment thr:off Encryption key:off Power Management:off Link Quality=60/100 Signal level=-83 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:0 Invalid misc:0 Missed beacon:0Du hast vielleicht bemerkt, dass wir jetzt vern�nftigere Statusinformationen haben als vorher, weil wir eine g�ltige ESSID haben. F�r andere Parameter von iwconfig lies bitte iwconfig(8).
Ein weiteres m�chtiges utility ist iwlist, mit dem wir eine Liste der verf�gbaren Ressourcen bekommen k�nnen. Mit dem "scanning" Parameter k�nnen wir eine Liste verf�gbarer Zugriffspunkte (access points) bekommen:
gnawux@APTITUDE:~$ /sbin/iwlist wlan0 scanning wlan0 Scan completed : Cell 01 - Address: 00:0D:BD:6F:B4:48 ESSID:"Und mit dem "Frequenz" Parameter (freq), k�nnen wir eine Frequenzliste bekommen:" Protocol:IEEE 802.11b Mode:Master Channel:6 Encryption key:on Bit Rate:11 Mb/s Extra: Rates (Mb/s): 1 2 5.5 11 Extra: Signal: -70 dBm Extra: Last beacon: 59ms ago Cell 02 - Address: 86:CF:C1:34:12:06 ESSID:"gnawux" Protocol:IEEE 802.11b Mode:Ad-Hoc Channel:11 Encryption key:off Bit Rate:11 Mb/s Extra: Rates (Mb/s): 1 2 5.5 11 Extra: Signal: -37 dBm Extra: Last beacon: 2ms ago
gnawux@APTITUDE:~$ /sbin/iwlist wlan0 freq wlan0 14 channels in total; available frequencies : Channel 01 : 2.412 GHz Channel 02 : 2.417 GHz Channel 03 : 2.422 GHz Channel 04 : 2.427 GHz Channel 05 : 2.432 GHz Channel 06 : 2.437 GHz Channel 07 : 2.442 GHz Channel 08 : 2.447 GHz Channel 09 : 2.452 GHz Channel 10 : 2.457 GHz Channel 11 : 2.462 GHz Channel 12 : 2.467 GHz Channel 13 : 2.472 GHz Channel 14 : 2.484 GHz Current Channel=1Und du kannst iwlist(8) f�r weitere Parameter lesen.
Au�er den beiden obengenannten gibt es auch noch andere utilities, z.B. iwevent, iwgetid, iwpriv, iwspy, um den Arbeitsstatus deiner WLAN Karte zu erhalten und zu verwalten.
Ich habe die Treiberinstallation f�r verschiedene WLAN Karten gezeigt und illustriert, wie man eine Autentifizierung durchf�hrt. Au�erdem wurden m�chtige Konfigurations-utilities f�r WLAN in diesem Artikel angesprochen.
Dank der Beteiligung der Open Source Community k�nnen wir nicht nur auf Wireless LAN unter Linux zugreifen, sondern auch Spa� damit haben!