Instalando OpenWrt en la Fonera (y II)

fonBueno. Vamos a terminar con esto que dejamos a medias hace un par de días que no me gusta dejar las cosas incompletas. Haciendo un breve repaso de la situación, si lo que quieres es una fonera pero más controladita no sigas leyendo y quédate donde lo dejamos en el anterior texto. Si prefieres jugar con un router inalámbrico más serio acompáñame en los siguientes párrafos.

Empezamos por los preliminares. Vamos a necesitar un servidor tftp, una especie de FTP sencillote que suele usarse como sistema de actualización en dispositivos con pocos recursos como este. En Linux puedes usar fácilmente el tftpd y en Debian o distribuciones derivadas (Ubuntu, Kubuntu, etc.) es tan fácil como instalar los paquetes apropiados (sudo apt-get install tftp tftpd xinetd) y crear un fichero de configuración llamado tftp dentro del directorio /etc/xinet.d con el siguiente contenido:

service tftp
{
protocol = udp
port = 69
socket_type = dgram
wait = yes
user = nobody
server = /usr/sbin/in.tftpd
server_args = /tftpboot
disable = no
}

Ahora debemos de crear el directorio que hemos indicado como raíz de nuestro servidor tftp (sudo mkdir /tftpboot), y cambiar sus permisos y propietario (sudo chmod -R 777 /tftpboot; sudo chown -R nobody /tftpboot). Dentro de ese directorio dejaremos los dos ficheros que nos harán falta para sustituir el firmware de la fonera que son openwrt-atheros-2.6-vmlinux.lzma y openwrt-atheros-2.6-root.squashfs. Muy importante: hay que dejarlos “a pelo” en el mismo directorio ya que el tftp no reconocerá ninguna estructura jerárquica. Por último en cuanto a este paso, reiniciamos el servicio xinetd que es el que da soporte a nuestro tftp (sudo /etc/init.d/xinetd restart) y volvemos con la fonera.

Lo primero que necesitamos es instalar Redboot. El procedimiento a seguir, en dos pasos y con un reinicio de por medio, puede verse en los dos siguientes pantallazos de mi terminal:

instalando redboot en la fonera
instalando redboot en la fonera

Para facilitar los “corta y pega” los comandos son estos:

cd /tmp
wget http://fonera.info/camicia/openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma
mtd -e vmlinux.bin.l7 write openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma vmlinux.bin.l7
reboot

Después del reinicio nos conectamos de nuevo y ejecutamos la segunda parte:

cd /tmp
wget http://fonera.info/camicia/out.hex
mtd -e “RedBoot config” write out.hex “RedBoot config”
reboot

Después de esto nuestra fonera arrancará con Redboot y con la dirección IP 192.168.1.254. El acceso a Redboot solamente puede hacerse durante los primeros segundos una vez que el sistema arranque con lo cual es importante que estemos atentos (aunque, si nos despistamos, no pasa nada: apagamos la fonera y volvemos a intentarlo). El acceso a Redboot ha de hacerse por telnet y a través del puerto 9000.

El proceso completo, desde la conexión a Redboot hasta el reset final puede verse en el siguiente pantallazo:

instalando openwrt en la fonera

Igualmente, los comandos y unas aclaraciones a los mismos:

ip_address -l 192.168.1.254 -h 192.168.1.5
load -r -b %{FREEMEMLO} openwrt-atheros-2.6-vmlinux.lzma
fis init
fis create -e 0x80041000 -r 0x80041000 vmlinux.bin.l7
fis free
load -r -b %{FREEMEMLO} openwrt-atheros-2.6-root.squashfs
fis create -l 0x6f0000 rootfs
reset

En la primera línea es en la que definimos la conexión con el servidor tftp. La primera IP que aparece es la de nuestra fonera y la segunda la de la máquina que aloja al servidor. El otro comando al que hay que prestar atención es el que aparece en la línea 7. Es el momento en que decimos la dirección de memoria donde debe de ubicar la raíz del sistema de ficheros. La dirección hexadecimal que ahí aparece no es arbitraria: es el resultado de restar las dos direcciones que nos devuelve como resultado el comando de la línea 5 (fis free). En mi caso y (en casi todos los ejemplos que he visto en Internet) estos valores son 0xA80F0000 y 0xA87E0000 y por tanto el resultado es el 0x6f0000 que aparece en el comando de la línea 7. Poned atención por si acaso y, si lo necesitáis, ajustad el cálculo vosotros mismos.

