1 de Septiembre, 2007

Hacking con la Fonera

Últimamente no cacharreo nada ni con nada, así que ayer por la tarde me lo pasé genial jugando con la Fonera, el dispositivo wireless original que está utilizando Fon para sustituir los magníficos Linksys fon enabled que usaban en los arranques del proyecto.

Tenía la caja apartada desde primeros de Enero, cuando la quedada menéame en Bilbao. Me la trajo Carme porque se la regalaron y ella no la usaba y le daba un poco de cosa tener el cacharro apartado sin ningún uso, y pensó que igual yo le daba salida. Al final la culpabilidad de no tocarla me ha podido :D, así que me he puesto a ver qué se podía sacar de este dispositivo.

Ya hay buenos análisis del hardware de la fonera, así que no voy a contar aquí nada que no se sepa.

Mi fonera
Qué regalos mas chulos hace Carme :*

Lo primero que llama la atención es que es un dispositivo muy compacto, y eso no tiene porqué ser bueno. Las sospechas se confirman cuando lo enchufas un rato: se calienta. No sé hasta que punto es demasiado, pero ya he tenido experiencias con otros dispositivos que tienen esta característica y, muchas veces, es un problema.

Tras un contacto inicial, que consiste en configurar WPA con la clave del aparato (debajo, en una pegatina) y adivinar que el usuario/contraseña del interfaz web es admin/admin, busqué cómo romper la fonera, esperando que no fuera demasiado literal ;).

Con mi versión de la firmware (0.7.1 R1, si no me equivoco), solo funcionó el tercer método para conseguir abrir el SSH.

La verdad es que me deja una sensación de chapuza que se haya entregado al cliente final un producto con estos fallos tan elementales. Básicamente indicamos en un campo de formulario con $(comando) lo que queremos ejecutar :o.

Esto es porque la funcionalidad de la administración web se consigue mendiante script en BASH, y no se filtra adecuadamente la entrada el usuario. Por fortuna esto no se puede hacer si no proporcionamos antes usuario/contraseña en la autentificación HTTP, sino sería muy grave (lo dejamos solo en grave, y asumo que ya estará corregido).

Una vez que tenemos acceso SSH, ya estamos dentro y es un OpenWrt (una distribución de Linux para dispositivos empotrados), con lo que podemos hacer casi cualquier cosa que queramos.

Además, gracias al uso de mini_fo, resulta muy fácil hacer modificaciones porque los cambios van a la memoria persistente de forma transparente.

La verdad es que podría haber documentado los cambios que he hecho, pero han sido tantos y de una forma tan experimental, que no ha merecido la pena. Básicamente quería ver si podía usarse el aparato como un router normal haciendo puente entre 802.11b/g y 802.3.

Lo he conseguido, en muchos casos, mediante la manipulación de lo que nos encontramos en /etc/init.d/, y en otros modificando aquí y allá diferentes scripts:

  • Desactivación de la función call home: para que Fon no juegue con mi aparato ;). Eso de descargar automáticamente un script del fabricante y ejecutarlo no me ha gustado demasiado, hubiera sido más correcto informar al usuario de que hay actualizaciones y que él decida, ¿no? Todo en mi modesta opinión, claro.
  • Elimiar la comprobación de conectividad con Internet: parecido al punto anterior. Si hay conectividad o no, vale... pero no tiene porqué comprobarse llamando a Fon.
  • Hacer que el SSH sea permanente: con un enlace simbólico de dropbear a S50dropbear.
  • Desactivar chillispot: ya que no me interesa trabajar con Fon, no necesitaré el portal cautivo.
  • Desactivar la wireless pública: por lo mismo del punto anterior. He modificado algo el cortafuegos de Fon (/etc/firewall.fon), para evitar problemas por quitar el interfaz, pero sin saber qué he hecho, funciona :D.
  • Usar un DNS que no sea de Fon: me da igual el que sea, pero mejor el de mi ISP :).

Finalmente he dejado el caché DNS, porque se emplea dnsmasq, que también proporciona la funcionalidad de servidor DHCP, y la interfaz web (por comodidad, aunque ya no funcione todo tras mis cambios, y solo en la red wireless privada con cifrado WPA). Ahora mismo no recuerdo qué más he tocado, ha sido una tarde intensa :).

La verdad es que el aparato me ha sorprendido gratamente y, aunque no se presta mucho a modificaciones (lástima, son 183.50 BogoMIPS con 16MB de RAM y una flash de 8MB, con un chip Atheros con soporte para dos SSID), siempre hay alguien dispuesto a intentarlo. Pero para los usuarios normales como yo, el soft da más que suficientes posibilidades.

En definitiva he conseguido reciclar la fonera, que de otra forma no usaría para nada, y darle utilidad como router wireless, aunque sea limitado (solo tiene una boca ethernet). También podría haberla reflasheado con un OpenWrt (era más arriesgado y menos divertido), y en Elche tengo un Liksys un un NetAC, pero ¡y lo bien que me lo he pasado!

Anotación por Juan J. Martínez, clasificada en: wireless, hack.

Hay 3 comentarios

Gravatar

Pues tienes mucha info útil aquí: fonera.info

A disfrutarla. :)

por corsaria, en 2007-09-02 10:20:12

Gravatar

Buena entrada, es hora de jubilar muro como enrutador casero, con unas pegatinas y todas estas ideas será más sencillo.

por r0sk, en 2007-09-03 09:39:03

Gravatar

La verdad es que cambia esquemas... cuando un cacharro así de pequeño puede tener esa configuración de hard, las reglas del juego no son las de hace unos años.

Aquí en casa Plácido tiene un Linksys para el tema wireless... ¡y es capaz de hacer QoS a nivel de aplicación! (con dd-wrt), y un NAS (con Linux también), con un HDD USB conectado que no para de llenarse (torrent 7x24).

No sé, pero para la carga que tiene blackshell, igual con una configuración similar sería más que suficiente, y además en menos espacio, ruido y probablemente consumo.

por Juanjo, en 2007-09-03 10:45:16

Los comentarios están cerrados: los comentarios se cierran automáticamente una vez pasados 30 días. Si quieres comentar algo acerca de la anotación, puedes hacerlo por e-mail.

Algunas anotaciones relacionadas: