Skip to content

Réaliser une connexion sécurisée WPA pour les réseaux Wifi sous Linux

Cet article va vous permettre de vous connecter au travers du Wifi avec une connexion sécurisée WPA.
Pour les tests, j'utilise une Debian GNU/Linux woody, une carte SMC2835W géré par ndiswrapper et un AP Linksys WRT54GS.

WPA

Pour gérer le WPA avec ndiswrapper, il faut ajouter un petit logiciel qui va prendre en charge ce cryptage : il s'agit de wpa_supplicant.
On trouve ce logiciel ici

Il suffit de télécharger les sources et de les décompacter (au moment de l'écriture de cet article, c'est la version 0.2.5 qui est disponible).
Avant de les compiler, il faut indiquer quel type de driver Wifi on va utiliser.
Dans mon cas, j'utilise ndiswrapper (qui va utiliser les drivers Windows) car les drivers prism54 n'arrivent pas à gérer la carte SMC2835W qui pourtant est basée sur un chip Prism...

Il faut donc aller dans le répertoire où wpa_supplicant a été décompacté et ajouter un fichier .config avec la ligne : CONFIG_DRIVER_NDISWRAPPER=y

Ne reste plus qu'à compiler avec : make Et copier les binaires dans un répertoire présent dans le $PATH, comme /usr/local/bin : cp wpa_supplicant wpa_passphrase wpa_cli /usr/local/bin

Configuration WPA

On va maintenant configurer wpa_supplicant avec les paramètres du réseau Wifi sur lequel on souhaite se connecter.
Pour cela, on va créer le fichier /etc/wpa_supplicant et ajouter les lignes suivantes : ctrl_interface=/var/run/wpa_supplicant

network={
ssid="mon_reseau_wifi"
psk="ma_clef_partagee"
key_mgmt=WPA-PSK
proto=WPA
}
Dans cette exemple, le réseau Wifi se nomme mon_reseau_wifi et la clef partagée est ma_clef_partagee.

Configuration réseau

On va maintenant configurer la partie réseau pour utiliser le programme wpa_supplicant lors de la mise en route de l'interface réseau.
Dans le cas des drivers ndiswrapper, l'interface se nomme wlan0.

Pour la distribution Debian, La configuration se passe dans le fichier /etc/network/interfaces.
Grâce à la Debian, on va pouvoir utiliser les commandes pre-up et post-down qui vont nous permettre de lancer et d'arrêter des programmes avant et après la mise en route de l'interface.
On va ajouter les lignes suivantes pour notre interface : iface wlan0 inet static
address 192.168.1.6
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.42
pre-up modprobe ndiswrapper
pre-up sleep 10
pre-up iwconfig wlan0 essid tdjwifilan
up wpa_supplicant -Dndiswrapper -iwlan0 -c/etc/wpa_supplicant.conf &
post-down pkill -TERM wpa_supplicant
post-down rmmod ndiswrapper
En voici les explications :

  • iface wlan inet static : je n'utilise pas de DHCP sur la partie Wifi, si c'est votre cas, il faut utiliser remplacer cette ligne par : iface wlan0 inet dhcp et ne pas mettre les lignes address, netmask, network, broadcast et gateway,
  • address, netmask, network, broadcast et gateway : permet de définir les paramètres de l'interface car je ne n'utilise pas DHCP
  • pre-up modprobe ndiswrapper : permet de charger le module ndiswrapper
  • pre-up sleep 10 : attends 10 secondes (cela permet au module ndiswrapper d'avoir le temps de charger tout ce qu'il a besoin)
  • up wpa_supplicant -Dndiswrapper -iwlan0 -c/etc/wpa_supplicant.conf & : dès que l'interface wlan0 est mise en route (avec ifup wlan0 par exemple) on lance en même temps wpa_supplicant qui va gérer la crypto
  • post-down pkill -TERM wpa_supplicant : lors de l'extinction de l'interface on arrête wpa_supplicant
  • post-down rmmod ndiswrapper : et on enlève aussi le module ndiswrapper

Configuration du WRT54GS

Se connecter sur l'interface d'administration du WRT.
Puis se rendre dans l'onglet "Sans fil" puis "Sécurité sans fil".
Choisir Clé partagée WPA comme mode de sécurité, TKIP comme algorithmes WPA, saisir votre clé partagée WPA et donner en nombre de secondes l'intervalle de renouvellement automatique de la clé et enregistrer les paramètres.

C'est parti

On est prêt maintenant à lancer l'interface wlan0. Il suffit d'utiliser la commande : ifup wlan0

A partir de cette instant, wpa_supplicant ca afficher la négociation avec l'AP : Trying to associate with xx:xx:xx:xx:xx:xx (SSID='mon_reseau_wifi' freq=2462 MHz)
WPA: Key negotiation completed with xx:xx:xx:xx:xx:xx

Conclusion

Et voila, Linux et l'AP ont négociés les clefs et on est connecté au réseau Wifi ;-)

Rétroliens

Pas de rétroliens

Commentaires

Afficher les commentaires en Vue non groupée | Vue groupée

JJK sur :

Bravo pour la clareté de l'explication et la propreté de la page (structure, présentation, lisibilité).

Comme quoi sobriété et pédagogie font bon ménage en cette époque de tape à l'oeil technologique.

Je reviendrai sur votre site pour l'imiter.

David sur :

Bonjour,

Merci beaucoup pour ces compliments. Ca donne envie de continuer ;-)

A bientôt,

David.

Adon Stéphane sur :

Je suis admiratif pour tes explications.
Avec ta permission je te recontacterai pour des préoccupations.

Bien à toi

Stéphane

Ajouter un commentaire

Marquer un texte en gras: *mot*, souligner un texte: _mot_.
Les smilies standard comme :-) et ;-) sont convertis en images.
Les adresses Email ne sont pas affichées, et sont seulement utilisées pour la communication.

Pour éviter le spam par des robits automatisés (spambots), merci d'entrer les caractères que vous voyez dans l'image ci-dessous dans le champ de fomulaire prévu à cet effet. Assurez-vous que votre navigateur gère et accepte les cookies, sinon votre commentaire ne pourra pas être enregistré.
CAPTCHA

Form options
tweetbackcheck