Una última advertencia: algunos de los comandos anteriores se demoran bastante (más de 15 minutos en algunos casos). No os impacientéis y no rompáis el proceso ni apaguéis la alimentación de la fonera en el transcurso de estas esperas.

El primer arranque de OpenWrt se hace con el wifi deshabilitado y asignando la dirección 192.168.1.1 a la ethernet de la fonera. Esto posiblemente entrará en conflicto con nuestro router si tenemos una instalación corriente, así que este primer arranque conviene hacerlo con la fonera conectada directamente por cable con nuestro ordenador el cual habremos configurado manualmente con una IP adecuada. La primera conexión deberemos de hacerla por telnet y una vez que asignemos una contraseña al usuario root (con el comando passwd) el acceso por telnet se deshabilitará y las conexiones subsiguientes podremos hacerlas ya por ssh como está mandado:

nuestro primer acceso a openwrt en la fonera

Y listo. Nuestro nuevo router ya está disponible. Ahora toca configurarlo y para eso hay muy buenos recursos en la red. Yo sólo os voy a ayudar a dar los primeros pasos para que los menos habituados a estas lides no se frustren nada más empezar ¿de acuerdo?

Lo primero que necesitamos es reconfigurar el interface ethernet. Para ello editamos con vi el fichero /etc/config/network y allí modificamos la opción correspondiente a la dirección IP y completamos la configuración al menos indicando el router y el dns que queremos que use. El resultado final de este fichero debe de quedar más o menos así:

# Copyright (C) 2006 OpenWrt.org

config interface loopback
option ifname lo
option proto static
option ipaddr 127.0.0.1
option netmask 255.0.0.0

config interface lan
option ifname eth0
option type bridge
option proto static
option ipaddr 192.168.1.4
option netmask 255.255.255.0
option gateway 192.168.1.1
option dns 192.168.1.1

Salvamos los cambios y reiniciamos la red (/etc/init.d/network restart). Después de esto perderemos la conexión de la sesión de ssh (le hemos cambiado la dirección IP al dispositivo, recordad) pero ya podremos integrarlo directamente a nuestra red y en la próxima conexión que hagamos tendrá acceso a Internet, lo cual nos resulta imprescindible para el siguiente paso: instalarle una interfaz web para su gestión.

OpenWrt usa un sistema de gestión de paquetes denominado ipkg que en líneas generales resulta muy similar a nuestro familiar apt-get pero que es mucho más ligero y, por tanto muy adecuado para este tipo de dispositivos. Para actualizar los paquetes del sistema, por ejemplo, ejecutamos ipkg update y a continuación ipkg upgrade. Os suena mucho ¿verdad?

root@OpenWrt:~# ipkg update
Downloading http://downloads.openwrt.org/kamikaze/7.09/atheros-2.6/packages/Packages
Updated list of available packages in /usr/lib/ipkg/lists/release
Downloading http://downloads.openwrt.org/kamikaze/packages/mips/Packages
Updated list of available packages in /usr/lib/ipkg/lists/packages
Done.
root@OpenWrt:~# ipkg upgrade
Nothing to be done
Done.
root@OpenWrt:~#

Para instalar X-Wrt, que es la interfaz web de gestión que usa OpenWrt, necesitamos editar el archivo /etc/ipkg.conf y añadirle la siguiente línea:

src X-Wrt http://downloads.x-wrt.org/xwrt/kamikaze/7.09/atheros-2.6/packages

A continuación volvemos a actualizar la base de datos de paquetes (ipkg update) e instalamos el paquete webif (ipkg install webif):

instalando x-wrt en la fonera

Ahora, si ya estamos un poco aburridos de la línea de comandos, podemos continuar a través de esta interfaz web escribiendo en nuestro navegador la dirección que le hemos asignado al dispositivo y usando como usuario de acceso root y la contraseña que le hayamos puesto al mismo. Echadle un vistazo y ya veréis que diferencia en cuanto a posibilidades con respecto a lo que teníamos originalmente…

acceso a la fonera con x-wrt

Sólo os acompaño en una cosa más y ya os dejo solos. Hasta ahora tenemos un router wifi… pero sin wifi ya que este sigue desactivado. Para arreglar esto entramos en Network, seleccionamos Wireless, marcamos la opción de Radio en ON, modificamos, si así lo queremos, el ESSID que trae por defecto, salvamos los cambios y, que no se nos olvide, los aplicamos hasta que la opción de “review changes” esté vacía (esto puede precisar más de una aplicación de cambios). En unos segundos nuestros dispositivos wifi detectarán la nueva señal que, por el momento, está totalmente abierta y sin cifrado alguno.

acceso wifi a openwrt

