Wednesday, March 4, 2009

OpenWrt en Fonera 2200

Me he quedado sorprendidísimo con FON. Monstando la instalación de red de la casa he decidido desempaquetar una fonera que llevaba año en la estantería tal como la trajo en mensajero. Como suponía, era el modelo 2200, que se alimenta a 7,5V y 1A (las otras iban a 5V, 2A) y dicen que se calienta mucho menos y tal. También me sonaba que la revisión del firmware en estas era más nueva, con lo que ya no funcionaba mi método favorito para abrir el ssh, usando script injection en un formulario web.
instrucciones
Volviendo a la página de los alemanes que sacaron todos los ataques busqué el kolofonium, que por lo visto funcionaba con solo cambiar el DNS y ellos usaban un RADIUS trucado para abrir el ssh. Dicen en la web que loguean la IP y la MAC de cada fonera que desbloquean, lo que no me hacía mucha gracia. También era un método que dependía del servicio de terceros y dado que es de hace unos años podía estar ya retirado, pero aún así lo intenté. En la web tienen estadísticas hasta de enero de 2009, así que puede que aún funcione. Renicio, espero, resultado: FAIL.

Sigue sin haber ssh. Enruto la fonera a través del portátil y arranco el wireshark. Bien, le problema está claro. La fonera intenta bajarse el heartbeat.php y el falso download.fon.com que tienen montado contesta con un 403. Mal asunto. Intercepto el puerto 80 de su servidor y me hago un hearbeat.php que devuelva vacío. No le gusta. Pues uno que devuelva "OK". Le gusta. Por curiosidad miro el original de fon.com. Devuelve "OK". Que originales somos los informáticos.

Bien, sigamos con el kolofonium... sin suerte. Otra vez wireshark, el RADIUS contesta con un ICMP de port unreachable. Maaaal asunto. Para comprobar el puerto de RADIUS (1812 UDP) pruebo un:

# nmap -sU -p U:1812

Y efectivamente que está cerrado. Estupendo, el RADIUS de kolofonium está caído, y por lo visto ya no está mantenido.

Busco por google, nada alternativo. Busco en la pagina de OpenWrt y dicen que ¡el RedBoot está activado por defecto! Ojo, la IP cambia de 192.168.1.254 a 192.168.1.1 aunque el puerto sigue siendo el 9000. Instalo putty para linux, arranco la fonera y ¡BINGO! Me bajo la última versión estable, flasheo según las instrucciones para la versión 2100 (en la wiki avisan que valen para la 2200, no era por jugar a la ruleta rusa) y ¡voilá! OpenWrt en la fonera funcionando perfectamente. O casi. Para ponerla en modo cliente+ap no vale con editar la configuración, hay que hacerlo más a mano, pero eso lo dejo para otra entrada.

El sistema ha mejorado mucho mucho desde la última vez que lo probé. Ahora ya funciona el led de la wifi, el de power es controlable por software desde "/sys/class/leds/gpio7/brightness", funciona el watchdog, la configuración del sistema es bastante más ampila, pudiendo personalizar el reset... en fin, merece la pena probarlo.

Si alguien tiene alguna duda, estaré encantado resolverla. Los scripts para el modo cliente+ap los pondre cuando estén terminados del todo.

Volviendo al tema del principio, me he quedado alucinado con fon. Al principio se tomaban tantisimas molestias por evitar que la gente trastee con el router y ahora lo dejan abierto para flasheos... aunque viendo su historial lo sería nada raro que fuera otro agujero de seguridad, jejeje.

2 comments:

Gino said...

"Busco por google, nada alternativo. Busco en la pagina de OpenWrt y dicen que ¡el RedBoot está activado por defecto! Ojo, la IP cambia de 192.168.1.254 a 192.168.1.1 aunque el puerto sigue siendo el 9000. Instalo putty para linux"

Buenas.. tengo alguna duda:

1) putty para linux??? no te valía una consola y el comando telnet??

2) segun he leido por ahi, redboot solo escucha en la 192.168.1.1:9000 durante 2 segundos tras un reinicio y tienes que engancharlo justito justito.... a mi me revienta que el networkmanager no me deja intentar hacer el telnet, porque cuando reinicio la fonera tarda algunos segundos en configurarme la red.. creo que tras esos segundos que tarda el networkmanager-joputa en activar el eth0 en la 192.168.1.2 ya no pillo el redboot ahi abierto.

¿cómo lo hiciste tú para entrar? ¿qué configuración de red te pusiste?

Gracias hombre por intentar ayudar!

Unknown said...

1. Putty para linux: pues si, existe, y viene por defecto en los repositorios de Arch. Antes de eso usaba el putty de windows bajo wine. ¿Por qué? Para que el redboot pare el arranque y te haga caso tienes que mandarle un [^C] (control-c) y eso el cliente telnet lo intercepta y no lo manda. El putty al conectar, automáticamente lo hace. En otro caso podría ser una putada, pero aquí por suerte es justo lo que hace falta.

2. Sobre NetworkManager no te puedo ayudar mucho, si revisas el blog verás que lo odio con toda mi alma. Lo que te aconsejo es matarlo o apagarlo. No se que distro usas, normalmente sera algo como "#/etc/init.d/NetworkManager stop" o "# killall NetworkManager". Una vez el cabron ha muerto te das una ip a mano, "# ifconfig eth0 192.168.1.2 up" y enchufas/reinicias la fonera. No deberías tener mucho problema.

Un truco muy bueno es abrirte una consola a la vez que el putty, dejar todo configurado en el putty a falta de dar a connect, empezar un "ping 192.168.1.1" en la consola y entonces enchufar la fonera. En cuanto veas que responde al ping, conectas.