Connexion automatique à FreeWifi avec Debian
By grapsus on Wednesday 4 August 2010, 12:22 - Permalink
Voici la configuration pour les systèmes du type Debian pour se connecter au réseau des hot-spots FreeWifi :
/etc/network/interfaces :
1 2 3 4 5 6 7 | iface freewifi inet dhcp wireless-essid FreeWifi wireless-rate 11M wireless-key off pre-up ifconfig ath0 mtu 1460 up post-up nohup /root/bin/freewifi.sh & post-down killall -q -KILL freewifi.sh |
/root/bin/freewifi.sh :
1 2 3 4 5 6 7 8 9 10 11 | #!/bin/bash KEY='' # identifiant freewifi, aller sur wifi.free.fr si vous ne l'avez pas encore PASSWORD='' # mot de passe freewifi sleep 3 while true ; do wget --quiet --no-check-certificate --post-data\ 'login='"$KEY"'&password='"$PASSWORD"'&submit=Valider'\ 'https://wifi.free.fr/Auth' -O '/tmp/free' sleep 1000 done |
Pour lancer la connexion avec une carte Atheros par exemple :
ifup ath0=freewifi
Qu'est-ce qu'il y a d'original là-dedans ? La connexion n'est pas fiable avec la valeur par défaut du paramètre MTU (Maximum Transmission Unit); les paquets de plus de 1,46 ko ne semblent pas passer à cause de la fragmentation (on peut facilement tester avec ping -s TAILLE -v serveur.foo); à 1460 octets la connexion est stable, et des sessions SSH ont duré plusieurs heures sans problème chez moi. Ensuite on fixe la vitesse de la carte wifi à 11 Mbit/s; la plupart des cartes ont une puissance d'émission supérieure aux vitesses plus basses, et de toute manière on n'aura jamais plus de quelques Mbits avec un hot-spot. Enfin, le réseau FreeWifi utilise un portail captif pour vous authentifier pour une durée assez courte (quelque chose comme 30 minutes); avec mon script post-up, l'authentification se fait de manière automatique et périodique.
Comments
Merci pour ces petits scripts, cela marche à merveille pour le moment.
Cependant le script freewifi.sh comporte une erreur de frappe; ce n'est pas password='"$PASWWORD"' mais
password='"$PASSWORD"'
Depuis ce petit changement l'identification n'est plus refusée.
Merci pour cette correction : chez moi le mot de passe était rentré directement dans la requête. J'ai ajouté ces variables pour plus de simplicité lors de la rédaction du billet et fait cette erreur du coup.