Configurer son interface sans fil avec wireless-tools

Observer ce qui se passe sur votre interface wifi

Avant de mettre les mains dans le cambuis, il est toujours intéressant d’avoir une vitrine sur ce qui se passe plus concrètement sur votre interface. Dès lors la commande qui va bien c’est

[bash]
iwevent

Lancez un terminal avec iwevent de manière à avoir un log de ce qui se passe

Detecter les réseaux disponibles

Vous disposez sans doute de plusieurs interfaces (au moins d’une interface loopback) mais toutes les interfaces ne gèrent pas nécessairement le wifi (la loopback entre autre). Donc inutile de demander à ces interfaces de scanner le réseau et trouver les réseaux disponibles.

Ici la commande à utiliser c’est :

[bash]
iwlist eth1 scan

NB : je considère que mon interface sans fil est eth1

Cette commande va vous permettre d’afficher les différents réseaux auxquels vous pouvez vous connecter ainsi que vous donner des informations intéressantes sur ces réseaux comme :

  • essid
  • canal / fréquence
  • encryption
  • adresse mac du point d’accès (du routeur en général)
  • mode de fonctionnement

NB : il est cependant nécessaire de souligner que certains réseaux cachés peuvent ne pas s’afficher (au cas où la trame broadcast est désactivé). Dans ce cas vous devrez utiliser d’autres techniques pour détecter ces réseaux. Je vous conseille l’outil Kismet qui est très efficace pour ça, mais je ne vais pas le développer ici.

Connexion en mode Managed

Maintenant passons à la connexion en tant que tel. Vous avez lancé iwevent dans un terminal à part, lancer un nouveau terminal où vous allez lancer les prochaines commandes !

  • Désactiver les interfaces que vous n’utiliser pas (dans mon cas, eth0 est une interface filaire que je vais désactiver car je veux utiliser mon interface sans fil eth1)
[bash]
sudo ifconfig eth0 down
sudo ifconfig eth1 up
  • Se connecter au bon réseau avec la bonne fréquence :
[bash]
sudo iwconfig eth1 mode managed channel $CHAN essid $ESSID

Dans mon cas je n’ai pas de clé d’encryption donc je ne précise pas l’argument « key ».

  • $CHAN est le numéro du canal utilisé que vous avez trouvé grâce à iwlist
  • $ESSID est le nom du réseau auquel vous souhaitez vous connecter. Même si le essid que vous utilisé proviens d’un réseau caché, cela ne change rien à la manipulation.

Si tout se passe bien, vous devriez observer dans le terminal de iwevent que vous êtes correctement authentifié. Afin de vérifier que vous l’êtes bel et bien, tappez la commande iwconfig et comparez l’adresse MAC se trouvant dans l’argument cell avec l’adresse se trouvant dans le iwlist eth1 scan que vous avez fait au début.

  • Terminer la connexion pour pouvoir accéder au réseau. En effet, jusqu’à maintenant vous avez juste la couche physique entre vous et le point d’accès qui est configurée. Ceci ne suffit pas pour vous permettre d’accéder au réseau. Vous allez devoir demander au serveur DCHP de vous attribuer une adresse IP :
[bash]
sudo dhclient eth1

voilà, normalement maintenant votre adresse IP est configurée et vous avez normalement accès au réseau local sans problème.

Enjoy 😉

Se connecter en mode Ad-Hoc

Petit rappel de nouveau pour ceux qui ne savent pas ce que c’est que le mode adhoc? Il s’agit d’une connexion entre ordinateur qui ne nécessite pas d’infrastructure autour. C’est à dire que les ordinateurs se connectent directement l’un à l’autre. On pourrais faire une analogie avec un cable rj45 croisé entre deux ordinateurs. Sauf que dans le cas d’une connexion ad-hoc, on peut communiquer directement avec tous les ordinateurs qui se trouvent dans le rayon de puissance d’émission.

Nous n’avons donc pas de point d’accès (access point) dans le réseau, et de ce fait, nous n’avons pas non plus de serveur DHCP pour attribuer les adresses IP. Il y a donc une contrainte en plus, c’est que nous devrons configurer l’adresse IP à la main.

  • Activation de l’interface sans fil :
[bash]
sudo ifconfig eth0 down
sudo ifconfig eth1 up
  • Lancement du réseau ad-hoc (soit vous vous connectez à un réseau existant, soit vous créer un nouveau réseau. La manipulation est la même car il n’y a pas de point d’accès) :
[bash]
sudo iwconfig eth1 mode ad-hoc essid $ESSID channel $CHAN key off ap off

Je fais ici le choix de vous donner la commande avec le mode d’encryption désactivé car je pars du principe qu’il est rare qu’en mode ad-hoc on en ait besoin. Mais dans ce cas, vous pouvez bien sur adapter la commande. Vous remarquerez aussi que j’ai désactiver le point d’accès, en effet, ici vous n’avez pas de point d’accès car nous sommes en mode ad-hoc.

  • Configuration de son adresse IP :
[bash]
sudo ifconfig eth1 172.16.0.X up

Veuillez à ne pas utiliser une adresse déjà utilisée. Je vous conseille d’utiliser le préfixe 172.16.0.0/16 car il est dédié aux réseaux locaux donc vous êtes certains de ne pas rencontrer de problèmes. Vous pouvez aussi utiliser le préfixe 192.168.0.0/16 qui est aussi réservé pour les réseaux locaux. A votre guise 😉

Conclusion

Voilà, je pense que vous avez maintenant toutes les informations pour faire fonctionner convenablement votre interface wifi à l’aide des wireless-tools. Je n’aborde pas ici tous les problèmes liés aux réseaux encryptés tel les réseaux avec un clé WEP ou WPA car ce n’est pas mon but et que je ne suis pas assez spécialiste en la matière pour ne pas prendre le risque de dire des conneries.

Si vous avez des problèmes pour configurer votre interface wifi à la main, n’hésitez pas à poster des questions ici. Je souligne quand même (car moi j’ai perdu plusieurs jours avant de comprendre) que toutes les interfaces wifi ne supportent pas le mode Ad-Hoc. Certaines cartes un peu trop vieilles peuvent poser des problèmes pour ce genre de configurations.

Note supplémentaire pour les possesseurs de Mac OS X

Pour les possesseur d’un ordinateur sous Mac OS X qui n’ont malheureusement pas la chance d’avoir wireless-tools à disposition, il existe un autre outil qui fonctionne assez bien et qui permet le même genre de manipulations qui s’appelle airport mais qui n’est pas configuré par défaut dans votre PATH. Il vous faudra donc faire un petit :

cd /usr/sbin
sudo ln -s /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport

Pour que la commande apparaisse dans votre PATH. Ensuite un petit airport --help vous donnera les infos nécessaires pour apprendre à jongler avec cet outil.

$ airport --help
airport AirPort v.455.2 (455.2.0)
Supported arguments:
 -a        --autojoin           Join first available, trusted network from list
 -p        --applyprefs         Apply settings as currently configured via System Preferences
 -u        --updateprefs        Examine network preferences and repair if necessary
 -z        --disassociate       Disassociate from any network
 -i[<arg>] --ibss=[<arg>]       Create IBSS
 -f<arg>   --file=<arg>         Use <arg> as airport preference file instead of
                                   /Library/Preferences/SystemConfiguration/com.apple.airport.preferences.plist
 -m<arg>   --mac=<arg>          Use <arg> instead of current AirPort MAC Address
 -x        --xml                Print info as XML
 -o<arg>   --oldencrypt=<arg>   Encrypt string <arg> with Panther-style encryption
 -s[<arg>] --scan=[<arg>]       Perform a wireless broadcast scan.
                                   Will perform a directed scan if the optional <arg> is provided
 -r<arg>   --repeats=<arg>      Repeat the command the specified number of times
 -A[<arg>] --associate=[<arg>]  Associate to network.
                                   Will prompt for network name if arg is not specified
                                   and if necessary, for a password if the network is using WEP or WPA.
                                   The following additional arguments may be specified with this command:
                                  --bssid=<arg>     Specify BSSID to associate with
                                  --password=<arg>  Specify a WEP key or WPA password
 -I        --getinfo            Print current wireless status, e.g. signal info, BSSID, port type etc.
 -P<arg>   --psk=<arg>          Create PSK from specified pass phrase and SSID.
                                   The following additional arguments must be specified with this command:
                                  --ssid=<arg>      Specify SSID when creating a PSK
 -S        --showstack          Print the current list of known networks
 -c[<arg>] --channel=[<arg>]    Set arbitrary channel on the card
 -h        --help               Show this help

