Dans ses réglages d'usine, le routeur La Fonera propose un réseau privé avec cryptage WPA dont le SSID est MyPlace. La clef de cryptage est basée sur le numéro de série indiqué sur l'étiquette en-dessous du routeur : Étiquette sous la Fonera

Nous allons voir comment configurer son ordinateur sous Linux (de préférence Gentoo, bien sûr ;-)) pour pouvoir accéder à Internet en passant par ce réseau.

Configuration du système

Installation de wpa_supplicant

wpa_supplicant est le programme qui permet de gérer le WPA sous Linux. Il permet aussi de gérer les connexion WEP ou même sans cryptage, d'ailleurs... C'est un outil très puissant mais assez complexe à configurer ; pour le moment nous allons nous contenter de l'installer.

Sous Gentoo, un simple emerge wpa_supplicant suffit.

Si vous avez une carte utilisant le driver madwifi, il faut ajouter le useflag correspondant : echo net-wireless/wpa_supplicant madwifi >> /etc/portage/package.use, puis un emerge wpa_supplicant devrait suffire.

Configuration des interfaces réseau

Une fois que wpa_supplicant est installé, il faut indiquer à Gentoo de l'utiliser. Pour cela, modifiez avec votre éditeur de texte préféré le fichier /etc/conf.d/net et ajoutez-y les lignes suivantes :

modules=( "wpa_supplicant" )
wpa_supplicant_wlan0="-Dwext -iwlan0"
wpa_timeout_wlan0=10
config_wlan0=( "dhcp" )

Il y aura éventuellement quelques détails à modifier selon votre configuration :

  • selon le driver, il faudra peut-être remplacer wext par autre chose (madwifi, atmel, ipw, broadcom...). Normalement wext est le nom générique et devrait fonctionner avec à peu près tout ; si ce n'est pas le cas, consultez la documentation : man wpa_supplicant. Petit détail cependant : même si vous utiliser un pilote ndiswrapper, laissez -Dwext ; l'option -Dndiswrapper est obsolète et ne fonctionne plus.
  • selon le nom de votre interface réseau : chez moi c'est wlan0, chez vous c'est peut-être eth1 ou ath0... Si c'est le cas pensez à le changer.

Sauvegardez ensuite ce fichier et relancez votre interface réseau avec /etc/init.d/net.wlan0 restart.

Configuration de wpa_supplicant

Il faut maintenant configurer wpa_supplicant lui-même. La tâche peut parfois être assez ardue, alors on va y aller doucement.

Configuration de base

Le fichier de configuration de wpa_supplicant est /etc/wpa_supplicant/wpa_supplicant.conf. Lancez votre éditeur de texte préféré et ouvrez-le.

Il faut commencer par la configuration générale, celle qui est commune à tous les réseaux que vous allez utiliser avec wpa_supplicant. C'est en fait la partie la plus simple ;-)

Chez moi, ça donne ça :

# Nécessaire pour pouvoir utiliser des interfaces comme wpa_gui ou wpa_cli
ctrl_interface=/var/run/wpa_supplicant
# ...pour autoriser les utilisateurs dans le groupe wheel à les utiliser
ctrl_interface_group=wheel
# Autoriser les interfaces à modifier le fichier de configuration
#update_config=1
# Mode de connexion au point d'accès
ap_scan=2
# Réauthentification rapide pour le mode EAP
# (commentée car ne marche pas à Supélec...)
#fast_reauth=1

Si vous avez besoin de documentation plus précise, vous en trouverez dans le dossier /usr/share/doc/wpa_supplicant-0.5.7.

Calcul de la clef PSK

La Fonera utilise un cryptage WPA avec une clef de type PSK (Pre-Shared Key). Cette clef de 256 bits est calculée à partir d'un mot de passe (passphrase pour être exact) et du SSID du réseau ; ainsi, deux SSID ayant le même mot de passe n'auront pas la même clef PSK.

Pour calculer cette clef PSK, on va utiliser un outil fourni avec wpa_supplicant et qui s'appelle wpa_passphrase. Son utilisation est simplissime : wpa_passphrase <SSID> <mot de passe>

En supposant que le mot de passe (indiqué en-dessous de la Fonera je vous le rappelle) est 123456789 pour le SSID MyPlace, cela nous donne :

$ wpa_passphrase MyPlace 123456789
network={
        ssid="MyPlace"
        #psk="123456789"
        psk=2af518af5ce090638477fcb1623cf9b32fdf56151b612fcd879518d193b6cc14
}

Notez la ligne en "psk=2af..." quelque part (vive les copier/coller...), elle nous servira bientôt.

Configuration du réseau

On va ensuite ajouter un bloc qui décrit le réseau auquel on veut se connecter.

network={
        ssid="MyPlace"
        proto=WPA
        key_mgmt=WPA-PSK
        pairwise=TKIP
        psk=2af518af5ce090638477fcb1623cf9b32fdf56151b612fcd879518d193b6cc14
        priority=1
}

En gros, là-dedans, on indique à wpa_supplicant le SSID (MyPlace), le protocole (WPA, c'est-à-dire WPA version 1 et non pas WPA2 qui ne marche pas chez moi...), le type de clef (WPA-PSK), la méthode de cryptage (TKIP et non pas CCMP ou AES), et la clef PSK calculée précédemment.

Si on veut en plus pouvoir se connecter à son SSID public, on peut ajouter le bloc suivant :

network={
        ssid="FON_AP"
        key_mgmt=NONE
        priority=2
}

Ici aucun cryptage donc aucun problème.

Si vous avez un autre réseau qui utilise un cryptage WEP, voici la manière de le configurer :

network={
        ssid="MonWifiPerso"
        key_mgmt=NONE
        # wep_key_0 pour la clef n°1, wep_key_3 pour la clef n°4...
        wep_key0="Ma clef WEP"
        priority=3
}

Si vous cherchez d'autres exemples, il y en a beaucoup dans /usr/share/doc/wpa_supplicant-0.5.7/wpa_supplicant.conf.gz ; n'hésitez pas à y jeter un œil, c'est très instructif.

Test de connexion

Sauvegardez le fichier et quittez votre éditeur de texte. Il va d'abord falloir indiquer à wpa_supplicant de recharger son fichier de configuration. Deux solutions :

  • la méthode barbare : /etc/init.d/net.wlan0 restart, pas pratique si c'est la seule interface réseau et qu'on a d'autres services qui dépendent du réseau
  • la méthode propre : on lance wpa_cli, on tape reconfigure et Entrée, puis on quitte avec Ctrl+C.

Le moyen le plus simple de suivre ce qui se passe ensuite est d'utiliser l'interface graphique : lancez wpa_gui. Dans le menu Network choisissez MyPlace et attendez... Après que Status indique COMPLETED, il faut encore attendre que l'ordinateur ait reçu une adresse IP du serveur DHCP. Une fois que c'est bon... tout devrait être bon ;-)

Si quelque chose ne va pas, ouvrez un wpa_cli en même temps que wpa_gui et notez les messages qui s'affichent, ils vous aideront peut-être à comprendre où est le problème.

Pour finir...

Voilà voilà, j'espère que vous n'aurez pas eu trop de mal à me lire, je débute un peu dans l'écriture de tutoriels ;-)

Si vous avez un problème, une question, un compliment (sait-on jamais... 8-) ), n'hésitez pas à me laisser un commentaire ;-)