Outils de test sur le terrain
Un article de Toulouse Sans Fil, un réseau wifi libre sur Toulouse.
Accueil | Technique | Outils de test sur le terrain
L'objet de ce chapitre est de fournir une solution entierement fonctionnelle sous linux permettant de realiser des tests sur le terrain afin de savoir si un lien est realisable et d'en connaitre ses caracteristiques réelles, le tout en contournant les difficultés liées a un environnement ad-hoc dans lequel capter le SSID et le CELL ne suffisent pas a savoir quelle station nous recevons.
| Sommaire |
Tests sur la couche 2
Prérequis
- Matériel
- Une carte wifi ac connecteur externe supportant le mode monitor et la connectique qui va bien avec
- Une antenne fort gain directionnelle et une antenne omni
- Logiciel
- wireless-tools, kismet,wavemon, wireshark (ex ethereal), swscanner, dynspy.pl (dispo ci dessous),kst,la suite aircrack-ng, tcpdump, eventuellement google-earth.
- Niveau utilisateur
- Connaitre l'adresse MAC de la station cible
- Une bonne experience en console et dans l'utilisation et la configuration des outils réseau suscités
- Beaucoup de patience et de rigueur, les tests pouvant s'avérer faussés en suivant une mauvaise methode.
Mettre en place son materiel
Armé d'un trepied pouvant supporter l'antenne fort gain et permettant de la diriger en azimuth et en elevation ac precision , connecter l'antenne au portable. Un conseil : prenez un pigtail assez long pour pouvoir poser le portable par terre, les tests portable en main menent souvent a des conneries pour cause de manque de disponibilité des mains et parceque notre cerveau est plus occupé a ne pas faire tomber un portable a 1000€ qu'a reellement faire du wifi.
Un coup de Kismet
Lancer Kismet bien configuré va permettre de voir si votre carte recoit correctement.
En environnement urbain, vous allez forcement voir des points d'acces si vous ne voyez rien, pas la peine d'aller plus loin, il y a un probleme soit de connectique soit au niveau des drivers...
Si Kismet entend quelque chose, amusez vous à tourner l'antenne doucement pour voir si il decouvre de nouveaux reseaux, ceci peut permettre de detecter une connectique defectueuse. Si vous ne voyez que deux reseaux en environnement urbain apres avoir fait 360 degres avec une antenne 24dBi , c'est que l'antenne n'est pas connectée. (une antenne 24dbi capte un ap a travers un mur de beton a 900 metres, verifié sur le terrain).
Trouver sa cible
Le mode ad-hoc rend impossible l'identification de la station cible ni par le BSSID ni par le CELL, il va falloir ruser afin de savoir si l'on pointe vraiment vers la station voulue.
Mettons nous en conditions ad-hoc :)
iwconfig eth4 essid toulouse-sans-fil.net channel 5 mode ad-hoc key s:laclefquituelamort iwspy eth4 + 00:16:B6:B0:EA:B6
Cette commande va me permettre de monitorer l'etat de la station dont l'adresse mac est 00:16:B6:B0:EA:B6
Relancons iwspy sans argument
c610:/home/ouinouin# iwspy eth4 eth4 Statistics collected: 00:16:B6:B0:EA:B6 : Quality:0 Signal level:0 Noise level:0 Link/Cell/AP : Quality=15/92 Signal level=-71 dBm Noise level=-86 dBm Typical/Reference : Quality:36/92 Signal level:-62 dBm Noise level:-98 dBm
Dans l'exemple , aucune connectivité wifi avec l'adresse mac cible.
Dès que la cible est audible, les champs quality signal level et noise level vont varier.
Nous allons trouver une solution pour tracer un graphique de ces valeurs caracteriqtiques du lien wifi afin de pouvoir visualiser en temps réel les effets du pointage de mon antenne.
Pour les connaisseurs, sous windows, avec une carte adequate, Netstumbler permet un tres bon boulot de pointage, j'ai longtemps erré sous linux sans trouver de solution permettant d'obtenir des graphiques lisibles et surtout qui graphent ce que l'on veut.
Visualiser le signal de la cible
La solution mise en oeuvre s'articule en deux parties :
- Collecter les données signal et bruit dans un fichier
- Cette tache est réalisée par un script (pour l'instant c'est un script perl utilisé par reseau citoyen dynspy.pl legerement modifié mais un script bash serait le bienvenu) dont la sortie est redirigée dans un fichier
- Lire les données affichées et en faire un graph en temps réel
- Après moultes recherches, j'ai retenu kst pour afficher les graphs , basé sur QT , sont interface est tres claire et ses possiblités sont bluffantes les possibilités sont tres larges.
Pour vous rendre compte basiquement de ce que peut realiser le couple d'outils, associez vous a votre ap prefere chez vous et faites dans le dossier contenant le script dynspy
./dynspy-0.09.pl -p -g |kst -x INDEX -y 1 -
Amusez vous a mettre la main sur votre carte wifi et a l'enlever vous verrez la courbe varier en temps réel , les combinaisons de touches shift-fleches (haut bas gauche droite) ont pour effet de zoomer-dezoomer les axes x et y du graph.
Les utilisations de kst sont plus versatiles lorsque l'on recupere les données dans un fichier (que kst relis regulierement.
Lancez le script de cette maniere
./dynspy-0.09.pl -p -g >> /tmp/collect_data
Lancez ensuite kst et configurez votre source de données pour travailler depuis le fichier créé au dessus; notez bien que kst relit le fichier toutes les 250ms par defaut.
Je ne detaillerais pas plus l'utilisation de kst qui s'avere assez simple pour notre usage , mais sachez que l'on peut realiser des histogrammes, des courbes de moyennes et autres trucs sympa pour voir evoluer le signal lorsque l'on tourne l'antenne...
Voici un petit apercu de la courbe obtenue en temps réel , une courbe digne de netstumbler :) et qui m'aide a voir que ma carte pcmcia fonctionne mieux quand le portable est vertical.
