Flashear Linksys WRT54G de forma PERMANENTE

Hace unos meses Linksys, filial de Cisco, sacó al mercado un Punto de Acceso inalámbrico muy interesante, el Linksys WRT54G.

Este Punto de Acceso sería igual a cualquier otro que alcance la misma velocidad como puede ser el C54APT o similar, sin embargo en SeattleWireless indagaron y descubrieron que no sólo se podía poner Linux sino que ya llevaba uno dentro.

En este documento vamos a dejar de lado el hecho de que Linksys violó durante un tiempo la licencia GPL al no proporcionar el código fuente de los binarios que se ejecutaban en dicho Punto de Acceso ya que, a día de hoy, Linksys sí que ofrece parte del código.

Para ir entrando en materia haremos una pequeña descripción de las opciones a priori más llamativas de esta maravilla inalámbrica:

  • CPU MIPS a 125Mhz/200Mhz (dependiendo de la versión)
  • 16 MB RAM
  • Ethernet 10/100 mapeada a 4 puertos de switch
  • Una boca para conectar el modem de cable o un router ADSL
  • 2 conectores de antena RP-TNC (reverse polarity-TNC)
  • Varios LEDS indicadores, uno para cada función

¿Todo esto en el mismo AP? Sí, y por un precio no superior a los 100€ (en España).

Pero empecemos con lo interesante: vamos a toquetear un poco el cacharro antes de flashearlo:

Nada más conectarlo a la luz y al portátil mediante un cable de red directo a una de las 4 bocas de switch, poniendo la IP 192.168.1.2 en el portátil y accediendo por web a 192.168.1.1 vemos que nos pide contraseña:

Una vez introducida la contraseña por defecto (admin) y dejando el usuario en blanco, se nos muestra la primera pantalla de configuración básica:

Donde se nos dejan tocar cuatro cosas como el tipo de clientes a los que vamos a dejar conectar (802.11g, 802.11b o ambos), etc.

Una pantalla interesante es la de administración:

Donde, como vemos, nos deja cambiar la contraseña de administración así como poder hacer uso de SSL a la hora de conectar al interfaz web. Como vemos en la captura, también se nos permite activar/desactivar el soporte UPnP.

Otra interesante sección es la de restricciones de acceso. Podemos editar unas políticas de seguridad donde se nos permite permitir/denegar el acceso según el día y la hora, banear listas de IPs, páginas webs, etc. Bastante decente.

Bien, una vez llegado a este punto uno se puede preguntar: Si el AP es bastante completito…¿por qué podría querer alguien jugarsela y flashearlo? Bueno, pues parafraseando a Paladdin (autor del howto hispano del OpenSTA), porque está muy bien.

Pero realmente yo no me la juego habiendo pagado lo antes mencionado a no ser que vaya a poder sacarle más jugo al bicho en cuestión. Sin embargo, aunque el AP ya lleva una buena cantidad de opciones (hay muchas otras que no hemos mostrado en las capturas como son port forwarding o DMZ), si usamos otro firmware vamos a exprimir al máximo las posibilidades del cacharro.

¿Qué vamos a ganar si nos la jugamos y flasheamos el AP con el firmware Samadhi? Pues, entre otras maravillas vamos a obtener:

  • Sistema de archivos Comprimido para ahorrar espacio
  • Syslogd
  • Telnetd
  • Tftpd
  • Crond
  • WDS
  • OSPF (depende del firmware)
  • Snort (no incluido, pero se puede poner)
  • NoCatAuth (no incluido, pero se puede poner)
  • SSH
  • Control del ancho de Banda tanto de wireless como de los puertos LAN
  • Hack del boot_wait para futuras actualizaciones
  • Kismet (programa para detección de redes (no incluido)
  • TCPdump (otro programa de sniff)
  • SNMP

Aunque como siempre, ahí no acaba la cosa pero es algo que podeis ver vosotros mismos una vez lo hayais flasheado :-).

Y por fin vamos al asunto del flasheo.

FLASHEAR POR PRIMERA VEZ EL WRT54G

* Método Fácil-> Vía WEB

Flashear este cacharro es bastante sencillo (si usamos el método vía web): A diferencia de los USR/SMC que muchos adquirimos hace un año o así y que requerían de flasheo previo mediante tarjeta lineal antes de poder actualizarlo, el WRT54G nos permite subirle un firmware al AP desde el interfaz ASP de la web. Lo bueno del flasheo a diferencia de los USR/SMC es que esta vez al interfaz web no se le quita nada, sino que se le añaden configuraciones nuevas. De esta forma cualquiera puede sacarle partido al bicho y, al ser un flasheo en ROM, no se pirde al reiniciarlo. Esto es importante comprenderlo: si flasheamos NO vamos a perder ni una sóla opción de las que disponíamos antes sino que vamos a AÑADIR muchas y nuevas.

NOTA: Si se te estropea el AP no eches la culpa a ValenciaWireless, échasela al azar porque a nosotros nos funciona super bien así :-).

[NOTA] No es necesario flashear primero con Satori, podemos flashear directamente con Satori si es el que vamos a usar. Es decir, elijamos el que elijamos, sólo se flashea una vez.

De esta forma, los (pocos) pasos para realizar el primer flasheo son los siguientes:

  • Decidir qué firmware vamos a usar (nosotros usamos Satori y funciona de lujo)
  • Bajar el firmware más actualizado que elijamos:
    • Samadhi
  • Arrancar el AP
  • Arrancar un PC y conectarlo a una de las bocas de switch del AP
  • Poner la IP 192.168.1.2 al PC
  • Usar un navegador web para ir a http://192.168.1.1/
  • Autentificarnos (password por defecto: admin, user en blanco)
  • Ir a la parte de Administration -> Upgrade Firmware
  • Seleccionar el firmware que hemos bajado
  • Pulsar Upgrade
  • Esperar unos segundos (entre medio minuto y un minuto aprox)
  • ¡¡LISTO!!

