====== Le wifi en ligne de commande... ====== Cet article a pour but de dresser un portrait de comment vérifier un certain nombre d'informations sur l'instalation du wifi MiNET. ===== Obtenir la liste et le détail des réseaux disponibles ===== Prenez votre ordinateur, et allez ou vous voulez lister les réseau wifis disponibles ... On commence par activer l'interface wifi : sudo ifconfig wlan0 up Et maintenant on liste les réseaux disponibles : sudo iwlist wlan0 scanning Voici à quoi resemble la sortie : wlan0 Scan completed : Cell 01 - Address: 5A:6D:8F:15:7B:80 Channel:1 Frequency:2.412 GHz (Channel 1) Quality=34/70 Signal level=-76 dBm Encryption key:off ESSID:"MiNET_Registering" Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s 24 Mb/s; 36 Mb/s; 54 Mb/s Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s Mode:Master Extra:tsf=000000482902a4ed Extra: Last beacon: 883ms ago IE: Unknown: 00114D694E45545F5265676973746572696E67 IE: Unknown: 010882848B962430486C IE: Unknown: 030101 IE: Unknown: 050400010000 Cell 02 - Address: 58:6D:8F:15:7B:83 Channel:1 Frequency:2.412 GHz (Channel 1) Quality=38/70 Signal level=-72 dBm Encryption key:on ESSID:"MiNET" Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s 24 Mb/s; 36 Mb/s; 54 Mb/s Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s Mode:Master Extra:tsf=0000004829014764 Extra: Last beacon: 973ms ago ... Je rajoute un petit script à la con pour extraire les infos utiles automatiquement ... #!/bin/sh retVal() { case "${l[0]}" in Ce*) echo -en "${l[4]} ";; ES*|Fr*) echo -en "${l[0]//*:/} ";; Q*) echo -en "${l[2]//*=/} ";; Encry*) echo ${l[1]//*:/};; Channel*) echo -en "${l[0]//*:/} ";; *) continue;; esac; } cat $1 |awk '/(Cell|ESS|Freq|Qual|Encry|Channel)/ {print}'|while read line; do l=(${line}); retVal; done; exit 0 On a ainsi ( en rajoutant un petit grep ) une sortie du genre : "MiNET_Registering" 58:6D:8F:15:7B:83 1 2.412 -72 off "MiNET" 5A:6D:8F:15:7D:60 6 2.437 -58 off "MiNET_Registering" 5A:6D:8F:0A:1F:A8 6 2.437 -61 on "MiNET" 58:6D:8F:15:7B:B5 11 2.462 -70 on "MiNET_Registering" 5A:6D:8F:15:7B:B6 11 2.462 -34 off "MiNET" 5A:6D:8F:15:81:F2 11 2.462 -50 on "MiNET" 58:6D:8F:15:7A:84 6 2.437 -38 on "MiNET" 6A:7F:74:1C:F0:DD 6 2.437 -52 on Une ligne correspond à une cellule wifi. La première info est le SSID du réseau wifi porté par cellule. Ensuite on a la MAC du point d'accès. Puis le canal wifi correspondant, et la fréquence associée en Ghz. L'info négative c'est la puissance reçue en dbm ( plus c'est vers le bas, moins c'est bien... ) . Et enfin on sait si le réseau wifi est protégé. ===== Considérations sur les canaux wifis ===== Le signal wifi passe sur des canaux. Si plusieurs cellules utilisent un même canal elles en partagent la bande passante. Les canaux wifis sont au nombre de 13 en France ( la 14 est utilisée qu'au Japon ) : {{:wiki:wifi:700px-2.4_ghz_wi-fi_channels_802.11b_g_wlan_.svg.png|}} Comme on peut le voir, les canaux on une légère tendance à chevaucher leurs voisins... Les canaux 12 et 13 ne sont pas supportés par tous les vieux ordinateurs ( source des soucis du U5 ? ). Les canaux "hauts" (7, 8, 9, 10) peuvent être brouillés par des disfonctionnements de micro onde. Si deux cellules utilisent un canal "proche", il y a brouillage, collisions supplémentaires difficiles à détecter ( bref c'est la merde ). Bon tout ceci a amené MiNET à choisir les canaux 1 6 et 11 ( le truc hyper classique ). Cepandant ( c'est même dit sur wikipédia ) cette configuration est pas optimale, car en espaçant suffisement les bornes on peut facilement jouer sur 4 canaux... ===== Diagnostique rapide de connexion ===== La commande magique c'est wpa_supplicant -i wlan0 -c minet_wpa.txt avec minet_wpa.txt : network={ ssid="MiNET" key_mgmt=WPA-EAP eap=PEAP identity="login" password="password" priority=10 } L'intérêt c'est de voir le délai de connexion et les différentes cellules testées ( identifiées par leur MAC ). Pour éviter de laisser votre mot de passe en clair dans vos fichiers de conf echo -n plaintext_password_here | iconv -t utf16le | openssl md4 Ajouter le préfixe "hash:" dans le fichier de conf wpa_supplicant: password=hash:602f435f01b9173889a8d3b9bdcfd0