FON est une société commerciale dont le concept est d’inciter le partage de la connection wifi et ainsi former une soi disant communauté. Celui qui partage peut être linus ou bill.
Le linus partage sa bande passante gratuitement aux autres linus de FON en échange de l’accès gratuit au hotspots des autres linus. Il faut savoir que FON revend la bande passante des linus à tous les autres qui ne font pas parti de la “communauté”, et exploite ainsi les linus dans leur dos grâce à une infrastructure peu chère car gratuite.
Les bills eux revendent la connection internet et ne touchent que 50% des revenus. De plus FON garde les gains jusqu’à ce qu’ils atteignent 30 euros.
Il faut signaler la solution concurrente: http://worldspot.net qui permet de partager gratuitement sa bande passante à n’importe qui tout en authentifiant par email les invités. Worldspot utilise, comme FON, Chillispot le logiciel de portail captif compatible sur les routeurs linux. Si le fournisseur de hotspot souhaite revendre du temps de connection, il touche 75% des revenus.
Les routeurs fon (aussi appelés Fonera) sont des petits boitiers contenant une carte wifi Atheros, un port Ethernet, et un OpenWRT.
J’ai décidé de regarder un peu comment ces derniers étaient configurés.
Première mise en route:
On branche, le tout .. le Fonera obtient une adresse IP via DHCP sur le lien filaire, par contre on ne peut y accéder que via l’interface WIFI. Dans un second temps, dès que l’on essaye de surfer on abouti sur une page de login. Il suffit de s’identifier avec le login / password obtenu lors de l’achat du Fonera. (Note, en fait peu importe le login utilisé, il sera utilisé comme propriétaire du dit Fonera.. je dis cela pour ceux qui ne l’on pas acheté)..
Ensuite, il suffit de configurer la page de l’AP.
Comme vous pouvez le voir, ce routeur permet d’avoir deux réseaux WIFI séparés. Un pour FON (”FON_AP”) et un autre privé utilisant du WPA (”JKX_FON_TEST”).
On note également que l’on peut configurer la quantité de bande passante allouée à Fon
L’adresse ip du routeur est par défaut 192.168.162.1
Afin d’accéder à l’interface de configuration, il faut absolument utiliser le réseau privé. On arrive alors sur une interface d’administration OpenWRT modifiée. (IP 192.168.10.1 / login: root / password: admin)
Comme vous pouvez le voir, cette interface est très succinte, et ne permet guère de faire des réglages avancés, comme l’ensemble de la config Fon d’ailleurs.
Dans l’ensemble, l’installation est très simple, et fonctionne du premier coup, mais cela au prix d’une configuration limitée. Certains points sont quand même intéressants ...
Je n’ai hélas pas réussi à configurer le ssh sur le routeur, malgré qques hacks testés, mais la solution port série devrait marcher.
Les captures d’écran sont ici: http://www.brest-wireless.net/gallery/fon
Cet article décrit la manière de flasher le routeur LaFonera® et de remplacer son firmware d’origine par le firmware OpenWrt ou DD-Wrt
Pour cela, nous vous proposons un pack qui regroupe tout ce dont vous aurez besoin. (pack OpenWrt, pack DD-Wrt)
Pour commencer, connectez vous au reseau wifi MyPlace. La Fonera a pour IP : 192.168.10.1 (Acces SSH, user: root , password: admin)
Pour commencer il faut vérifier la version du firmware en allant sur la page http://192.168.10.1/PAGE. Le firmware doit être le 0.7.1 r1. Si vous avez le r2, débranchez la prise RJ45, tentez un reset (appui de 15secondes sur le bouton reset situé en dessous du routeur) et vérifiez que vous être bien danss le 0.7.1 r1.
Dans le package téléchargé, se trouvent deux pages : step1.html et step2.html.
vous allez ouvrir ces deux pages, puis executer step1, puis step2. step1 permet d’ajouter une « iptable » au firewall, afin d’ouvrir le port ssh, tandis que step2 lance le serveur ssh.
Nous allons maintenant accèder par SSH : # ssh root@192.168.10.1
Puis automatiser le lancement du serveur SSH en tant que démon : # mv /etc/init.d/dropbear /etc/init.d/S50dropbear
On ouvre les ports de manière permanente pour SSH : # vi /etc/firewall.user
Décommenter les deux lignes suivantes (enlever le « # »):
iptables -t nat -A prerouting_rule -i $WAN -p tcp --dport 22 -j ACCEPT iptables -A input_rule -i $WAN -p tcp --dport 22 -j ACCEPT
Commentez la ligne qui contient /bin/thinclient : # crontab -e
Commentez la derniere ligne de /bin/thinclient (optionnel): # vi /bin/thinclient ⇒ # . /tmp/.thinclient.sh
Pour commencer, vous pouvez réaliser un backup de la flash d’origine de votre Fonera :
cd /dev/mdtblock httpd -p 9090 wget http://192.168.10.1:9090/0
Customisations (pour ceux qui y voient l’intérêt) :
echo « alias l='ls -al' » >> /etc/profile
Accèder via le cable ethernet : Paramétrez votre interface réseau avec l’IP statique 169.254.255.2 et connectez vous à l’AP via 169.254.255.1 (ssh root@169.254.255.1)
Fonera Flashing :
1)On commence par upgrader le noyau, par un qui va permettre d’écrire la partition «RedBoot config » :
On envoie donc le noyau via scp dans le /tmp de la fonera :
scp openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma_from_rapidshare.com root@169.254.255.1:/tmp/
Parallèlement, connectez vous en SSH à la Fonera, puis flashez avec le noyau tout juste uploadé :
mtd -e vmlinux.bin.l7 write /tmp/openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma vmlinux.bin.l7
Temps d’attente estimé : 1min30.
On reboot le routeur : # reboot.
2)Mise à jour de la configuration de RebBoot afin d’avoir accès à RedBoot via telnet.
Toujours via scp, on upload la config :
scp out.hex root@169.254.255.1:/tmp/
On se reconnecte via SSH, puis on flash la config RedBoot :
mtd -e "RedBoot config" write /tmp/out.hex "RedBoot config"
Temps estimé : 3 secondes
On reboot )
3)Accès à Redboot, et flash du noyau et du rootfs
On arrive ici à l’étape finale, puis qu’on y met le firmware souhaité avec son noyau final.
Pendant le boot de la fonera, il faut accèder via telnet sur le port 9000 :
telnet 192.168.1.254 9000
Rq: Si vous rencontrez des problèmes avec Ctrl-C et telnet, utilisez cela :
tclsh RedBoot.tcl ; telnet 192.168.1.254 9000
$ telnet 192.168.1.254 9000 Trying 192.168.1.254... Connected to 192.168.1.254. Escape character is '^]'. == Executing boot script in 8.800 seconds - enter ^C to abort RedBoot> No image 'vmlinux.bin.l7' found RedBoot> Can't execute Linux - invalid entry address RedBoot>
Si vous n’arrivez pas là, recommencez, à savoir redémarrer la fonera et lancez le telnet sur celle-ci.
On prépare RedBoot :
RedBoot> fis init About to initialize [format] FLASH image system - continue (y/n)? y *** Initialize FLASH Image System ... Erase from 0xa87e0000-0xa87f0000: . ... Program from 0x80ff0000-0x81000000 at 0xa87e0000: . RedBoot>
Préparez un serveur tftp avec le noyau et le rootfs à la racine de celui-ci.
FAIRE UNE DESCRIPTION DE TFTP HPA (pour l’exemple) !
Configuration du client TFTP sur la fonera
RedBoot>ip_address -l 192.168.1.254/24 -h 192.168.1.2
On flashe le rootfs :
RedBoot> load -r -v -b 0x80040450 rootfs Using default protocol (TFTP) - Raw file loaded 0x80040450-0x802c044f, assumed entry at 0x80040450 RedBoot>
FIS CREATE !!!
RedBoot> fis create -b 0x80040450 -f 0xA8030000 -l 0x00700000 -e 0x00000000 rootfs ... Erase from 0xa8030000-0xa8730000: ................................................................................................................ ... Program from 0x80040450-0x80740450 at 0xa8030000: ................................................................................................................ ... Erase from 0xa87e0000-0xa87f0000: . ... Program from 0x80ff0000-0x81000000 at 0xa87e0000: . RedBoot>
Temps estimé : 15 min !
On flashe le noyau :
RedBoot> load -r -b %{FREEMEMLO} vmlinux Using default protocol (TFTP) Raw file loaded 0x80040800-0x800f07ff, assumed entry at 0x80040800 RedBoot>
fis créé par ‘fis create -r 0×80041000 -e 0×80041000 vmlinux.bin.l7’, temps estimé : 5mn
RedBoot> fis create -r 0x80041000 -e 0x80041000 vmlinux.bin.l7 ... Erase from 0xa8730000-0xa87e0000: ........... ... Program from 0x80040800-0x800f0800 at 0xa8730000: ........... ... Erase from 0xa87e0000-0xa87f0000: . ... Program from 0x80ff0000-0x81000000 at 0xa87e0000: . RedBoot>
. fis laod kernel with ‘fis load -l vmlinux.bin.l7’
RedBoot> fis load -l vmlinux.bin.l7 Image loaded from 0x80041000-0x80284086 RedBoot>
Pour information, le partitionnment résultant est :
RedBoot> fis list Name FLASH addr Mem addr Length Entry point RedBoot 0xA8000000 0xA8000000 0x00030000 0x00000000 rootfs 0xA8030000 0xA8030000 0x00700000 0x00000000 vmlinux.bin.l7 0xA8730000 0x80041000 0x000B0000 0x80041000 FIS directory 0xA87E0000 0xA87E0000 0x0000F000 0x00000000 RedBoot config 0xA87EF000 0xA87EF000 0x00001000 0x00000000 RedBoot>
RedBoot> version
RedBoot(tm) bootstrap and debug environment [ROMRAM] Non-certified release, version v1.3.0 - built 16:57:58, Aug 7 2006
Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.
Board: ap51 RAM: 0x80000000-0x81000000, [0x80040450-0x80fe1000] available FLASH: 0xa8000000 - 0xa87f0000, 128 blocks of 0x00010000 bytes each. RedBoot>
rebooter la fonera avec la commande redboot reset
RedBoot> reset
Résumé des commandes RedBoot :
fis init ip_address -l 192.168.1.254/24 -h 192.168.1.2 load -r -v -b 0x80040450 rootfs fis create -b 0x80040450 -f 0xA8030000 -l 0x00700000 -e 0x00000000 rootfs load -r -b %{FREEMEMLO} vmlinux fis create -r 0x80041000 -e 0x80041000 vmlinux.bin.l7 fis load -l vmlinux.bin.l7 reset
Telnet sur OpenWrt et on change le passwd...
$ telnet 192.168.1.1 Trying 192.168.1.1... Connected to xxx.xxx. Escape character is '^]'. === IMPORTANT ============================ Use 'passwd' to set your login password this will disable telnet and enable SSH ------------------------------------------ BusyBox v1.4.1 (2007-02-10 01:38:09 CET) Built-in shell (ash) Enter 'help' for a list of built-in commands.
_______ ________ __ | |.-----.------.-----.| | | |.----.| |_ | - || _ | -__ | || | | || _|| _| |____ __|| _|_____|__|__||________||__| |____| |__| W I R E L E S S F R E E D O M KAMIKAZE (bleeding edge, r6280) ------------------- * 10 oz Vodka Shake well with ice and strain * 10 oz Triple sec mixture into 10 shot glasses. * 10 oz lime juice Salute! --------------------------------------------------- root@OpenWrt:/# passwd Changing password for root New password: Retype password: Password for root changed by root root@OpenWrt:/#
Accéder à OpenWRT en ssh, et let’s go
echo “alias l=’ls -al’" » /etc/profile; source /etc/profile
liens :
http://ipkg.k1k2.de/packages/ http://ipkg.k1k2.de/openwrt-atheros-2.6-vmlinux.lzma http://ipkg.k1k2.de/openwrt-atheros-2.6-root.jffs2-64k
/etc/ipkg src snapshots http://ipkg.k1k2.de/packages/
ipkg update ipkg upgrade
/etc/config/wireless
config wifi-device wifi0 option type atheros option channel 5 config wifi-iface option device wifi0 # option network lan option mode ap option ssid BW-test option hidden 0 option encryption none
/etc/config/network
config interface loopback option ifname lo option proto static option ipaddr 127.0.0.1 option netmask 255.0.0.0 config interface lan option ifname eth0 option proto static option ipaddr 192.168.1.3 option netmask 255.255.255.0 option gateway 192.168.1.1 option dns 192.168.1.1 config interface wan option ifname ath0 option proto static option ipaddr 192.168.5.1 option netmask 255.255.255.0 option gateway 192.168.5.1 option dns 192.168.5.1