~bohwaz/blog/

Avec de vrais morceaux de 2.0 !

Mettre une Fonera en mode bridge

La fonera c'est cool, c'est gratuit, Fon en donnent à tour de main, on peux même avoir des Fontenna gratos. Cependant niveau possibilités c'est pas trop ça, c'est relativement limité en fait. Par exemple moi je voulais la mettre en mode bridge. C'est à dire ne pas faire de masquerade et directement passer les paquets du wlan au wan (qui en réalité est un routeur), ce qui fait que les clients wifi qui se connectent passent directement par le routeur principal. Moi ça m'arrange ça permet d'utiliser pleinement les règles d'IPCop entre réseau bleu et réseau vert. En fait transformer vraiment la fonera en vrai Access point. Sauf que le firmware FON ne permet pas ça du tout, t'as pas le choix, la fonera fait routeur c'est tout.

Heureusement, il est assez facile d'activer le SSH sur la petite boîte avec le hack kolofonium qui permet avec un simple changement de dns + reboot d'activer le ssh. Sauf que pour ça il faut le firmware 0.7.1r5, si vous avez une autre version sur votre box, soit elle est supérieure et alors il va falloir faire un reset (appui de 15 secondes sur le bouton reset en dessous de la fonera, relachez, attendez le reboot, connectez-vous sur le réseau MyPlace avec le serial number de la Fonera comme pass WPA), si vous avez une version inférieure, allez dans Advanced puis "upgrade firmware" et là mettez ce fichier. Débranchez la fonera du net. Elle reboote pour mettre à jour son firmware. Une fois fait ça, vous pouvez utiliser le hack kolofonium avec le changement de dns. Faites le changement de dns, rebranchez l'ethernet, attendez que le wlan revienne et redébranchez. Vous devriez pouvoir vous connecter avec un ssh root@192.168.10.1 et votre mot de passe de l'admin.

Maintenant on peux se connecter en SSH et désactiver les mises à jour de la fonera pour éviter de vous voir privé de votre accès SSH. Pour ça c'est simple il faut commenter la ligne avec ". /tmp/.thinclient.sh" à la fin de /bin/thinclient. Vous pouvez aussi rm /bin/thinclient mais c'est un peu goret. Et voilà vous avez le contrôle de votre Fonera.

Maintenant pour transformer la fonera en bridge, il faut créer un fichier /etc/init.d/N51bridge avec ceci :

#!/bin/ash
echo "Setting up LAN bridge"

# Kill DHCP server+ client
/usr/bin/killall dnsmasq
/usr/bin/killall -9 udhcpc

# create bridge interface
/usr/sbin/brctl addbr br0
/usr/sbin/brctl stp br0 off
/usr/sbin/brctl setfd br0 0

# shutdown/remove IPs from the old interfaces
/sbin/ifconfig eth0:1 down
/sbin/ifconfig eth0 0.0.0.0
/sbin/ifconfig ath1 0.0.0.0

# bring up the bridge interface
/sbin/ifconfig br0 up

# add the old interfaces to the bridge
/usr/sbin/brctl addif br0 ath1
/usr/sbin/brctl addif br0 eth0

# Set IP for the bridge
/sbin/udhcpc -i br0 -R # get new IP via dhcp
#/sbin/ifconfig br0 192.168.0.4 # remove the leading # to specify a static IP
#/sbin/route add default gw 192.168.0.254 # remove the leading # to specify the default gateway

# set firewall rules
iptables -I INPUT -i br0 -j ACCEPT
iptables -I OUTPUT -o br0 -j ACCEPT

# add bridge to hostapd.conf and restart hostapd (allows to use WPA)
echo bridge=br0 >> /tmp/hostapd.conf
/usr/bin/killall killall hostapd
/usr/sbin/hostapd -B /tmp/hostapd.conf

# restarting dnsmasq but without dhcp
dnsmasq

# need to be added since september 07 (0.7.1 r5 ?)
WANIP="$(ifconfig br0 | grep inet | awk -F'[: ]+' '{print $4}')"
WANMASK="$(ifconfig br0 | grep inet | awk -F'[: ]+' '{print $8}')"
ifconfig ath1 $WANIP netmask $WANMASK