Si todo sale bien, veremos una imagen parecida a esta:

Y si finalmente el proceso no es interrumpido, saldrá un mensaje con las palabras “Upgrade are successful.” junto a un botón “continue”.

Ya tenemos nuestro querido AP flasheado con un firmware que maximiza el potencial del cacharro 🙂

Esa es la manera más fácil de flashear nuestros WRT54G.

IMPORTANTE: Nuestro consejo es que en cuanto flasheeis el WRT54G vayais a la pestaña Administration y activeis la opción boot_wait. Este es nuestro ‘seguro de vida’ de cara a posibles actualizaciones vía web que salieran mal. Activando esto siempre podríamos salvar el AP flasheandolo de forma segura vía tftp (explicado más abajo).

* Método Difícil: Vía Ping Bug

A día de hoy sigue siendo posible usar el ‘ping bug’ descubierto por la gente de Seattle, el cual, aunque Linksys se supone arregló el bug, sigue siendo posible utilizarlo en el firmware 1.42.3. El problema de usar este método es que en cualquier momento puede dejar de funcionar, además de ser bastante más complicado que el anterior (o el siguiente).

No habíamos documentado esto porque teóricamente ya no se podía usar el bug, pero como en Seattle han dicho que se puede, pues lo documentamos :-).

Los pasos a seguir son los siguientes:

  • Ir a la web del router, concretamente a esta: http://192.168.1.1/Ping.asp. Ahí veremos una bonita captura de pantalla como la que sigue:

Ahí se pueden ejecutar comandos, y es posible subir una imágen (firmware) para el bicho, o hacer lo que por ahora sabemos que funciona: ejecutar un comando que active el boot_wait:

;nvram set boot_wait=’on’

Y ejecutamos ese comando. Luego, para guardar cambios:

;nvram commit

Y ale, ya podríamos subir por firmwares por tftp como se explica más abajo.

REFLASHEAR WRT54G

Ahora, y como notas finales, describiremos el proceso para actualizar el AP siguiendo otro método, si bien este proceso sólo se puede seguir una vez se haya flasheado por primera vez el cacharro siguiendo las instrucciones arriba mencionadas. Para aclararlo más: este método NO es necesario a no ser que, una vez flasheado por web quieras mejorar aún más las opciones del AP usando otros firmwares y/o actualizaciones.

Este proceso se cree que es más seguro y por tanto es por ello que lo describimos. Se trata de seguir estos pasos:

  • renombrar el firmware .bin a code.bin
  • ir al interfaz web y en el menu Administration -> Management cambiar esta opción:
    • poner boot_wait a “on”
  • guardar cambios
  • ejecutar el programa linksys-tftp (en windows) o tftp (en linux) y escribir ‘connect ip_del_linksys’
  • Asegurarnos de que el cliente TFTP transferirá en modo BINARIO
  • escribir el comando ‘put code.bin password_del_linksys <– ¡¡¡¡PERO NO PULSAR INTRO!!!!
  • Quitar el cable del AP y volverlo a enchufar, y pulsar enter cuando el primer LED se encienda.

Ya está 😀

Un ejemplo práctico usando el cliente de linux atftp:

$ atftp

tftp> connect 192.168.0.36 (IP del Linksys)

tftp> put code.bin p3p31u (este es el password)

tftp>

Este cliente es un poco parco en palabras y no muestra ningún mensaje de ‘OK’ o similar, pero apreciamos que ha ido todo bien porque durante la transmisión del fichero la luz de Power del AP parpadea de un modo curioso, como diciendonos ‘estoy flasheandome’ hasta que ya se vuelve a quedar fija como siempre.

Si todo ha ido bien ya tenemos nuestro linksys con el firmware de sveasoft metido y a dar caña 😀

El motivo por el cual este método no se puede usar para flashearlo por primera vez es que no disponemos de las opciones a modificar (boot_wait) en el menú asp que nos muestra el AP (podría hacerse usando el Ping Bug descrito más arriba).

QUÉ HACER SI EL FLASHEO SALE MAL

Si durante el primer flasheo por algún motivo se fastidia el invento, la única manera de recuperar el AP que conocemos a día de hoy es reprogramando el PIC que lleva con un firmware correcto. También se podría subir una imagen por tftp siempre y cuando se haya usado el Ping Bug para cambiar el valor de boot_wait a on.

Si estás reflasheando (no es la primera vez que flasheas el AP) y falla, el método para recuperar el AP (aparte de programar el PIC porque esa posibilidad existe siempre) es el siguiente:

Basta con añadir la dirección MAC del AP (está escrita por debajo) a la caché ARP de nuestra máquina, ya que la conexión se hace por UDP y por tanto no hay control ninguno. Una vez añadida la MAC a la caché ARP basta con volver a efectuar el reflasheo por tftp y listo.

TIEMPO DE VIDA DE LA FLASH

Una de las preguntas más frecuentes suele ser: ¿Cuántas veces voy a poder flashear el WRT54G con una nueva imagen? Bien, pues sacado de la FAQ del OpenWRT:

El chip flash que lleva la versión 1.0 de este AP permite un millón de flasheos, lo cual nos da para flashear el AP cada 5 minutos al día durante 10 años seguidos xD.

LISTADO DE SOFTWARE

Visita la Zona de Descargas para elegir los programas y/o firmwares que desees adquirir.

Ale, a dar caña a nuestros WRT54G 🙂

Un saludo y mucha suerte de parte de la gente de valenciawireless.