Ach Fonera güüt yaa

Tags: , ,
1 Comment »

Ça fait plusieurs jours que je bataille avec ma seconde fonera munie d’un firmware OpenWRT Kamikaze avec des logs du genre :

Associated with xx:xx:xx:xx:xx:xx
Authentication with xx:xx:xx:xx:xx:xx timed out.

wpa_supplicant faisait sa mauvaise tête, impossible d’associer Kamikaze à la première Fonera en WPA / TKIP. J’avais lu que la release 7.06 était dispo et j’ai pas cherché plus loin, ntt ntt iMil enfin… un peu de jugeote. En allant jeter un oeil sur l’arbo d’OpenWRT je m’aperçois qu’une version 7.07 était dispo et que le Changelog explique bien clairement :

Changes since Kamikaze 7.06
---------------------------
[bla, bli, blu]
- WPA related bugfixes in the wifi scripts for Broadcom and Atheros

Bien vu.

Ni une ni deux, je m’engage dans l’upgrade du firmware. Dans la mesure du possible, j’aime bien me caler sur des docs de gentils hackers qui ont galéré avant moi, du coup j’ai trouvé cette doc, qui même si elle est ecrite en allemand, langue à laquelle je bite pas un mot, highlighte bien consciensieusement les parties “code”.
Je résume pour la forme :

. On récupère http://downloads.openwrt.org/kamikaze/7.07/atheros-2.6/openwrt-atheros-2.6-vmlinux.lzma
. On récupère http://downloads.openwrt.org/kamikaze/7.07/atheros-2.6/openwrt-atheros-2.6-root.squashfs

Puis moyennant le setup d’un serveur tftp (je vais pas expliquer cette partie résumée dans 782364892 blogs), on soumet RedBoot de cette façon :

RedBoot> ip_addr -l ip_de_la_fonera/cidr -h ip_du_serveur_tftp
RedBoot> fis init
RedBoot> load -r -b %{FREEMEMLO} openwrt-atheros-2.6-vmlinux.lzma
RedBoot> fis create -e 0x80041000 -r 0x80041000 vmlinux.bin.l7
RedBoot> load -r -b %{FREEMEMLO} openwrt-atheros-2.6-root.squashfs
RedBoot> fis create -l 0x6f0000 rootfs
RedBoot> fis load -l vmlinux.bin.l7
RedBoot> exec

Et nous voici en 7.07.

Afin d’assurer l’association en WPA, vous aurez evidemment besoin du package wpa-supplicant.
On setup une conf réseau minimale (on suppose que la fonera est pour le moment branchée via un lien classique ethernet sur un reseau dont la gate est 192.168.20.254)

# ifconfig eth0 192.168.20.2 netmask 255.255.255.0
# route add default gw 192.168.20.254

On edite le resolv.conf puis

# ipkg update
# ipkg install wpa-supplicant

et eventuellent

# ipkg install wpa-cli

Pour les plus faignants, voici à quoi ressemble mon /etc/config/wireless, fichier interprété par les initscripts de Kamikaze pour démarrer wpa_supplicant. L’/etc/config/network varie selon la topo cible (bridge, client routé, client bridge…)

config wifi-device  wifi0
        option type     atheros
        option disabled 0
        option mode             11bg
        option diversity        0
        option txantenna        1
        option rxantenna        1

config wifi-iface
        option device   wifi0
        option network  lan
        option mode     sta
        option ssid     MyPlace
        option bssid    xx:xx:xx:xx:xx:xx
        option key      1234567890
        option bgscan   0
        option encryption psk

Un petit /etc/init.d/network restart, on attend qques secondes, on regarde le resultat via wpa_cli et ça devrait être la teuf.

dd-wrt, le firmware qui a l’air joli

Tags: ,
2 Comments »

Mais juste l’air.

Après avoir tripoté le bidule quelques jours, j’ai gentiment reflashé ma fonera avec un autre firmware que je passerai au crible à son tour. Pour être concis, dd-wrt, c’est le bordel. Un repertoire “d’initscript” qui mélange gaiement scripts se finissant par des “^M” et templates de la GUI, la quasi-totalité des parametres sont inscrits et lus via nvram, ce qui nous donne :

/etc/config # nvram show|wc -l
size: 23894 bytes (8874 left)
867

extrait au pif :

ppp_get_ac=
pptp_server_ip=
ath0_compression=0
ath2_channelbw=20
restore_defaults=0
ddns_time=
pptp_use_dhcp=0
kaid_user=
wshaper_downlink=0
ath0_txantenna=1
ppp_username=
pptpd_client_srvip=
ath0_macmode1=disabled
filter_port=
wan_lease=0

wouaa comment c’est bien rangééé

Les regles de firewalling sont planquées quelque part, mais on n’y touche evidemment pas via la -tres jolie- GUI. Le support jffs2 est inclus mais l’ipkg.conf est faux, chaque changement de parametre nous vaut un reload de l’ensemble des services, et j’en passe et des meilleurs.

Bref, certainement un très bon produit de substitution pour quelques routeurs aux firmwares sales, mais certainement pas pour l’amateur de propreté d’un Unix correctement segmenté.

Trash.

dd-wrt@fonera

Tags: ,
4 Comments »

ouh-ouuuuuuh

Toute la procedure est expliquée ici.