Faites ensuite un coup de chmod +x sur ce fichier, et éditez /sbin/ifup et remplacez la ligne avec "wan_ifname=${wan_ifname:-eth0}" par "wan_ifname=${wan_ifname:-br0}" (j'ai repiqué ça sur ce blog). Vous pouvez rebooter. Ca marche. Mais attention ça désactive l'accès à la fonera (admin web et ssh) depuis votre réseau wifi, pour réaccéder à l'admin web/ssh, il faut utiliser l'ip de votre fonera sur le réseau local (l'ip qu'elle obtient en DHCP), n'oubliez pas d'adapter les règles de votre firewall pour y avoir accès.

Maintenant si comme moi vous êtes avares en bande passante, vous pouvez directement désactiver le wifi public de la fonera (ici, en belgique, il y a des quotas sur les accès internet, donc partager votre accès sans contrôle peut vite devenir coûteux). Pour ça un coup de ifconfig down ath0, ou pour désactiver de manière permanente, éditez /sbin/ifup et remplacez la partie setup_hotspot_wifi() { ... } par ceci :

setup_hotspot_wifi()
{
        config_get ssid public essid

	if [ "${ssid:-AP}" != "DISABLED" ]; then
        	wlanconfig ath0 create wlandev wifi0 wlanmode ap >&- 2>&-
        	setup_wifi_common ath0
        	iwconfig ath0 essid "FON_${ssid:-AP}"
	fi

        ifconfig eth0 up

	if [ "${ssid:-AP}" != "DISABLED" ]; then
	        ifconfig ath0 up
	fi
}

Il ne vous reste plus qu'à renommer dans l'admin web le réseau public en DISABLED (FON_DISABLED en fait) et il ne sera plus activé.

Et voilà :)

Écrire un commentaire
(facultatif)
(facultatif)
(obligatoire)
           _             _       _ 
  ___ ___ | | ___  _ __ (_) __ _| |
 / __/ _ \| |/ _ \| '_ \| |/ _` | |
| (_| (_) | | (_) | | | | | (_| | |
 \___\___/|_|\___/|_| |_|_|\__,_|_|
                                   
(obligatoire)

Les adresses internet seront converties automatiquement.
Tags autorisés : <blockquote> <cite> <pre> <code> <var> <strong> <em> <del> <ins> <kbd> <samp> <abbr>

Guyou

Je suis intrigué par tes propos concernant la disponibilité "gratuite" de Fonera. Peux-tu en dire un peu plus STP ?

Perso, j'ai payé la mienne 20€ grâce à un parrainage, ce qui ne m'a pas paru trop cher pour une sorte de routeur wifi. Mais je ne vois pas comment on fait pour en trouver des gratuites.

BohwaZ

Il y a régulièrement des offres, j'ai eu la mienne via une offre parue dans 20 minutes, mais ils en donnent gratos dans leurs "fiesta" (par exemple la grand messe pour le partenariat avec neuf et l'ile de france), certaines ubuntu party ou pour certaines communautés (je crois que fon genève en donne). Et il doit y avoir encore d'autres occases, j'ai l'impression qu'ils les jettent un peu par les fenêtres :)

kikadisa

Attend j'ai pas tout compris.

Grace à ton tuto, on peut transformer la Fonera en routeur WIFI

Autrement comme un routeur avec des cable ethernet mais en WiFi.

En gros sa permet de faire un réseau, pratique quand on veut pas déballer des dizaine de mètre de cables.

C'est bien sa ?

Je ne m'y connait pas du tout !

Mahoru`Tsunemi

Juste pour savoir,

Quand on met la fonera en bridge, elle marche toujours au niveau du essid public comme normalement (avec le prise en compte que l'ap marche pour pouvoir ce connecter au réseau wifi fon) ?

On pert la garantie non ?

Je pense que c'est tout.

Merci :)

BohwaZ

Je ne sais pas j'ai toujours désactivé le SSID public. Mais dans le pire des cas tu peux faire un reset de ta fonera pour retrouver le firmware original, non modifié par toi.