Wir hatten vor ein paar Tagen ganz schön zu schwitzen, um unsere Schulungsnotebooks über WPA/PSK und TKIP in das hauseigene WLAN zu holen. Als WLAN-Adapter war der Broadcom BCM4310 verbaut und unter Debian Etch über Ndiswrapper dem System zugänglich gemacht.
Um anderen die gleiche Bastelorgie zu ersparen, hier ein kurzes “Howto”:
Voraussetzen möchte ich einen laufenden NDiswrapper (die Einrichtung unter Ubuntu auf einem HP NX6325 ist unter: Ubuntu auf dem Compaq NX6325 erklärt, das Ganze funktioniert unter Etch analog).
Für WPA wird nun eigentlich nur noch “WPA-Supplicant” benötigt, der mittels:
# apt-get install wpasupplicant
schnell seinen Platz im System findet.
Und weiter geht’s als root auf der Shell. Die Eingabe von:
# wpa_passphrase [ssid] [passphrase] >/etc/wpa_supplicant.conf
legt eine Konfigurationsdatei für WPA-Supplicant an, in der beispielsweise steht:
network={
ssid="meine_ssid"
#psk="meinepassphrase"
psk=kryptischkryptischkryptisch
}
Diese Datei muss nun noch um die Art der Verschlüsselung, und ein paar weitere Kleinigkeiten ergänzt werden. Fertig sah meine Konfiguration dann in etwa so aus:
network={
ssid="meine_ssid"
key_mgmt=WPA-PSK
pairwise=TKIP
group=TKIP
proto=WPA
auth_alg=OPEN
#psk="meinepassphrase"
psk=kryptischkryptischkryptisch
}
Um nun wpa_supplicant mit dieser Konfigurationsdatei beim Starten des Netzwerkinterfaces zu aktivieren, habe ich das Programm in der /etc/network/interfaces für den Wlan-Adapter im Parameter “pre-up” mit aufgenommen. Die Datei sah anschließend so aus:
auto wlan0 iface wlan0 inet dhcp pre-up /sbin/wpa_supplicant -D wext -i wlan0 -c /etc/wpa_supplicant.conf -B
Beim nächsten Start des Netzwerk-Interfaces (beispielweise mit: “/etc/init.d/networking restart” als root) stand dann die Verbindung zum Accesspoint.
Wichtig ist, dass der Parameter “-D”, entgegen der Annahme die man aus “wpa_supplicant -h” treffen könnte, nicht mit “ndiswrapper” sondern mit “wext” zu füttern ist. Da bin ich auch nur duch Zufall drauf gekommen … Vorher hagelte es immer die Fehlermeldungen wie:
Authentication with 00:00:00:00:00:00 timed out.
oder
Association request to the driver failed
Zum Debuggen der Verbindung sind folgende Dinge sehr hilfreich.
Mit “wpa_cli” kann sehr detailliert ermittelt werden, wo denn nun die Verbindung hakt:
Mit scan_results beispielsweise wird sichtbar, ob überhaupt der gewünschte Accesspoint gefunden wird. Das bringt dann zumindest schon einmal die Gewissheit, dass mit der WLAN-Karte gearbeitet werden kann.
interfaces gibt eine Liste der WPA-Fähigen Nics zurück, status gibt den Verbindungsstatus aus, list_networks die aktuell verfügbaren Netzwerke.
get_capability gibt zurück, welche Protokolle, welches Keymanagement, … verwendet werden können.
Um eine gesetzte Variable zu einem Netzwerk zu erfahren, lässt sich get_network einsetzen, beispielsweise ermittelt >get_network 0 proto das zu Netzwerk “0″ gesetzte Protokoll. Mit set_network lässt sich eine entsprechende Variable auch setzen.
So, jetzt möchte ich aber niemanden von eigenen Erkundungstouren abhalten, deswegen sei nur noch help als möglicher Befehl genannt. ![]()
16. Dezember 2006 um 01:46
Danke!!
Endlich mal eine wlan-Anleitung, die auf Anhieb funktioniert (mit Fritz WLAN USB Stick und ndiswrapper).
Danke nochmals.
Hinweis: evtl. ist es nicht verkehrt, in
/etc/wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
einzugeben, da klappts auch mit wpa_cli, hat ohne nicht geklappt.
In /etc/network/interfaces gehört dann noch z.Bsp.
post-down killall -q wpa_supplicant
post-down rm -r /var/run/wpa_supplicant
JensH
12. Januar 2007 um 00:22
Hallo,
das grosse D mit wext war echt der Hasenfuss, aber am Ende auch bei mir die Lösung des Problems.
Richtig super wäre, wenn das udev dazu bewegt werden könnte, bei Einstecken des USB-Sticks das Netzwerk anzustarten, wie es das mit PCMCIA kann.
Ein erstes Angucken der udev-Rules hat mich da erstmal von abgeschreckt.
Habt Ihr da schon dran rumgefuxt und könnt da Tips geben?
cu
Sascha
12. Januar 2007 um 22:10
@Sascha: normalerweise müsste es genügen, in der /etc/network/interfaces:
einzutragen.
$ man interfaceshilft ggf. weiter.Gruß
Stefan
25. Januar 2007 um 02:24
Danke Stefan, hatte ich wohl, aber keine Geduld und den Stick immer schneller wieder heraus- und reingestöpselt, so dass ich die Automatik überwunden hatte ….
Inzwischen funktioniert’s super gut. Was mir jetzt noch fehlt, ist ein Manager-Programm, das verschiedene Profile verwalten kann, oder ein automagisches Etwas, dass einen Wlan-Scan macht und aus den erreichbaren und der Favouritenliste “das richtige” macht - am besten beides in Kombination.
Mit so’nem Schleppi kommt man ja schon mal ganz schön rum. Die Dateifidelei geht natürlich, aber bequem ist das nicht so richtig.
Also, habt Ihr da was auf Lager?
5. Mai 2007 um 00:20
Die Start- und Stopskripten für wpa_supplicant sind in Etch bereits enthalten, es sind Links namens ndiswrapper in den pre- und post-Unterverzeichnissen, welche auf /etc/wpa_supplicant/ifupdown.sh verlinken. Man muß in der /etc/network/interfaces nur den Ort der Konfigurationsdatei angeben:
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
Schade nur, daß es dazu keine Dokumentation gibt, man muß dazu die ifupdown.sh und functions.sh selbst durchsehen.
5. Mai 2007 um 00:22
Nachtrag:
Die Links in den pre- und post-Unterverzeichnissen heißen natürlich nicht ndiswrapper, sonder wpasupplicant.
17. Januar 2008 um 23:37
Danke!
Ohne Eure Hilfe müsste ich immer noch ein Kabel quer durch die Wohnung legen. Die erste Anleitung die auf Anhieb klappte!
Jetzt muss ich nur noch rausfinden wie ich meine 40GB Laptop Platte auf die 60GB Platte klone, ohne “GRUB Fehler 17″ zu bekommen.
Mit friedlichem Grinsen,
Christian
6. September 2008 um 13:32
endlich funktionierts! besten dank!