Instalar DD-WRT en la fonera
De Guifi.net - Wiki Hispano
PASO 1: Acceder a la fonera por SSH
Partimos de una fonera con el firmware de FON 0.7.1 r2.
Entramos en la fonera por web con los siguientes datos:
IP: 169.254.255.1 usuario: root contraseña: admin
Nos vamos a la opción "Avanzado" y modificamos el Modo a "Modo IP
estática". Ponemos una IP que esté dentro del rango de salida a
internet del router, configuramos la puerta de enlace con la IP del
router. Pondremos como Servidor DNS 88.198.165.155 (si no funciona cambia a este: radius01.fon.com) que pertenece a
kolofonium.datenbruch.de, el cual nos redirigirá a un falso servidor
de FON que se encargará de abrir el puerto SSH de nuestra fonera.
Conectamos la fonera a la red para que se produzca el hack.
Ahora ya podremos acceder a la fonera por SSH:
user@localhost:~$ ssh 169.254.255.1 -l root
Este acceso es de forma temporal, el puerto se vuelve a cerrar si
reiniciamos. Como dentro de un rato vamos a necesitar reiniciar lo que
vamos a hacer es editar el firewall y descomentar un par de lineas para
abrir el puerto:
root@OpenWrt:~# vi /etc/firewall.user ### Open port to WAN ## -- This allows port 22 to be answered by (dropbear on) the router iptables -t nat -A prerouting_rule -i $WAN -p tcp --dport 22 -j ACCEPT iptables -A input_rule -i $WAN -p tcp --dport 22 -j ACCEPT
Renombramos el demonio de SSH para que arranque al reiniciar:
root@OpenWrt:~# mv /etc/init.d/dropbear /etc/init.d/S50dropbear
Editamos el archivo thinclient y comentamos la siguiente linea para
evitar que FON nos envíe actualizaciones:
root@OpenWrt:~# vi /bin/thinclient #. /tmp/.thinclient.sh
PASO 2: Activar Redboot
Redboot es el programa que utilizaremos para cambiar el kernel. El Vasavsky nos envía la fonera con el redboot capado por ethernet, así que lo que haremos es cambiar el kernel por uno con el redboot en plenas facultades.
Para ello nos conectamos por SSH a la fonera y hacemos lo siguiente:
root@OpenWrt:~# cd /tmp root@OpenWrt:~# wget http://fonera.info/camicia/openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma root@OpenWrt:~# mtd -e vmlinux.bin.l7 write openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma vmlinux.bin.l7 root@OpenWrt:~# reboot
Una vez reiniciada la fonera volvemos a acceder por SSH y escribimos la
configuracion de redboot:
root@OpenWrt:~# cd /tmp root@OpenWrt:~# wget http://fonera.info/camicia/out.hex root@OpenWrt:~# mtd -e "RedBoot config" write out.hex "RedBoot config" root@OpenWrt:~# reboot
Ahora la fonera ya no volverá a arrancar más. Solo tendremos acceso a
RedBoot. RedBoot utiliza la IP 192.168.1.254 y el puerto 9000.
Configuraremos nuestra tarjeta de red con una IP del rango 192.168.1.x. Podremos acceder a RedBoot por telnet durante los 10 primeros segundos de arranque de la fonera. Así que lo que haremos es preparar en nuestra máquina el siguiente comando:
user@localhost:~$ telnet 192.168.1.254 9000
Ahora desenchufamos la fonera y la volvemos a enchufar, pulsamos enter
para ejecutar telnet. Nos aparecerá la shell de RedBoot:
RedBoot>
PASO 3: Flashear
Ahora ha llegado el momento de instalar DD-WRT. En primer lugar necesitamos tener un servidor tftp en nuestro equipo. Podemos utilizar tftpd-hpa:
user@localhost:~$ apt-get install tftpd-hpa
Lo configuramos editando el archivo /etc/default/tftpd-hpa:
user@localhost:~$ vi /etc/default/tftpd-hpa #Defaults for tftpd-hpa RUN_DAEMON="yes" OPTIONS="-l -s /var/lib/tftpboot"
Donde /var/lib/tftpboot es el directorio donde pondremos los archivos que descargaremos desde http://www.dd-wrt.com.
user@localhost:~$ cd /var/lib/tftpboot (si no existe lo creamos) user@localhost:~$ wget http://www.dd-wrt.com/dd-wrtv2/downloads/beta/FONERA/2007%20-%200803/fonera-firmware.bin user@localhost:~$ wget http://www.dd-wrt.com/dd-wrtv2/downloads/beta/FONERA/2007%20-%200803/root.fs user@localhost:~$ wget http://www.dd-wrt.com/dd-wrtv2/downloads/beta/FONERA/2007%20-%200803/vmlinux.bin.l7
Llegados a este punto ya solo queda conectarse al RedBoot de la fonera mediante telnet e indicamos cual es la IP del servidor tftp (en el ejemplo 192.168.1.2):
RedBoot> ip_address -l 192.168.1.254/24 -h 192.168.1.2
Ahora flasheamos ejecutando los siguientes comandos:
RedBoot> fis init RedBoot> load -r -v -b 0x80041000 root.fs RedBoot> fis create -b 0x80041000 -f 0xA8030000 -l 0x002C0000 -e 0x00000000 rootfs RedBoot> load -r -v -b 0x80041000 vmlinux.bin.l7 RedBoot> fis create -r 0x80041000 -e 0x80041000 vmlinux.bin.l7 RedBoot> fis create -f 0xA83D0000 -l 0x00010000 -n nvram RedBoot> reset
Y ya tenemos funcionando dd-wrt. Podemos acceder por web a la IP 192.168.1.1 a la interfaz con el usuario root y la contraseña admin.