Recherche
Peut être aimerez-vous...
Sections du site
Sites Neamar
Lisez ces articles !
| Du wifi WPA sous linux, depuis la ligne de commande |
|
| Programmation et tuning - Linux et OpenSuse |
| Écrit par Neamar |
| Vendredi, 26 Février 2010 19:41 |
|
La carte graphique de mon ordinateur ayant malencontreusement rendu l'âme (on le saura !), j'ai dû survivre quelques temps à partir du mode failsafe d'OpenSuse, une ligne de commande standard. Ayant pas mal ramé avant de pouvoir configurer mon wifi WPA, je vous livre ici la séquence qui fait tout ;) Pré requis :
C'est bon ? On est parti ! Note : la quasi-totalité des commandes ci-dessous nécessitent d'être lancées en tant que super utilisateur. PréparationLe WPA n'est pas géré nativement par Linux, il faut passer par wpa_supplicant qui se chargera des échanges et du protocole de connexion. La configuration se fait par un fichier.
ctrl_interface=/var/run/wpa_supplicant
eapol_version=1
ap_scan=1
fast_reauth=1
network={
ssid="MonMDP"
scan_ssid=1
proto=WPA
key_mgmt=WPA-PSK
psk="MonMDP"
priority=5
}
Initialisation du wifiPremière étape, activer la carte wifi : ip link set wlan0 up Ensuite, on va récupérer la liste des émetteurs wifi captés : iwlist scan 2>/dev/null | grep ESSID Vous devriez avoir trouvé votre point d'accès ; il va ensuite falloir dire chez qui vous souhaitez vous connecter (peu importe la clé pour le moment ; ne mettez pas de guillemets autour du SSID) :
iwconfig wlan0 essid NeufDauphine && iwconfig wlan0 | grep ESSID
Note : la deuxième commande permet de vérifier que la modification est enregistrée. Avant de continuer, il faut tuer sauvagement toutes les instances de wpa_supplicant qui tournent en fond. On ne peut pas se contenter d'un simple killall wpa_supplicant car le processus est automatiquement relancé par défaut. Après de multiples essais, je me suis fixé sur la commande suivante qui tue le groupe de processus :
killall -g -s SIGTERM wpa_supplicant
On peut ensuite lancer notre instance (remplacez \texttt{/root/wpa.conf} par le chemin absolu vers votre fichier, mais ne rajoutez pas d'espace entre l'option c et le path) : wpa_supplicant -dddt -iwlan0 -c/root/wpa. conf -Dwext -f /var/log/wpa_supplicant. log & Concernant le driver, j'ai mis le choix générique. Si vous n'avez aucune idée de votre driver, vous êtes en wext (c'est le cas dans la commande). Sinon, consultez l'aide de wpa_supplicant pour une liste des pilotes supportés. Note : j'ai redirigé la sortie avec l'option f. Si les commandes qui suivent ne marchent pas, il est probable que le fichier de log contienne les erreurs (par exemple, et de façon non exhaustive : mauvais protocole, fichier de configuration invalide, mauvais mot de passe, SSID introuvable, instance de wpa_supplicant déjà lancée… ). Vous pouvez aussi lancer la commande en enlevant l'option -f et l'esperluette à la fin pour avoir les erreurs en direct… même si ça défile vite ! Patientez quelques secondes avant d'effectuer la suite, histoire que wpa_supplicant ait le temps de scanner et d'initier la connexion. ConnexionVoilà, on dialogue maintenant avec la box… mais pas encore avec Internet. On va demander une adresse IP au routeur, histoire de pouvoir surfer : dhclient wlan0 Note : votre routeur doit être compatible DHCP. Si ce n'est pas le cas, vous pouvez activer ce protocole dans les paramètres d'administration, référez-vous à la documentation de votre matériel. Note : Si tout va bien, la commande devrait vous renvoyer votre nouvelle adresse IP, ainsi que le temps avant son expiration. Bienvenue sur Internet ! En revanche, si vous avez plusieurs requêtes qui échouent pour finir sur un « no working leases in persistant database », c'est que vous avez mal configuré wpa_supplicant. Consultez /var/log/wpa_supplicant.log pour les détails… bonne chance ; ) Enfin, on va indiquer à notre ordinateur par où passer pour les communications « extérieures » : route add default gw 192.168.1.1 Note : Remplacez 192.168.1.1 par l'adresse IP de votre routeur. Et voilà !
ping google.fr
(J'en profite pour remercier cet article de CCM qui m'a bien aidé pour le fichier de configuration, et le site officiel de la distribution qui donne des pistes de départ ! ) En bonusPour les fainéants, voilà le script bash pour se connecter directement. Attention, cela ne vous dispense pas de configurer wpa.conf ! Je ne peux malheureusement pas deviner votre point d'accès et son mot de passe… echo "->Démarrage de la carte wifi" ip link set wlan0 up echo "->Récupération de la liste" iwlist scan 2>/dev/null | grep ESSID echo "->Enregistrement du ESSID demandé" iwconfig wlan0 essid NeufDauphine iwconfig wlan0 | grep ESSID echo "->Démarrage de la session" killall -g -s SIGTERM wpa_supplicant wpa_supplicant -dddt -iwlan0 -c/root/wpa.conf -Dwext -f /var/log/wpa_supplicant.log & echo "->En attente de l'accrochage réseau" sleep 15 echo "->Récupération d'une adresse IP" dhclient wlan0 echo "->Mise en place des routes de transfert" route add default gw 192.168.1.1 echo "===Bienvenue sur Internet===" |
| Mise à jour le Vendredi, 26 Février 2010 21:33 |
