====== wpa-supplicant : configuration wifi ====== * Objet : Configuration d'un réseau WPA avec WPA Supplicant * Niveau requis : {{tag>avisé}} * Commentaires : //Vous êtes en ligne de commande et voulez vous connecter à un réseau Wifi WPA. // * Suivi : {{tag>à-tester,à-compléter}} * Création par [[user>captnfab]] le 09/09/2013 * Testé par <...> le <...> * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=7404|ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) ===== Introduction ===== Vous avez un ordinateur portable, et vous connectez souvent de WiFi en WiFi. Le matin, c'est le WiFi de la maison, puis y'a le wifi de la station de métro, le wifi de la gare, le wifi du train (pour les veinards qui en ont un), le wifi du boulot, le wifi des clients, etc. Dans ce cas, vous faîtes déjà certainement du roaming, i.e. de l'itinérance, entre les différents points d'accès qui vous irradient au fil de votre route. En mode graphique, on connaît bien NetworkManager et Wicd qui sont tous les deux capables de faire du roaming, c'est à dire de détecter les réseaux présents et de se connecter à ceux connus. NetworkManager peut également être utilisé en mode console. Mais aujourd'hui, nous allons étudier ''wpasupplicant'' qui permet déjà de faire cela. ==== Avertissement ==== WPA Supplicant et NetworkManager peuvent entrer en conflit s'ils tentent tous deux de gérer la même interface. ===== Installation ===== apt-get install wpasupplicant ===== Utilisation ===== ==== Tester le programme wpa_supplicant ==== Le but est de vérifier que **wpa_supplicant** contrôle bien l'interface wifi. On supposera que ''wlan0'' est votre interface wifi. wpa_passphrase votre-ssid votre-mot-de-passe >> /etc/wpa_supplicant/wpa_supplicant.conf On commence par tuer tous les processus **wpa_supplicant** tournant : pkill wpa_supplicant On va ensuite lancer **wpa_supplicant** dans un terminal : wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf Successfully initialized wpa_supplicant Si **wpa_supplicant** ne vous rend pas la main après avoir affiché le message, au-dessus, c'est que tout va bien. Sinon, vous pouvez lancer **wpa_supplicant** en mode debug pour comprendre ce qui ne va pas : wpa_supplicant -d -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf ==== Scanner les points d'accès disponibles ==== Dans un autre terminal, on va lancer l'interface commande **wpa_cli** : wpa_cli -i wlan0 wpa_cli v2.4 Copyright (c) 2004-2015, Jouni Malinen and contributors This software may be distributed under the terms of the BSD license. See README for more details. Interactive mode > A partir d'ici, on se retrouve dans l'**interface commande de wpa_cli**.\\ Le prompt ''>'' doit être affiché. Lancer un scan des points d'accès : > scan OK > <3>CTRL-EVENT-SCAN-STARTED > <3>CTRL-EVENT-SCAN-RESULTS > <3>WPS-AP-AVAILABLE Afficher le résultat du scan : > scan_results bssid / frequency / signal level / flags / ssid 42:03:81:d1:d4:53 2457 -16 [WPA-EAP-CCMP][ESS] FreeWifi_secure 42:03:81:d1:d4:50 2457 -16 [WPA-PSK-CCMP][ESS] 42:03:81:d1:d4:51 2457 -17 [WPA2-PSK-CCMP][ESS] f4:ca:e5:92:3f:58 2422 -64 [WPA-PSK-CCMP][ESS] Freebox-59C501 f4:ca:e5:92:3f:5a 2422 -64 [WPA2-EAP-CCMP+TKIP][ESS] FreeWifi_secure 00:19:70:7c:1e:d5 2437 -85 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS] Livebox-9a79 42:03:81:d1:d4:52 2457 -16 [ESS] FreeWifi f4:ca:e5:92:3f:59 2422 -64 [ESS] FreeWifi 06:19:70:7c:1e:d5 2437 -87 [ESS] orange Quitter **wpa_cli** : > quit Arrêter **wpa_supplicant** en faisant un //CTRL-C// dans le terminal où il tourne. ==== Ajouter un profil wifi ==== La commande **wpa_passphrase** permet de créer des profils wifi : wpa_passphrase votre-ssid votre-mot-de-passe >> /etc/wpa_supplicant/wpa_supplicant.conf en remplaçant ''votre-ssid'' par le nom de votre réseau Wifi et ''votre-mot-de-passe'' par votre mot de passe. Ceci va ajouter l'entrée suivante à la fin de votre ''/etc/wpa_supplicant/wpa_supplicant.conf'' : network={ ssid="votre-ssid" #psk="votre-mot-de-passe" psk=360b2c805ecd920b79a370af532d2f7636bab7049ed2dc068c2dae17f5e1c38e } Pensez à effacer la ligne avec votre mot de passe en clair ! Il est également possible de directement supprimer la ligne de votre mot de passe en utilisant la commande sed wpa_passphrase votre-ssid votre-mot-de-passe | sed 3d >> /etc/wpa_supplicant/wpa_supplicant.conf A partir d'ici, si vous installez le paquet **dhcpcd5**, la connexion réseau wifi devrait être fonctionnelle à condition qu'aucune interface réseau ne soit configurée dans ''/etc/network/interfaces''. ==== Configuration du réseau wifi par la méthode traditionnelle ==== === Associer un identifiant au profil wifi === Dans le fichier ''/etc/wpa_supplicant/wpa_supplicant.conf'' : network={ ssid="wifi-maison" psk=123456789... # Cet id_str indiquera à /sbin/wpa_action de faire un 'ifup maison' id_str="maison" } La directive **id_str** va associer l'identifiant ''maison'' au profil wifi.\\ Cet identifiant pourra, alors, être utilisé comme interface réseau wifi dans le fichier ''/etc/network/interfaces''. === Demander à l'interface réseau wifi d'utiliser wpa supplicant === Dans le fichier ''/etc/network/interfaces'' : allow-hotplug wlan0 iface wlan0 inet manual wpa-driver wext wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf Si vous n'arriviez pas à faire fonctionner votre carte avec le driver ''wext'', vous pouvez essayer avec le driver ''nl80211'' à la place. === Configuration du réseau en dhcp === Dans le fichier ''/etc/network/interfaces'' : # L'identifiant 'maison' est utilisé comme interface wifi. iface maison inet dhcp === Configuration du réseau en ip statique === Dans le fichier ''/etc/network/interfaces'' : # id_str="maison" iface maison inet static address 192.168.0.20 netmask 255.255.255.0 network 192.168.0.0 broadcast 192.168.0.255 gateway 192.168.0.1 === Redémarrer le wifi et chercher à se connecter à un réseau connu === Tapez la commande suivante dans un terminal root : wpa_cli reconfigure Vous devriez alors lire un message semblable à celui-ci : Selected interface 'wlan0' OK ===== Sources ===== * ''/usr/share/doc/wpasupplicant/README.Debian.gz'' * #debian@oftc.net (irc anglophone)