Maintenant, on va tâcher de coller et configurer proprement un chilli pour que le DD-WRT puisse utiliser le portail captif FON.

il vous reste des pillules nosleep ?

Tags: ,
No Comments »

Alors d’abord je reçois ceci de la part d’un mysterieux anonyme :

Qu’evidemment je m’empresse de brancher comme il se doit :

Pour obtenir ce saint Graal là :

Et donc là, je me souviens de ça, mais surtout… surtout de ÇA.

Vous deux là, Mr L. et Mr F., j’espere que vous vous en voulez bien fort de cramer mon week end de la sorte.

j’ai un ami qui m’attend à l’interieur

Tags: , ,
No Comments »

Histoire de m’affranchir de N regles de firewalling / forwarding / nat à se faire des nœuds au cerveau à coups l’iptables, je me suis dit qu’il serait du meilleur effet d’embarquer un simple proxy SIP dans la Fonera.
Après 2/3 googlisations, j’identifie siproxyd comme le candidat idéal pour mon petit exercice.
Muni de l’environnement de développement de FON, je compile :

. libosip2 dont il dépend
. siproxyd lui même

Ça donne à peu près ça :

$ pwd
/home/imil/fonera/src/own/libosip2-2.2.2
$ export FONBUILD=/path/to/fonera/build/env
$ export FONENV=/path/to/fonera/fake/root/filesystem
$ CFLAGS=-I${FONBUILD}/staging_dir_mips/usr/include LDFLAGS="-L${FONBUILD}/staging_dir_mips/usr/lib -lcrypt" CC=mips-linux-uclibc-gcc ./configure --host=mips --disable-hashtable --prefix ${FONENV}
$ make && make install

FONBUILD est le chemin vers l’environnement de compilation décompressé
FONENV est mon point de montage CIFS mounté depuis la Fonera sur /usr/local
puis :

$ pwd
/home/imil/fonera/src/own/siproxd-0.5.13
$ CFLAGS=-I${FONBUILD}/staging_dir_mips/usr/include LDFLAGS="-L${FONBUILD}/staging_dir_mips/usr/lib -lcrypt" CC=mips-linux-uclibc-gcc ./configure --enable-fli4l-22-uclibc --enable-static --host=mips --prefix=${FONBUILD} --with-libosip-prefix=${FONBUILD}
$ make

À la fin de la compilation, j’obtiens un src/siproxyd que je scp dans l’/usr/bin de la Fonera.
Reste à créer un /etc/siproxyd.conf minimal :

if_inbound  = ath1
if_outbound = eth0
sip_listen_port = 5060
daemonize = 1
silence_log = 1
log_calls = 1
registration_file = /tmp/siproxd_registrations
autosave_registrations = 300
pid_file = /var/run/siproxd.pid
# on active le RTP proxy
rtp_proxy_enable = 1
rtp_port_low  = 7070
rtp_port_high = 7089
rtp_timeout = 300
rtp_dscp = 46
default_expires = 600
debug_level =      0x00000000
debug_port = 0
# 1.2.3.4 == l'ip de l'asterisk qui va effectivement enregistrer mes SIP phones
outbound_proxy_host = 1.2.3.4
outbound_proxy_port = 5060
outbound_proxy_port = 5060

Reste à ouvrir quelques ports sur la Fonera :

root@OpenWrt:/etc/init.d# tail -7 /etc/firewall.user
## -- VoIP
# SIP
iptables -t nat -A prerouting_rule -i $WAN -p udp --dport 5060 -j ACCEPT
iptables        -A input_rule      -i $WAN -p udp --dport 5060 -j ACCEPT
# RTP
iptables -t nat -A prerouting_rule -i $WAN -p udp --dport 7070:7089 -j ACCEPT
iptables        -A input_rule      -i $WAN -p udp -m udp --dport 7070:7089 -j ACCEPT

Et evidemment à entrer ces regles “à la main” pour qu’elles soient executées en live.
Moyennant quoi :

/usr/bin/siproxd

Et on admire la beauté d’un header SIP :

Sending to 4.3.2.1 : 5060 (NAT)
Transmitting (NAT) to 4.3.2.1:5060:
SIP/2.0 200 OK
Via: SIP/2.0/UDP 4.3.2.1:5060;branch=z9hG4bKde51f2040c5392cd5619453830d27d85;received=4.3.2.1
Via: SIP/2.0/UDP 192.168.10.231:5060;branch=z9hG4bK066469ba8
From: white ;tag=6af6d7ac5d3c755
To: 087XXXXXXX ;tag=as41ab49a5
Call-ID: a09785bc6c5225000878173ed3169649@192.168.10.231
CSeq: 1169873461 BYE
User-Agent: Asterisk PBX
Allow: INVITE, ACK, CANCEL, OPTIONS, BYE, REFER, SUBSCRIBE, NOTIFY
Contact: 
Content-Length: 0
X-Asterisk-HangupCause: Normal Clearing

Emouvant.

CANICULE, VIENS À MOI

Tags: , ,
3 Comments »

Bon avec ça on devrait bien gagner 2/3 degrés.

WP Theme & Icons based on GlossyBlue by N.Design Studio
Banner from www.trynthlas.com
Entries RSS Comments RSS Log in
Performance Optimization WordPress Plugins by W3 EDGE