====== 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