WLAN
Artikel wird überarbeitet
Dieser Artikel wird momentan überarbeitet.
Geplante Fertigstellung: 30.6.2013
Derzeitig gültiger Artikel: WLAN
Bearbeiter: elektronenblitz63
Solltest du dir nicht sicher sein, ob an dieser Anleitung noch gearbeitet wird, kontrolliere das Datum der letzten Änderung und entscheide, wie du weiter vorgehst.
Achtung: Insbesondere heißt das, dass dieser Artikel noch nicht fertig ist und dass wichtige Teile fehlen oder sogar falsch sein können. Bitte diesen Artikel nicht als Anleitung für Problemlösungen benutzen!
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Wiki WLAN
Wireless LAN (Wireless Local Area Network, WLAN, Kabelloses Lokales Netzwerk) bezeichnet ein "drahtloses" lokales Funknetz, wobei meistens ein Standard der IEEE_802.11-Familie gemeint ist.
Informationsblatt (pdf) der Bundesnetzagentur zu WLAN 🇩🇪.
WLAN Arten¶
Infrastruktur¶
AP (Acess-Point) oder auch Station Modus
WDS-System¶
(Wireless Distribution System)
Wireless Bridge¶
Ad-Hoc¶
IBSS (Independent Basic Service Set) Modus
Mesh¶
oder auch Mesh Modus
Monitor Modus¶
Hardware und Treiber¶
WLAN-Hardware erkennen¶
In diesem Abschnitt geht es um die Erkennung der verwendeten WLAN-Hardware und des zugehörigen Treibermoduls, sollte es Probleme bei der Inbetriebnahme geben oder die WLAN-Hardware nicht automatisch vom System erkannt werden.
Geräte-ID PCI(e) Karten mit Ausgabe der Modulzuornung und des momentan geladenen Moduls:
lspci -nnk | grep -i net -A2 # alternativ lspci -nnk
Beispielausgabe:
hier fehlt noch die Ausgabe
Geräte-ID der USB Geräte abfragen:
lsusb
Beispielausgabe für WLAN-Karte am USB-Anschluß:
Bus 001 Device 003: ID 13d3:3247 IMC Networks 802.11 n/g/b Wireless LAN Adapter
Der Typ und das zugehörige Modul sind hier noch nicht erkennbar.
Die nachfolgend verwendete Geräte-ID besteht aus zwei Blöcken, die Hersteller- (hier 13d3) und Produktkennung (hier 3247).
Modulzuordnung abfragen:
modprobe -c | grep -i "<Hersteller-ID>.*<Product-ID>"
Entsprechend zum Beispiel also wie folgt
modprobe -c | grep -i "13d3.*3247"
Darauf folgt in der Regel eine entsprechende Ausgabe des passenden Kernel-Moduls:
alias usb:v13D3p3247d*dc*dsc*dp*ic*isc*ip* rt2800usb
Das Modul rt2800usb ist für WLAN-Karten mit Ralink-Chipsatz geeignet.
Eigenschaften des verwendeten WLAN-Treibermodul und der WLAN-Hardware abfragen:
iw list iw phy
Erfolgt keine Ausgabe, so ist kein zur Hardware passendes Modul im Kernel enthalten oder der Hersteller verwendet eine unbekannte Geräte-ID.
Treibermodule installieren¶
Im Normalfall wird die WLAN-Hardware direkt unterstützt. In WLAN/Karten findet man ansonsten eine ständig aktualisierte Übersicht bekannter WLAN-Karten und wie diese in Betrieb zu nehmen sind. Im Zweifelsfall sollte man im entsprechenden Forenbereich nachfragen bevor man etwas installiert.
Für bestimmte WLAN-Karten kann bzw. muss der Treiber erst über den Mestricted-Manager aktiviert werden. Die automatische Erkennung funktioniert allerdings nicht immer reibungslos und es wird u.U. der falsche Treiber installiert. Dies ist vor allem bei Broadcom WLAN-Karten der Fall. Hat man eine entsprechende Karte, so ist WLAN/Karten/Broadcom eine gute Anlaufstelle.
Für WLAN-Karten von Ralink und Realtek ist normalerweise ein Treiber im Kernel enthalten, Diese sind allerdings nicht nicht immer ausgereift, funktionieren nicht einwandfrei oder unterstützen aktuelle Gerätevarianten noch nicht. In diesem Fall muss ein entsprechender Treiber vom jeweiligen Hersteller nachinstalliert werden. Entsprechende Anleitungen sind ebenfalls in WLAN/Karten verlinkt.
Treibermodule aktualisieren¶
Da die im Kernel enthaltenen Treibermodule nicht immer aktuell sind, hat man verschiedenen Möglichkeiten diese zu aktualisieren, sollte die Hardware nicht oder nur unzureichend unterstützt werden.
die einfachste Methode ist über die Linux-Backports-Modules
oder manuell über Linux Wireless
bei aktueller Hardware hilft möglicherweise nur die Installation eines sog. Mainline-Kernel
Firmware installieren¶
Die Firmware für viele WLAN-Karten gehört bereits zur Ubuntu Grundinstallation und muss nicht extra nachinstalliert werden.
Bei bestimmten WLAN-Karten muss die erforderliche Firmware jedoch manuell nachinstalliert oder auch aktualisiert werden. Gibt es Funktionsprobleme ist WLAN/Karten ein guter Anlaufpunkt. Im Zweifelsfall sollte man im entsprechend Forenbereich nachfragen.
sudo apt-get install linux-firmware
Bestimmte WLAN-Hardware erfordert aus Lizenzgründen die manuelle Installation der entsprechenden „unfreien“ Firmware.
sudo apt-get install linux-firmware-nonfree
Meldungen zur Firmware werden ebenfalls im Syslog protokolliert:
egrep -i 'fw|firm' /var/log/syslog
Firmware aktualisieren¶
In Einzelfällen oder bei sehr aktueller WLAN-Hardware kann einen manuelle Installation der neusten Firmware erforderlich sein, um ein Gerät in Betrieb zu nehmen. Zum Download der aktuellsten Firmware wird git benötigt.
Quelle: http://git.kernel.org/cgit/linux/kernel/git/firmware/linux-firmware.git/ ⮷ 🇬🇧
Download:
git clone git://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
Die Firmwaredateien befinden sich anschließend in ~/linux-firmware. Benötigte Dateien bzw. Verzeichnisse müssen manuell nach /lib/firmware kopiert werden. Rechner abschließend ausschalten und Stromquellen (Netz/Akku) für ein paar Minuten entfernen um die alte Firmware sicher zu entladen.
Windows-Treiber verwenden¶
Existiert für die verwendete WLAN-Hardware kein Linux-Treiber oder läßt sich keine Lösung zur Inbetriebnahme finden, dann bleibt ein Versuch über WLAN/NdisWrapper.
Konfiguration¶
WLAN Sicherheit¶
Rechtliches¶
MAC-Adressfilter¶
unsichtbare SSID¶
Verschlüsselung¶
WPA2-AES¶
WPA1-TKIP¶
WEP¶
unverschlüsselt¶
Zugangskennwort¶
Der PSK (Pre-Shared-Key) ist ein Schlüssel, der einmalig manuell zwischen den beteiligten Geräten ausgetauscht ("shared") werden muss.
Ein guter Schlüsselgenerator ist das Programm pwgen
(benötigt das Paket pwgen [2]). Mit dem Konsolenbefehl [1] erhält man einen geeigneten Schlüssel.
pwgen -c -n -s 63 1
Dieser Schlüssel muss auf dem WPA(2)-PSK-fähigen Access-Point (typischerweise der Router im Heimnetz) eingestellt werden und außerdem natürlich jedem einzelnen Client bekannt sein.
Einige der nachfolgend aufgeführten Einrichtungsverfahren legen den Schlüssel im Klartext, in einer Datei auf der Festplatte, ab. Für solche Verfahren empfiehlt es sich, den 63 ASCII-Zeichen-Schlüssel noch in Hexadezimalform umzuwandeln. Die Berechnung erfolgt mittels wpa_passphrase. Dem Befehl wird die SSID des Access-Points und der mit pwgen erzeugte Schlüssel übergeben.
Beispiel:
wpa_passphrase MeineSSID MeinSchluessel
ergibt:
# reading passphrase from stdin meinschluessel network={ ssid="MeineSSID" #psk="MeinSchluessel" psk=626d3fc95a3efe75acaebf1388ed167a90e59390efab91a5841242e49bc62b3a }
WPS¶
Eine vereinfachte Athentifizierung mittels WPS ist mit dem Network-Manager momentan nicht möglich. Nur wpa_gui bietet momentan einen entsprechende Option.
Sonderzeichen¶
Nur bestimmte Sonderzeichen sind im WLAN-Zugangsschlüssel (PSK) und im Namen (SSID) des Netzwerks zulässig. Weitere Informationen dazu in WLAN-Sonderzeichen.
Regionseinstellungen¶
Im Normalfall sind die Einstellungen des Systems und des eigenen WLAN-Routers zur Kanalnutzung und Sendeleistung durch die entsprechende Regionseinstellung automatisch richtig eingestellt.
Über die Regionseinstellungen des Systems werden die zulässigen Funkkanäle, die zugehörige Bandbreite (20MHz oder 40MHz) und die maximal zulässige Sendeleistung festgelegt. Hierbei gibt es einige Dinge die zu beachten sind und die bei der Auswahl der Einstellungen für das eigene WLAN-Netzwerk helfen.
Bedingt durch die Bandbreite von 20MHz sind im 2,4GHz Band nur drei Kanäle völlig störungsfrei nebeneinander verwendbar, bei 40MHz Bandbreite sogar nur zwei. Der Abstand und die Empfangsleistung zwischen den den einzelnen Netzen spielt dabei natürlich auch eine Rolle.
Bei den Einstellungen des eigenen WLAN-Routers sollte man also nach Möglichkeit einen entsprechenden freien Funkkanal wählen. Dabei hilft es, wie weiter unten beschrieben, die WLAN-Umgebung zu scannen. Manche Router zeigen auch in einer grafischen Übersicht die Kanalbelegung durch Netze in der Nachbarschaft an.
Durch die inzwischen starke Verbreitung von Internetzugängen und WLAN-Routern ist das 2,4GHz-Band meist vollständig belegt oder auch überlastet. Ein störungsfreier Betrieb ist kaum noch möglich. Sofern die eigenen Geräte dies unterstützen, sollte man also auf das 5GHz-Band ausweichen.
Kanalnutzung / Bandbreite | |||
Frequenzband | Bandbreite | störungsfrei parallel verwendbare Kanäle | |
2,4 GHz-Band | 20 MHz | 1 - 6 - 11 oder 2 - 7 - 13 | |
2,4 GHz-Band | 40 MHz | 3 - 11 | |
5 GHz-Band | 40 MHz | überlappungsfrei |
Detaillierte Erläuterungen und anschauliche Grafiken zu dem Thema findet man unter WLAN - Überlappungsfreie Kanäle und Spektralmasken
verfügbare Funkkanäle¶
iwlist chan
Einstellungen ändern¶
sudo iw reg get sudo iw reg set <Ländercode>
Verwendet werden hierbei Ländercodes gemäß der ISO-Norm 3166.
WLAN-Umgebung¶
Ein manueller Scan zeigt alle WLAN-Netze in der Nachbarschaft und deren Eigenschaften wie den verwendeten Funkkanal, die Verschlüsselungsmethode und die Empfangsstärke, und hilft so bei der Wahl der passenden Einstellungen für das eigene WLAN. Wer ein grafisches Werkzeug dazu verwenden möchte, kann z.B. iwScanner verwenden. Ebenso lassen sich so natürlich die Einstellungen des eigenen WLAN und die Empfangseigenschaften ermitteln.
sudo iw dev <WLAN-Schnittstelle> scan sudo iwlist <WLAN-Schnittstelle> scan
(<WLAN-Schnittstelle> ist natürlich durch die tatsächliche Bezeichnung, wie z.B. wlan0, zu ersetzen)
Sendeleistung¶
Je nach Land und Frequenzbereich ist eine entsprechende Sendeleistung zulässig. Da bei höheren Frequenzen, also im 5GHz-Band, die Dämpfung der Funkwellen in der Luft erheblich stärker ist wie bei niedrigen Frequenzen, also im 2,4GHz-Band, darf die Sendeleistung höher sein um Verluste bei der Reichweite auszugleichen. Jedes EU-Land hat da ggf. seine eigenen Ausnahmen und Sonderregelungen.
Freigegebene Frequenzen und zulässige Strahlungsleistung EIRP. Informationsblatt (pdf) der Bundesnetzagentur dazu 🇩🇪.
Es gibt im Privatbereich (Konsumer) momentan allerdings keine WLAN-Router welche im 5GHz-Band eine entsprechend höhere Sendeleistung erbringen können, soweit bekannt. In der Regel beträgt auch hier die maximale Strahlungsleistung 20dBm (100mW), was bedeutet, dass die Reichweite im 5GHz-Band stark eingeschränkt ist, insbesondere bei den höheren Kanälen.
zulässige Sendeleistung in Deutschland | |||
Kanal | Frequenz MHz | max. Strahlungsleistung in mW | max. Strahlungsleistung in dBm |
1 - 13 (2,4GHz-Band) | 2412 - 2472 | 100 | 20 |
36 - 64 (5GHz-Band) | 5,180 - 5,320 | 200 | 23 |
100 - 140 (5GHz-Band) | 5470 - 5725 | 1000 | 30 |
Einstellungen abfragen:
iwconfig | egrep -i 'ieee|power'
Einstellungen ändern¶
sudo iwconfig <Schnittstelle> txpower [Wert] iw dev <WLAN-Schnittstelle> set txpower [auto|fixed|limit] [tx power in dBm] iw list | grep phy # ermittelt das physikalische Interface phy* iw phy <phys-Interface> set txpower [auto|fixed|limit] [tx power in dBm]
(<WLAN-Schnittstelle> und das phys. Interface sind natürlich durch die tatsächliche Bezeichnung, wie z.B. wlan0 bzw phy0, zu ersetzen)
Power Management¶
Ist das Power Management der WLAN-Karte aktiv, werden die Leistung, Reichweite und die Empfangseigenschaften verändert und reduziert. Weitere Informationen und Lösungsmöglichkeiten dazu im Forum. Erweiterte Einstellmöglichkeiten ermöglicht TLP von linrunner welches das systeminterne Power Management ersetzt.
Einstellungen abfragen:
iwconfig | egrep -i 'ieee|power'
Beispielausgabe:
wlan0 IEEE 802.11bgn ESSID:off/any Mode:Managed Access Point: Not-Associated Tx-Power=20 dBm Power Management:on
Einstellungen ändern:
sudo iw dev <WLAN-Schnittstelle> set power_save [off|on] sudo iwconfig <WLAN-Schnittstelle> power [off|on]
(<WLAN-Schnittstelle> ist natürlich durch die tatsächliche Bezeichnung, wie z.B. wlan0, zu ersetzen)
Schnittstellenzuordnung¶
Abfrage vorhandenen Schnittstellen und deren momentane Konfiguration:
ifconfig -a # zeigt alle verfügbaren Schnittstellen iwconfig # zeigt nur WLAN-Schnittstellen iw dev # zeigt nur WLAN-Schnittstellen
Wird die Netzwerkhardware korrekt erkannt, das betrifft sowohl WLAN- wie auch Ethernetkarten, und ist ein Treibermodul dafür im Kernel enthalten, dann wird automatisch über das udev-System eine Konfiguration dafür angelegt und eine freie Schnittstelle zugewiesen.
Abfrage der Konfiguration:
cat /etc/udev/rules.d/70-persistent-net.rules | egrep -i 'device|sub' -A3
Für Ethernetkarten im allgemeinen die Bezeichnung eth* und für WLAN-Karten wlan*. Die ist aber auch vom Treiber abhängig, bei einigen Broadcom-, Intel- oder Realtek-Treibern kann die Bezeichnung ebenfalls eth*, oder ra* lauten.
Beispielausgabe:
# PCI device 0x8086:/sys/devices/pci0000:00/0000:00:19.0 (e1000e) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:24:21:0e:8f:4a", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" # USB device 0x13d3:0x3247 (usb) SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:15:af:72:78:ff", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"
Netzwerkverwaltung¶
Unter Ubuntu ist der Network-Manager Standard.
alternative grafische Tools¶
wpa_gui ist ebenfalls eine grafische Oberfläche für wpa_supplicant und somit auch eine Alternative zu Wicd und dem NetworkManager
ceni 🇩🇪 - Netzwerkmanager für die Konsole. Das Programm stammt aus der Distribution aptosid 🇬🇧 (früher Sidux) und ist nicht in Ubuntu enthalten.
manuelle Konfiguration¶
WLAN-Sondertasten¶
Probleme und Fehlersuche¶
Scheitert die Verbindungsaufnahme, treten Unterbrechungen oder sonstige Störungen auf, so kann man natürlich entprechende meldungen des System auswerten.
Zustand und Konfiguration der Schittstelle:
ifconfig <WLAN-Schnittstelle> iwconfig <WLAN-Schnittstelle>
(<WLAN-Schnittstelle> ist natürlich durch die tatsächliche Bezeichnung, wie z.B. wlan0, zu ersetzen)
Ereignisse im Syslog zu Netzwerk und WLAN auslesen und filtern:
egrep -i 'net|eth|wlan|firm|reason' /var/log/syslog
Im Logauszug stehen diverse Informationen zum Verbindungaufbau und Ablauf.
Die häufigsten Fehlermeldungen auswerten (für erfahrene Anwender):
Fehlerdiagnose | |
Ereignis | Meldung |
reason 0 | no ReasonCode - Normal operation. |
reason 1 | unspecifiedReasonClient - associated but no longer authorized. |
reason 2 | previousAuthNotValid - Client associated but not authorized. |
reason 3 | deauthenticationLeaving - The access point went offline, deauthenticating the client. Previous authentications no longer valid. |
reason 4 | disassociationDueToInactivity - Client session timeout exceeded. |
reason 5 | disassociationAPBusy - The access point is busy, performing load balancing, for example. |
reason 6 | class2FrameFromNonAuthStation - Client attempted to transfer data before it was authenticated. |
reason 7 | class2FrameFromNonAssStation - Client attempted to transfer data before it was associated. |
reason 8 | disassociationStaHasLeft - Operating System moved the client to another access point using non-aggressive load balancing. |
reason 9 | staReqAssociationWithoutAuth - Client not authorized yet, still attempting to associate with an access point. |
reason 15 | 4-Way Handshake timeout. |
reason 16 | Group key update timeout. |
reason 17 | Information element in 4-Way Handshake different from (Re)Associate Request/Probe Response/Beacon. |
reason 18 | Multicast cipher is not valid. |
reason 19 | Invalid pairwise cipher. |
reason 21 | Unsupported RSN IE version. |
reason 22 | Invalid RSN IE capabilities. |
reason 23 | IEEE 802.1X authentication failed. |
reason 24 | Cipher suite is rejected per security policy. |
reason 32 | Disassociated for unspecified, QoS-related reason. |
Für einen manuellen Verbindungsversuch und erweiterte Fehlerdiagnose kann alternativ auch folgendes Skript verwendet werden.
Stromaufnahme¶
USB WLAN-Adapter benötigen meistens die zur Verfügung stehenden 500mA Strom am USB-Anschluß. Weitere Geräte sollten nicht am selben USB-Doppelanschluß verwendet werden. Da der USB-Controller den Anschluss bei Überschreitung des zulässigen Stroms abschalten kann, können Geräteabstürze, Verbindungsunterbrechungen oder auch komplette Systemabstürze die Folge sein.
Lösungsmöglichkeiten:
Gerät an einem USB 3.0-Anschluß verwenden, die Stromaufnahme darf dort höher sein
einen USB-Hub mit eigener Stromversorgung verwenden
einen USB Y-Adapter verwenden um zwei Anschlüsse zu koppeln (Notlösung, nicht Geräte konform)
Links¶
Vom Linux-Kernel unterstützte Wireless-Geräte unterteilt in USB, PCI, PCMCIA 🇬🇧
Umfangreiche Liste mit Karten und den verwendeten Chipsätzen 🇬🇧
Funknetze von Grund auf - Grundlagenartikel LinuxUser 07/2008 🇩🇪