Para activar el cifrado, en la misma página donde estamos hay un selector marcado como Encription Type que tiene seleccionada la opción de Disabled. Elegimos, por ejemplo, WPA2 (PSK), cumplimentamos la clave que usará el cifrado en el casillero WPA PSK que nos aparece tras haber hecho la elección y se nos solicita que elijamos entre dos paquetes diferentes para su instalación: uno que sólo sirve para PSK y PSK2 llamado HostAPD-Mini y otro que incluye también la opción de autenticación mediante un servidor RADIUS (HostAPD). Elegimos el que creamos conveniente (yo he escogido el segundo porque la autenticación mediante RADIUS es una de las cosas con las que me apetece jugar) pulsando sobre el botón adecuado y listo.

cifrando el acceso wifi en openwrt

No os asustéis por el final del proceso que concluye mostrando en el navegador el fichero .sh que ha ejecutado en el dispositivo. Pulsar la flecha atrás de vuestro navegador y volveréis a la página de configuración de la interfaz inalámbrica del OpenWrt. Si ahora pulsamos F5 veremos que tenemos cambios por revisar. Los aplicamos y con esto nuestra conexión inalámbrica ya estará lista para ser usada de forma segura.

Y ahora ya si que os dejo que sigáis jugando solos 😉

Toda la documentación que he utilizado y algunos extras adicionales están en el tag fonera de mi del.icio.us. Hay cosas realmente interesantes. Echadles un vistazo si queréis aprender un poquito más o explorar otras posibilidades.

10 comentarios sobre “Instalando OpenWrt en la Fonera (y II)”

  1. Josu: El cable es el mismo que has necesitado previamente para conectarte a la fonera e instalar el Redboot, así que si hasta ahí te ha funcionado estás usando el correcto ¿vale?

    Por lo demás, trata de ver en que estado estás: ¿Puedes hacerle un ping a la dirección 192.168.1.254 o ni siquiera te funciona eso?¿Tal vez no le has instalado correctamente el Redboot y puedes conectarte a ella con la IP que tuvieras anteriormente?

  2. Hola, he estado sigueindo los pasos, pero creo que la he cagado.

    He hecho todo como indicas y todo me ha ido bien, el problema viene cuando necesito entrar al router por RedBoot, no me detecta el 192.168.1.254

    Y si lo dejo que cargue del todo no me aparecen los wifis. Como lo puedo solucionar?

    El cable que tengo que utilizar para conectar el router con el PC es cruzado??? O con uno normal ya basta???

    Gracias por todo.

  3. Ya tengo instalado kamikaze x-wrt pero, ¿como hago un reset?.
    A veces probando configuraciones pierdo la comunicacion con mi aparato y ya aburrido le vuelvo a cargar el firmware de nuevo. He leido algo de fail safe mode pero no me queda claro.
    Saludos

  4. Jose: la IP con la que te conectas a ella después de cambiar el fichero de configuración de los interfaces de red y reiniciar el servicio es la que tú pongas en el campo “option ipaddr”. En el ejemplo es 192.168.1.4. Y, muy importante, la configuración que pongas aquí debe de ser coherente con la de la red del ordenador desde el que te quieres conectar. En cuanto a los cables, hay una regla fácil para los novatos: para unir dispositivos similares (un ordenador con otro, un router con otro) usa cable cruzado mientras que para dispositivos diferentes (ordenador con router) debes de usar cable directo.

  5. Hola a todos, he seguido este proceso para abrir la fonera, y como soy novato me atranco despues de configurar “/etc/config/network”.
    Despues de esto soy incapaz de conectarme a la fonera.
    Que ip uso) como la conecto al router, con cable cruzado o directo? como conecto el router al ordenado con cable cruzado o directo?
    Gracias por todo, esto me pasa por ser novato en estos temas y querer liberar una fonera. 😀

  6. Lo mejor es tener más de una Manuel 🙂 Yo tenía cinco: una la pagué y las otras cuatro me las regalaron en distintas promociones. He regalado dos y de las tres que me quedan ahora tengo dos con OpenWrt y la otra es una fonera “domesticada”. Si me hago con alguna otra la convertiré en un reproductor de mp3 que lo he visto por ahí y mola 🙂

  7. Eres mala persona… 😛

    Ahora por tu culpa me ha entrado el gusanillo de destripar mi fonera y toquetearla para cambiarle el firmware… 😉

    Bueno… ¿qué tal el funcionamiento con el OpenWRT?… ¿mejor que con el original?
    ¿qué nuevas funcionalidades te aporta?…

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *