La Fonera : réseau privé en WPA et Linux
Par Schnouki le lundi 19 février 2007, 10:20 - Geek inside - Lien permanent
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 :

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
wextpar autre chose (madwifi,atmel,ipw,broadcom...). Normalementwextest 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 pilotendiswrapper, laissez-Dwext; l'option-Dndiswrapperest obsolète et ne fonctionne plus. - selon le nom de votre interface réseau : chez moi c'est
wlan0, chez vous c'est peut-êtreeth1ouath0... 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 tapereconfigureet 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...
), n'hésitez pas à me laisser un commentaire 
Déconnecté
Derniers commentaires