WLAN einrichten: Difference between revisions
(Die Seite wurde neu angelegt: „Auf Grund wochenlangen Ärgernisses mit WLAN, Linux (Kanotix), WPA und einem Sitecom-USB-Stick (die Mischung macht's!) möchte ich meiner Mitwelt diese Erfahrung …“) |
No edit summary |
||
(6 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Auf Grund wochenlangen Ärgernisses mit WLAN, Linux (Kanotix), WPA und einem |
Auf Grund wochenlangen Ärgernisses mit WLAN, Linux (Kanotix), WPA und einem |
||
Sitecom-USB-Stick (die Mischung macht's!) |
Sitecom-USB-Stick (die Mischung macht's!) entstand dieser Wiki-Artikel. |
||
Erfahrung gerne ersparen, und deshalb gibt es hier: |
|||
<font color="blue">* Mittlerweile gibt es komfortable Tools wie den [https://wiki.debian.org/NetworkManager Network-Manager] * </font>, aber wer gerne selbst Hand anlegt, kann das hier tun. |
|||
<font color="blue">**** Die SUPER-DUPER-Ultimative Anleitung: **** |
|||
<br> |
|||
<br>*** Wie mache ich meine Linux-Kiste WLAN-fähig ? ***</font> |
|||
== Schritt 1: Der richtige Treiber == |
== Schritt 1: Der richtige Treiber == |
||
Line 15: | Line 14: | ||
== Schritt 2: Treiber installieren == |
== Schritt 2: Treiber installieren == |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
=== Kernel >= 3.0 === |
|||
⚫ | |||
Im allgemeinen sind die benötigten Treiber vorhanden. Mit |
|||
⚫ | |||
# ip a |
|||
⚫ | |||
lässt sich einfach überprüfen, ob eine neue Netzwerkkarte (i.a. wlan0) dazugekommen ist. |
|||
⚫ | |||
Falls nicht, mit den Schritten für die älteren Kernel weitermachen bzw. erstmal schauen, ob es den Treiber als fertiges Paket gibt. |
|||
⚫ | |||
⚫ | |||
=== Kernel >= 2.6.26 === |
=== Kernel >= 2.6.26 === |
||
Line 48: | Line 42: | ||
Weitere Informationen sind hier |
Weitere Informationen sind hier |
||
[http://linuxwireless.org/en/developers/Documentation/mac80211 ] nachzulesen. |
[http://linuxwireless.org/en/developers/Documentation/mac80211 ] nachzulesen. |
||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
⚫ | |||
Die übrigen Schritte sind dann (fast) unabhängig vom Treiber. |
Die übrigen Schritte sind dann (fast) unabhängig vom Treiber. |
||
Line 69: | Line 75: | ||
gibt, müsst ihr euch die wlan-tools besorgen: <br> |
gibt, müsst ihr euch die wlan-tools besorgen: <br> |
||
http://pcmcia-cs.sourceforge.net/ftp/contrib/wireless_tools.28.tar.gz <br> |
http://pcmcia-cs.sourceforge.net/ftp/contrib/wireless_tools.28.tar.gz <br> |
||
(Gibts mittlerweile für Debian auch als Paket (wireless-tools))<br> |
|||
Was die Verschlüsselung angeht, werde ich zunächst auf WEP, danach auf |
Was die Verschlüsselung angeht, werde ich zunächst auf WEP, danach auf |
||
WPA-PSK/TKIP und WPA2 eingehen. |
WPA-PSK/TKIP und WPA2 eingehen. |
||
Line 75: | Line 82: | ||
Falls ihr mehrere Access-Points gefunden habt, könnt ihr mit |
Falls ihr mehrere Access-Points gefunden habt, könnt ihr mit |
||
# iwconfig wlan0 essid 'mein WLAN-Netz' |
# iwconfig wlan0 essid 'mein WLAN-Netz' |
||
(dort kommt natürlich der String rein, den ihr mit " |
(dort kommt natürlich der String rein, den ihr mit "iwlist wlan0 scan" |
||
ermittelt habt) |
ermittelt habt) |
||
euer WLAN-Netz wählen.<br> |
euer WLAN-Netz wählen.<br> |
||
Line 85: | Line 92: | ||
Zunächst mal rausfinden, um was für eine Verschlüsselung es sich handelt oder |
Zunächst mal rausfinden, um was für eine Verschlüsselung es sich handelt oder |
||
sie bei völliger Ahnungslosigkeit experimentell ermitteln. Mögliche Algorithmen |
sie bei völliger Ahnungslosigkeit experimentell ermitteln. Mögliche Algorithmen |
||
sind |
sind TKIP oder AES. In diesem Fall handelt es sich um WPA-PSK (preshared |
||
key) und TKIP. |
key) und TKIP. |
||
Line 124: | Line 131: | ||
} |
} |
||
Die nächsten Schritte sind dann wieder für WPA und WPA2 gemeinsam: |
Die nächsten Schritte sind dann wieder für '''WPA''' und '''WPA2''' gemeinsam: |
||
Nach Anpassung der Cofigdateiden wpa_supplicant-Befehl auf der Shell ausführen: |
Nach Anpassung der Cofigdateiden wpa_supplicant-Befehl auf der Shell ausführen: |
||
# wpa_supplicant -B -i wlan0 -D wext -c /etc/wpa_supplicant.conf -d |
# wpa_supplicant -B -i wlan0 -D wext -c /etc/wpa_supplicant.conf -d |
Latest revision as of 21:01, 9 June 2021
Auf Grund wochenlangen Ärgernisses mit WLAN, Linux (Kanotix), WPA und einem Sitecom-USB-Stick (die Mischung macht's!) entstand dieser Wiki-Artikel.
* Mittlerweile gibt es komfortable Tools wie den Network-Manager * , aber wer gerne selbst Hand anlegt, kann das hier tun.
Schritt 1: Der richtige Treiber
Hierfür googelt ihr nach dem Chipsatz eures WLAN-Sticks - in meinem Fall handelt es sich um "zydas". Anhand dieser Angabe sucht ihr nach einem passenden Treiber. Fündig wird man in meinem konkreten Fall unter:
http://sourceforge.net/projects/zd1211/
Schritt 2: Treiber installieren
Kernel >= 3.0
Im allgemeinen sind die benötigten Treiber vorhanden. Mit
# ip a
lässt sich einfach überprüfen, ob eine neue Netzwerkkarte (i.a. wlan0) dazugekommen ist. Falls nicht, mit den Schritten für die älteren Kernel weitermachen bzw. erstmal schauen, ob es den Treiber als fertiges Paket gibt.
Kernel >= 2.6.26
zd1211-firmware-1.4.tar.bz2 von der sourceforge-Seite runterladen, die Firmware auspacken, README lesen und Anweisungen befolgen, also alle zd1211*-files nach /lib/firmware/zd1211 kopieren. Anschließend entsprechendes Modul neu laden:
# rmmod zd1211rw # modprobe zd1211rw
Mittels Kommando "lsmod" kann man nachkontrollieren, ob das Treibmodul
(zd1211rw) geladen wurde. Im Notfall manuell (modprobe zd1211rw) nachholen
(dafür muss man allerdings wissen, wie das gute Stück heisst, im Notfall hilft
ein plumper Reboot :). Mittlerweile hat Sitecom ja auf Ralink umgestellt, habe
leider keine Erfahrung damit.
Wer sich über einen komischen Interface-Namen "wmaster0" wundert:
Dieser ist Teil des mac80211 Frameworks und wird bis Kernel 2.6.32 benötigt.
Im Standardkernel ist dieses Modul vorhanden und wird wie folgt angezeigt
(natürlich in Abhängigkeit vom Chipsatz der WLAN-Karte):
mac80211 139776 1 zd1211rw
Das wmaster-Interface ist nur ein Hilfskonstrukt und sollte manuell NICHT angefasst werden. Konfiguriert wird nur das eigentliche Interface (z.B. wlan0). Weitere Informationen sind hier [1] nachzulesen.
Ältere Kernel (getestet am Beispiel 2.6.19.7)
Meistens kommt der Treiber als .tar.gz oder .tgz-Datei daher: Runterladen und Auspacken:
$ tar -xzvf zd1211-driver-r69.tar.gz
Ins entpackte Verzeichnis wechseln:
$ cd zd1211-driver-r69
und im README (sofern vorhanden) lesen, was zu tun ist. Meist läuft es auf Kompilieren und Installieren raus:
$ make # make install
Die übrigen Schritte sind dann (fast) unabhängig vom Treiber.
Schritt 3: Netzwerkkartenbezeichner rausfinden und Interface aktivieren
# ifconfig -a
ausführen und schauen, was dazugekommen ist. Ein gängiger Interfacename ist wlan0 oder eth[nächste freie Nummer].
Dann wird das Interface aktiviert. Der Einfachheit halber benenne ich dieses im weiteren Verlauf mit "wlan0".
# ifconfig wlan0 up
Schritt 4: SSID und Verschlüsselung konfigurieren
Danach gilt es, die SSID herauszufinden:
# iwlist wlan0 scan
Falls ihr den SSID-Broadcast auf eurem WLAN-Router deaktiviert habt, müsst ihr die SSID später eben von Hand eintragen.
Anmerkung zu iwconfig/iwlist: Falls es diesen Befehl auf eurem System noch nicht
gibt, müsst ihr euch die wlan-tools besorgen:
http://pcmcia-cs.sourceforge.net/ftp/contrib/wireless_tools.28.tar.gz
(Gibts mittlerweile für Debian auch als Paket (wireless-tools))
Was die Verschlüsselung angeht, werde ich zunächst auf WEP, danach auf
WPA-PSK/TKIP und WPA2 eingehen.
WEP-Verschlüsselung
Falls ihr mehrere Access-Points gefunden habt, könnt ihr mit
# iwconfig wlan0 essid 'mein WLAN-Netz'
(dort kommt natürlich der String rein, den ihr mit "iwlist wlan0 scan"
ermittelt habt)
euer WLAN-Netz wählen.
Danach wird der WEP-Key konfiguriert:
# iwconfig wlan0 key <schluessel_als_hexzahl> oder <s:schluessel_als_ascii>
z.B. iwconfig wlan0 key 46463153715A394E6741634652
WPA-Verschlüsselung
Zunächst mal rausfinden, um was für eine Verschlüsselung es sich handelt oder sie bei völliger Ahnungslosigkeit experimentell ermitteln. Mögliche Algorithmen sind TKIP oder AES. In diesem Fall handelt es sich um WPA-PSK (preshared key) und TKIP.
Ich konfiguriere das ganze mit "wpa_supplicant". Mit iwpriv konnte ich nix anfangen. Zunächst das Paket "wpasupplicant" installieren, falls noch nicht vorhanden. Dann eine Passphrase erzeugen mit:
$ wpa_passphrase <ssid> <passphrase>
wobei ssid die oben ermittelte SSID ist und passphrase der WPA-Key des Access-Points. Ein möglicher Eintrag könnte also lauten:
$ wpa_passphrase 'FRITZ!Box Fon WLAN 7170' 0123456789101112
Danach eine Datei /etc/wpa_supplicant.conf erzeugen. Dort werden die ganzen Parameter eingetragen, die man vorher ermittelt hat (SSID, Verschlüsselung, Passphrase). Hier eine Beispieldatei:
ctrl_interface=/var/run/wpa_supplicant eapol_version=1 ap_scan=2 network={ ssid="FRITZ!Box Fon WLAN 7170" scan_ssid=1 proto=WPA key_mgmt=WPA-PSK pairwise=TKIP group=TKIP psk=a97ee0751b63fc7493fc6bfd40c6662910cba5669e9a2ea727eb78d86832d19d }
WPA2
Nachdem WEP und WPA1 unsicher resp. entschlüsselbar sind, empfiehlt es sich, am Router WPA2 zu aktivieren. Die wpa_supplicant.conf sieht in einem solchen Fall so aus:
ctrl_interface=/var/run/wpa_supplicant eapol_version=1 ap_scan=1 network={ ssid="FRITZ!Box Fon WLAN 7170" scan_ssid=1 proto=RSN key_mgmt=WPA-PSK pairwise=CCMP group=TKIP CCMP psk=a97ee0751b63fc7493fc6bfd40c6662910cba5669e9a2ea727eb78d86832d19d }
Die nächsten Schritte sind dann wieder für WPA und WPA2 gemeinsam: Nach Anpassung der Cofigdateiden wpa_supplicant-Befehl auf der Shell ausführen:
# wpa_supplicant -B -i wlan0 -D wext -c /etc/wpa_supplicant.conf -d
Ein möglicher Output sieht so aus:
Initializing interface 'wlan0' conf '/etc/wpa_supplicant.conf' driver 'wext' ctrl_interface 'N/A' bridge 'N/A' Configuration file '/etc/wpa_supplicant.conf' -> '/etc/wpa_supplicant.conf' Reading configuration file '/etc/wpa_supplicant.conf' ctrl_interface='/var/run/wpa_supplicant eapol_version=1 ap_scan=2' Priority group 0 id=0 ssid='Fritz!Box xyz123' Initializing interface (2) 'wlan0' SIOCGIWRANGE: WE(compiled)=22 WE(source)=21 enc_capa=0xf capabilities: key_mgmt 0xf enc 0xf flags 0x0 WEXT: Operstate: linkmode=1, operstate=5 Own MAC address: 00:0c:f6:16:7a:bb wpa_driver_wext_set_wpa wpa_driver_wext_set_key: alg=0 key_idx=0 set_tx=0 seq_len=0 key_len=0 wpa_driver_wext_set_key: alg=0 key_idx=1 set_tx=0 seq_len=0 key_len=0 wpa_driver_wext_set_key: alg=0 key_idx=2 set_tx=0 seq_len=0 key_len=0 wpa_driver_wext_set_key: alg=0 key_idx=3 set_tx=0 seq_len=0 key_len=0 wpa_driver_wext_set_countermeasures wpa_driver_wext_set_drop_unencrypted RSN: flushing PMKID list in the driver Setting scan request: 0 sec 100000 usec EAPOL: SUPP_PAE entering state DISCONNECTED EAPOL: KEY_RX entering state NO_KEY_RECEIVE EAPOL: SUPP_BE entering state INITIALIZE EAP: EAP entering state DISABLED Using existing control interface directory. Added interface wlan0
Bei eventuellen Fehlern und vor jedem Neustart das wpa_supplicant PID file löschen und das Interface wieder hoch nehmen:
# rm /var/run/wpa_supplicant*/wlan0 # ifconfig wlan0 up
Schritt 5: IP-Adresse bekommen
Falls ihr auf dem WLAN-Router DHCP eingestellt habt, bekommt ihr so eine IP-Adresse:
# dhclient wlan0
Ansonsten müsst ihr sie per "ifconfig" von Hand zuweisen.
Anmerkung: Unter Lenny/2.6.26.2-686 klappt das mit dem dhclient nicht so recht. Stattdessen kommt die unerfreuliche Meldung:
wmaster0: unknown hardware address type 801
Eine Alternative stellt hier das Tool wicd dar. Zur Installation desselben in die sources.list folgenden Eintrag machen (für Lenny, ansonsten entsprechend anpassen):
deb http://www.backports.org/debian lenny-backports main contrib non-free
...gefolgt von den Install-Kommandos:
# aptitude update # apt-get -t lenny-backports install wicd
Danach mit "wicd" den Daemon starten. Mit dem Aufruf "wicd-client" gelangt man
in ein Auswahlmenü, in dem man seine SSID wählen und sich mittels "Return" oder
"C"(onnect) verbinden kann.
Größter Bug dieser Software ist wohl, dass man sie nach jedem Kernelupdate neu
installieren darf.
Schritt 6: Browser starten u. ev. Namensauflösung anpassen
Jetzt solltet ihr ins Internet kommen. Falls doch nicht, könnte es an der Namensauflösung liegen. Eine Kontrollmöglichkeit ist, als URL eine IP-Adresse einzugeben, beispielsweise http://216.34.181.60. Landet ihr nun auf der Sourceforge-Seite, wurde die Datei "/etc/resolv.conf" nicht richtig generiert. Datei öffnen und eintragen:
nameserver <IP des APs>
Die Access-Point-IP seht ihr z.B. nach einem erfolgreichen dhclient (Schritt 5). Danach Browser neu starten.
Problembehebung
Meine wlan-Karte wird in "ifconfig" nicht angezeigt.
Der zydas-Chipsatz des Sitecom-WLAN-Sticks scheint beim Booten von Debian nicht immer sauber in den Kernel geladen zu werden. Wenn trotz richtiger Konfiguration keine IP-Adresse vergeben wird (langer dhclient-Timeout), muss das zydas-Kernelmodul entfernt und anschließend neu geladen werden:
# rmmod zd1211rw # modprobe zd1211rw # ifconfig wlan0 up # ... (Konfigurationsschritte für WEP oder WPA) # dhclient wlan0
(oder alternativ halt wicd-client, je nachdem...)
Meine SSID wird nicht gefunden
Manche älteren wlan-Stick-Modelle können in den höheren Frequenzbändern nicht senden/empfangen. In dem Fall einen niedrigeren Kanal wählen. In der Fritzbox geht das z.B. über das Menu Einstellungen -> WLAN -> Funkkanal.