Un commentaire

  1. Un grand merci pour ces explications claires et précises!
    Depuis longtemps j »ai tjs eu de gros pb pour configurer mon dongle et a chaque fois je sollicitais la communauté sur le forum !
    Grace a cette description détaillée je comprend enfin ce qu’on me faisait faire 🙂 Et maintenant je pense que je n’aurais plus besoin d’aide 🙂

    Reply
  2. Merci Greg ! Effectivement, le forum ubuntu-fr (par exemple) est surchargé de demandes « mon wifi marche pas », et vu la diversité des causes, c’est un b… sans nom. Même en tentant de retrouver la résolution d’un problème équivalent au sien, c’est super dur.

    Bon, maintenant ça s’est plus ou moins résolu (je ne sais pas comment) de mon côté. A propos de cryptage, je ne vais pas tenter de dire des conneries, mais il me semble que le WEP ne pose pas de gros problèmes de configuration (sauf à la syntaxe entre hexa et ASCII). Mais je n’ai pas encore tenté l’utilisation du WPA(2), qui a l’air bien délicat… (wpa-supplicant, toussa)

    Reply
  3. Oui, j’ai préféré ne pas rentrer dans ces détails d’encryptage de peur de dire des conneries. En effet, en ce moment je chippotte pas mal sur les interfaces wifi … et évidement tout dans le terminal vu que les interfaces graphiques sont quand même un peu limitatives en ce qui concerne les informations de ce qui se passe dans le ventre de l’ordi.

    Mais comme je travaille pas avec l’encryption … j’ai pas encore tellement d’expérience dans le domaine 🙂 Mais ça ne saurais tarder ! Et les wpa-supplicant et autre ne seront qu’une partie de plaisir … ou pas 😉

    Ceci dit, je pense que c’est quand même intéressant, lorsqu’on est un linuxien averti d’apprendre à se servir du terminal. Même si pour un débutant … ca fait peur !! Et je le comprend tout à fait !

    Reply
  4. Désactiver le wifi? Tout dépend de ce que tu veux faire. Si tu veux suivre mon tutorial tu dois désinstaller network-manager ce qui va automatiquement désactiver ton interface wifi.

    Si tu veux la désactiver à la main tu vas dans un terminal et tu fais simplement en root :
    ifconfig eth1 down
    où tu dois mettre à la place de « eth1 » le nom de ton interface wifi évidement. (ça peut être wlan0, wlan1, eth1, eth0, ra0, ra1, …)

    Reply
  5. Je viend d’acheter un pc portable et un modem wifi « hercule »
    L’installation s’est bien déroulé, mais quand je décide de me connecter, je reçois l’info « pas de réseau » et pourtanrt mon signal est à 100%.
    Je ne vois pas où je dois chercher. Merci de m’aider

    Reply
  6. 1) Si t’as windows … passe ton chemin ou installe Linux, je peux pas t’aider

    2) Si t’as un mac, va dans :
    menu pomme > configuration de réseau > airport > TCP/IP
    Vérifie que l’adresse IPv4 se configure via le DHCP

    3) Si tu as linux, va dans un terminal et essaye en root :
    dhclient [nom de l’interface]
    (le nom de ton interface ca sera surement ra0 ou quelque chose comme ça pour une carte hercule … tu peux vérifier le nom en faisant ifconfig)

    Si ça ne marche pas … donne moi un peu plus de détails et je devrais pouvoir t’aider. Qu’est-ce que tu veux dire par « mon signal est à 100% » … quel signal? De quel carte? D’ou vient ce signal? Qui te dis qu’il n’y a pas de réseau? … bref, c’est très flou ce que tu donnes comme info.

    En espérant avoir pu t’aider

    Reply
  7. j ai un portable aspire 7520G sous vista,j ai installer linux mais du coup je n ai plus le wifi ni la cam que dois je faire pour avoir la cam et wifi et ne plus avoir a me servir de vista.
    Merci d avance laury

    Reply
  8. Qu’est-ce qui ne marche pas? Quelle est la distribution que t’utilises? Le mieux c’est que tu poses ta question sur un forum car tu auras plus de personnes qui pourront t’aider en fonction du matériel que tu as. Tu trouveras surement des gens qui pourront t’aider, mais ici tu ne me donnes pas assez d’infos pour que je puisse t’aider.

    Si t’as Ubuntu (ce que je suppose, c’est le plus courant) le forum est ici : http://forum.ubuntu-fr.org/ je veux bien venir te répondre là-dessus. Mais lorque tu poses une question essaye de donner plus d’informations : quelle genre de choses as-tu essayée? quel type de matériel tu as (dans le terminal tu peux mettre le contenu qui s’affiche avec la commande « lspci » )? etc.

    Reply
  9. salut, Greg… ton post sur le lancement automatique d’un réseau adhoc m’intéresse: je cherche à importer des images en wifi d’un PC sans écran vers un écran déporté dans lequel je peux mettre une carte mère (genre toute équipée, comme une EEEbox sous linux) Je pourrais ainsi créer une liaison adhoc automatisée au lancement, en utilisant ta configuration. mais est-ce que je pourrais afficher sur mon écran les programmes qui tournent sous windows dans le PC?
    merci de me donner ton avis… cordialement, rhap.

    Reply
  10. Salut rhapsody,
    Le mode ad-hoc va juste te permettre d’établir une connexion entre tes deux ordis, ça ne va rien faire de plus. Une fois qu’ils sont connectés il te faudrait une application qui te permette de dialoguer entre tes deux ordis.

    Donc si ensuite tu veux te connecter à un windows, peut-être qu’il faut regarder sur les forums comment on se connecte à distance. Va peut-être voir ici : http://www.microsoft.com/windowsXp/… Sinon y’a VNC qui peut aussi être une solution : http://www.realvnc.com/

    Tu peux aussi travailler par SSH mais sous windows je sais pas comment on configure un serveur ssh.

    Bref, il existe plein de manières de communiquer entre deux ordis une fois qu’ils sont sur le réseau. La connexion ad-hoc va juste te permettre de créer ce réseau. A toi de l’utiliser comme tu le sens ensuite.

    Reply

Leave a Comment.