Voici une solution de contournement au problème récurent qui affecte les hotspots wifi du réseau FON à base de routeurs linksys WRT54G. Il arrive qu’ils ne fonctionne plus correctement suite à une configuration non supportée par le firmware embarqué dans ces routeurs.
Rappel
Les linksys WRT54G sont des routeurs wifi domestiques qui peuvent être flashés avec un firmware spécial (appelé FonBasic en version 0.6.6) qui les transforme en fonera. C’est un ancien firmware qui n’a plus l’air d’être maintenu mais qui a fait ses preuves et a permis au réseau FON de décoller, c’était avant que des routeurs wifi spécialement conçus pour le réseau FON ne soient commercialisés.
Le Symptôme
Ces routeurs linksys qui ont toujours bien fonctionné depuis leur début sont pris d’un mal étrange : tout semble indiquer qu’ils fonctionnent, ils sont reconnus comme étant actifs par le réseau fon, mais sont incapable de fournir une adresse IP aux postes clients connectés. Bref, il y a de quoi s’énerver car les messages d’erreur sont très peu explicites sur le poste client. La connexion au signal Wifi est excellente et pourtant rien ne passe.
La Cause
Le problème provient d’un sous-processus interne appelé chillispot. C’est le portail captif qui authentifie les foneros (utilisateurs du réseau fon). Il attribue les adresses IP, redirige les foneros vers une page d’authentification et permet l’accès à certaines URL même sans authentification. C’est sur ce dernier point que le problème se pose : à la mise sous tension le firmware reçoit du réseau FON une liste de site autorisés sans authentification. Parmi cette liste se trouvent des URL qui posent problème, soit elles ne plus référencées dans les DNS soit elle ont une syntaxe incorecte pour le firmware. Au boot du routeur, le processus chillispot va parcourir cette liste pour associer une IP à chaque URL et là c’est le drame, quand il tente de résoudre www.fonshop.com.tw et plante car il n’est plus connu des DNS.
La Solution de Contournement
Comme le firmware est un linux embarqué, il dispose d’un fichier /etc/hosts dans lequel il faut ajouter les entrées qui posent problème en leur attribuant une adresse IP arbitraire. Cela va permettre au processus chillispot de finir correctement son initialisation.
Au 15/01/2011 il y a deux entrés à ajouter : *.verizon.net et *.verisign.com
Il existe deux méthodes pour modifier le fichier /etc/hosts :
- En utilisant l’interface de gestion : allez dans la rubrique Réseau puis Configuration des hôtes . Malheureusement cette méthode ne fonctionne pas pour les noms comportant des caractères « interdits » tels que « * ».
- En se connectant en ssh à la fonera sous le compte root (le mot de passe est celui de l’interface d’administration). Utilisez la commande vi pour modifier le fichier /etc/hosts. La commande reboot permet de relancer la fonera et d’enregistrer la configuration.
Dans tous les cas il est important d’avoir modifié la liste des hosts avec l’interface de gestion une première fois pour que le fichier /etc/hosts soit accessible en écriture quand vous vous connecterez en ssh. En ce qui me concerne j’ai ajouté l’entrée 127.0.0.1 fonera avec l’interface de gestion.
Mon fichier /etc/hosts est le suivant :
127.0.0.1 localhost OpenWrt fonera 10.10.10.10 *.verizon.net *.verisign.com
Pour les entrées que vous ajoutez vous pouvez utiliser toute IP privée (cf RFC-1918) inexistante dans votre réseau. N’utilisez pas 127.0.0.1 ce n’est pas une adresse privée.
Après ces entrées seront visibles dans l’interface de gestion:
Faites le vous-même
Pour trouver vous-même les noms de domaines qu’il faut ajouter dans Configuration des hôtes connectez vous en ssh à votre fonera linksys et lancez manuellement chillispot :
BusyBox v1.00 (2006.06.23-17:10+0000) Built-in shell (ash) Enter 'help' for a list of built-in commands. _______ _______ _______ | ____|| || _ | | ____|| - || | | | | | |_______||__| |__| |___| FON Firmware (Beta 0.6.6) ------------------------- * * Based on OpenWrt - http://openwrt.org * Powered by FON - http://www.fon.com --------------------------------------------------- root@fonera:~# /etc/init.d/chillispot start chillispot[5421]: chilli.c: 506: Invalid uamallowed domain or address: *.verizon.net!
Ici c’est *.verizon.net qui est en cause. Ajoutez-le dans /etc/hosts avec la commande vi. Relancez chillispot et si tout se passe bien. Si ce n’est toujours pas le cas ajoutez autant d’entrées que nécessaire, il doit vous rendre la main sans message d’erreur. Vérifiez avec la commande ps que le processus est bien lancé :
root@fonera:~# ps PID Uid VmSize Stat Command 1 root 368 S init 2 root SW [keventd] 3 root RWN [ksoftirqd_CPU0] 4 root SW [kswapd] 5 root SW [bdflush] 6 root SW [kupdated] 8 root SW [mtdblockd] 49 root SWN [jffs2_gcd_mtd4] 71 root 348 S logger -s -p 6 -t 73 root 368 S init 74 root 364 S syslogd -C 16 76 root 316 S klogd 243 root 376 S /bin/sh /bin/resetd 469 root 320 S wifi up 613 root 392 S /usr/sbin/dropbear 614 root 380 S httpd -p 80 -h /www -r OpenWrt 869 root 380 S crond -c /etc/crontabs 966 nobody 400 S dnsmasq -K -F 192.168.10.100,192.168.10.250,255.255.255.0,12h -I vlan1 1003 root 404 S /bin/sh /etc/init.d/chillispot loop 1006 root 4888 S /usr/sbin/chilli --dns1=192.168.10.1 --dns2=192.168.10.1 --radiusnasid=00-14-bf-a5- 10469 root 600 R /usr/sbin/dropbear 10509 root 436 S -ash 11099 root 244 S sleep 1 11102 root 244 S sleep 1 11103 root 352 R ps
Le fichier de configuration de chillispot est /etc/chilli.conf , c’est dans ce fichier que sont les noms qui posent problème. Toutefois il est inutile de vouloir le modifier car ce fichier est téléchargé d’un serveur FON à la mise sous tension du routeur. Vos modifications ne sont donc jamais prises en compte.
La Suite
J’avais déjà signalé ce problème dans les forums du réseau FON en mars 2010. Le problème avait été corrigé mais là je constate que ça recommence alors cette fois je donne la solution de contournement pour tout le monde. L’idéal serait de faire évoluer le firmware pour linksys pour éviter ce genre de problème car les vraies foneras ne sont pas affectées. Toutefois il n’y a pas eu d’évolution du firmware FonBasic depuis des années.
Je poste un commentaire à mon propre article : je suis en train de compiler le firmware pour prendre en compte ce type d’anomalie et ne plus faire planter les wrt54g transformés en fonera. Voici mon état d’avancement :
– Environnement de développement pour le firmware 0.6.6 presque OK. J’ai un petit soucis avec bash qui pose problème à la première compilation. Cela n’empêche pas de relancer la compilation qui arrive alors à son terme.
– Modification du numéro de version pour être certain d’utiliser mon nouveau firmware (0.6.7)
– Mise à jour des sources et patchs de chillispot pour utiliser la même version que la fonera+
– Flashage du firmware OK. La nouvelle version de chillispot ne plante pas avec les noms de domaines incorrects dans chilli.conf mais affiche toutefois un avertissement.
– L’authentification au hotspot fonctionne mais ensuite il n’est plus possible de naviguer que sur les domaines faisant partie de la liste des domaines autorisés sans authentification.
Je soupçonne le plantage de bash à la compilation d’être à l’origine de ce problème. Un fichier de configuration (règles iptables de firewall ?) est certainement incomplet.
A suivre : mise à jour de bash et compiler l’ensemble. Identifier formellement la cause du plantage de bash et corriger le problème.
Le firmware 0.6.6 n’a pas évolué depuis plus de 5 ans, il est temps de le dépoussiérer.
Je suis reparti des sources officielles FON Basic 0.6.6 beta et j’ai corrigé le problème de compilation ainsi que l’analyse du fichier de configuration de chillispot. Ce firmware que j’ai numéroté 0.6.7 beta fonctionne correctement. J’ai trouvé une autre personne qui va également le tester.
Voila, j’ai écrit un article pour partager mon firmware modifié. l’article est sur ce lien : FONBasic 0.6.7
Peut on créer un compte avec les droits linus ou bill grâce à ce firmware dans le WRT54G?
Cela fait bien longtemps que j’ai créé mon compte mais je pense que oui, c’est toujours possible. Ensuite le status, linus ou bill peut être changé par la suite dans la page d’administration du compte sur le site de FON.
Bonjour René
Tout d’abord félicitations pour vos travaux !
Je viens d’installer votre firmware FONbasic 0.6.8 sur un WRT54G V1.1
afin de créer un Hotspot FON
Le flashage c’est bien passé, ainsi que l’entrée des paramètres @ IP LAN, @IP gateway et @ IP DNS pour le LAN
J’ai tout connecté, reseté etc..
En me connectant avec un câble Ethernet sur une des 4 RJ du routeur j’ai bien accès à la console d’admin et à l’internet (@ 192.168.10.1)
Par contre si déconnecte le câble RJ, et que je connecte en WiFI sur l’AP FON_linksys le DHCP du routeur ne me délivre pas d’@IP dans la plage 192.168.182.x comme ça devrait être le cas.. chose bizarre j’y arrive après avoir déconnectè internet du routeur et fait un M/A elec, mais là je n’ai plus d’internet 🙁
On dirais que le routeur désactive le DHCP coté AP FON quant internet est présent.
Ce qui me fait penser à un problème d’initialisation des paramétres FON
Qu’en pensez vous ?
D’autre part, j’ai créé un compte sur FON, je suis en « alien », je n’ai pas trouvé comment rattacher ce compte à l’AP FON nouvellement créée.. j’ai vu que sur les nouvelles Fonéra il y avait un bouton « s’enregistrer » qui n’existe pas sur le firmeware FONbasic
à moins que ça n’apparaisse quand le pb de DHCP de l’AP est résolu
Sinon j’en viens à penser qu’il n’est plus possible de créer un Hotspot FON sans acheter une Fonéra ou passer par SFR
Merci pour votre retour
Cordialement
Philippe B
et il se passe une chose bizarre
quand je me
Internet doit être présent quand l’AP s’initialise. Ensuite il suffit de se connecter au réseau wifi crée et pour déclarer cette nouvelle fonera il devrait rediriger le navigateur vers une page d’enregistrement. J’ai fait ça il y a très longtemps, mes souvenirs sont imprécis.
Merci pour cet élément de réponse,
Mais justement quand l’AP s’initialise avec internet, cela n’active pas (ou désactive je ne sais pas) le DHCP du Wifi FON ce qui m’interdit toute connexion en Wifi sur l’AP puisque je n’ai pas d’@IP allouée
(ce n’est pas un pb de PC parce que celui-ci fonctionne correctement sur d’autres AP)
Dans ce cas il faut se connecter root à l’AP en ssh et récupérer la liste des processus avec la commande ps -ef. Vérifier qu’il y a bien un processus /usr/sbin/chilli qui tourne. Si ce n’est pas le cas vérifier le contenu du fichier /etc/chilli.conf, s’il est vide vérifier si vous avez accès à internet depuis l’AP avec une commande ping sur un serveur de l’internet par exemple
Bonsoir,
je viens de faire les essais que vous me conseillez
en configuration normale, internet connecté à l’AP,
Connecté en SSH il y a bien un processus chilli qui tourne. Le fichier chilli.conf existe mais il est vide
coté ping, ça marche je ping yahoo par exemple
Bonne soirée
Si le fichier est vide cela signifie qu’il n’a pas pu récupérer la configuration chez FON. C’est probablement le cas car son adresse mac n’est pas répertoriée dans la base FON. Il faut trouver le moyen d’enregistrer le don spot et l’associer à votre compte. C’est le processus chilli qui joue le rôle DHCP et de portail captif pour l’authentification. Sinon tentez de l’initialiser sans internet et de le brancher à internet par la suite. Puis connectez vous au signal FON_xxx et ouvrez un page web
Autre essai possible. Connecté root en SSH au fon spot. Taper :
/etc/init.d/chillispot stop
Si vous le faites une seconde fois un message d’erreur vous avertissant que le service est déjà stoppé devrait s’afficher.
Puis relancer le service :
/etc/init.d/chillispot start
Y-a-t’il un message d’erreur ? Combien de temps dure le lancement ?
Bonjour,
Je reprends le fil de la discussion à ce niveau.. (je n’ai plus le bouton « répondre » sur vos commentaires)
Donc, voila j’ai effectué les essais stop/start du ps chillispot.. il s’arrête et redémarre correctement en une demi seconde environ et chaque fois le ficher chilli.conf s’efface et se recréé mais vide
En fait je pense que le problème viendrait plutôt de l’enregistrement de l’AP chez FON
Mon compte est bien créé.. j’arrive m’y connecter depuis la zone LAN de l’AP (en 192.168.10.1) mais dans les choix proposés sur le site de FON il n’y a aucune possibilité de s’enregistrer pour passer d’alien en linus ou bill
Je pense que FON oblige les nouveaux foneros à acheter la fonera 2.0 et l’@ MAC est serait enregistrée directement par FON sur le compte
Je vais poser la question au support de FON
Merci en attendant
je vous tiens informé
Cordialement
Bonjour,
au sujet de nos échanges précédents courant Décembre et après avoir rebouclé avec le support FON
Le problème vient effectivement de l’adresse MAC qu’il faut associer au compte FON
FON ne supporte plus les routeurs Linksys WRT54G et similaires et de ce fait n’est plus en mesure de procéder à l’association manuelle et à plus forte raison automatique d’une adresse MAC avec un compte FON
En pratique il on une base de données pré-initialisée avec l’adresse MAC des Foneras et c’est au moment de l’achat de la Fonera que l’association est effectuée.. Dès la Fonera connectée à internet elle est reconnue chez FON et on peut être Linus ou Bill
Pour ceux qui on un WRT54G connecté depuis longtemps rien ne change tant que l’adresse MAC ne change pas
Cordialemen
Merci pour ces explications. Donc impossible de rejoindre le réseau FON pour les possesseurs de routeurs Linksys depuis décembre 2013. Pour ceux qui ont réussi à les inscrire avant cette date ça reste utilisable mais sans aucun support.