Soucis avec les linksys WRT54G transformés en fonera

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.

Linksys WRT54G

Linksys WRT54G

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:

Administration Fonera - hotes

Administration Fonera - hôtes

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.

VN:F [1.9.22_1171]
Evaluation: 4.0/5 (1 vote exprimés)
Soucis avec les linksys WRT54G transformés en fonera, 4.0 out of 5 based on 1 rating

Suivre les commetaires avec le flux RSS 2.0. Vous pouvez aller à la fin et laisser un commentaire. Le ping n'est actuellement pas autorisée.

15 Commentaires »

 
  • avatar René dit :

    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.

    VN:F [1.9.22_1171]
    Evaluation: 0 (sur 0 votes)
  • avatar René dit :

    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.

    VN:F [1.9.22_1171]
    Evaluation: 0 (sur 0 votes)
  • avatar René dit :

    Voila, j’ai écrit un article pour partager mon firmware modifié. l’article est sur ce lien : FONBasic 0.6.7

    VN:F [1.9.22_1171]
    Evaluation: 0 (sur 0 votes)
  • avatar Laurent dit :

    Peut on créer un compte avec les droits linus ou bill grâce à ce firmware dans le WRT54G?

    VA:F [1.9.22_1171]
    Evaluation: 0 (sur 0 votes)
    • avatar René dit :

      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.

      VN:F [1.9.22_1171]
      Evaluation: 0 (sur 0 votes)
  • avatar Philippe dit :

    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

    VA:F [1.9.22_1171]
    Evaluation: 0 (sur 0 votes)
    • avatar René dit :

      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.

      VN:F [1.9.22_1171]
      Evaluation: 0 (sur 0 votes)
      • avatar Philippe dit :

        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)

        VA:F [1.9.22_1171]
        Evaluation: 0 (sur 0 votes)
        • avatar René dit :

          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

          VN:F [1.9.22_1171]
          Evaluation: 0 (sur 0 votes)
          • avatar Philippe dit :

            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

            VA:F [1.9.22_1171]
            Evaluation: 0 (sur 0 votes)
          • avatar René dit :

            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

            VN:F [1.9.22_1171]
            Evaluation: 0 (sur 0 votes)
          • avatar René dit :

            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 ?

            VN:F [1.9.22_1171]
            Evaluation: 0 (sur 0 votes)
          • avatar Philippe dit :

            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

            VA:F [1.9.22_1171]
            Evaluation: 0 (sur 0 votes)
  • avatar Philippe dit :

    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

    VA:F [1.9.22_1171]
    Evaluation: 0 (sur 0 votes)
    • avatar René dit :

      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.

      VN:F [1.9.22_1171]
      Evaluation: 0 (sur 0 votes)
 

Laisser un commentaire

XHTML: Vous pouvez utiliser ces balises : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>