PARTE I

Hola a todos,

Al final me he liado un poco y me ha salido un documento un poco raro. Lo voy a dividir en tres partes y que los moderadores decidan si lo dejan como está, lo modifican o lo que quieran. En la primera, algo así como "Flashear la Fonera"; la segunda, como configurar WOL en OpenWrt accesible desde un navegador web; y la tercera, como securizar todo el asunto con ssh.

La primera parte es bastante detallada, en la segunda asumo que la gente o ya sabe o ha aprendido a cabezazos ;-)

La segunda parte, mañana.

Lo siento, no hay imágenes, y además, al pegar el documento ha perdido el formato...

PARTE I


NOTA: No recomiendo seguir este tutorial a menos que se entienda lo que se está haciendo (yo no entendí la mitad :)
Al redactar de memoria, me puedo haber saltado, equivocado u omitido algún paso. Existe el riesgo de inutilizar la Fonera. No me hago responsable de errores u omisiones en este documento, que debe ser tomado como una guía orientativa.
En resumen: "esto es lo que hice yo y a mí me funcionó".


1. Introducción

¿Por qué?

- El router de 3Com no permite el pass-trhrough de magic-packets para despertar equipos mediante WOL
- El router 3Com no tiene interfaz ssh


¿Qué he querido hacer?

- Instalar un equipo (router Fonera con OpenWrt, un pequeño sistema operativo Linux muy versátil, pero orientado a manejar routers) conectado al router 3Com como si fuera un ordenador en la LAN

- Configurar la Fonera para emitir paquetes WOL dentro de mi LAN y para aceptar conexiones SSH a través del router 3Com.

- Conectarme de forma remota con el sistema de mi casa desde Internet para:
a) Despertar de la hibernación a mi PC principal
b) Conectarme con él mediante Remote Desktop, de forma segura, para poder acceder a los recursos de mi red desde cualquier lugar.


Disposición final de los equipos

- Router 3Com conectado a Internet (a Ya.com)
- Fonera conectada al router 3Com por cable ethernet
- PC de sobremesa conectado al router 3Com por cable ethernet
- Fonera con OpenWrt Kamikaze 7.0.6


Software/ficheros que es recomendable descargar antes de empezar

Redboot
http://ipkg.k1k2.de/hack/openwrt-ar531x ... MICIA.lzma
http://ipkg.k1k2.de/hack/out.hex

Servidor de ficheros TFTP (instalar en Windows)
http://tftpd32.jounin.net/tftpd32_download.html

OpenWrt Kamikaze 7.0.6:
http://downloads.openwrt.org/kamikaze/7 ... linux.lzma
http://downloads.openwrt.org/kamikaze/7 ... t.squashfs

Software de terminal Putty
http://the.earth.li/~sgtatham/putty/lat ... /putty.exe


Direcciones IP
Supondremos que el router 3Com tiene la IP 192.168.1.1. Direcciones del rango, 192.168.1.+ número entre 2 y 253


Nombres
Fonera = Fonera
Router = router 3Com
PC = equipo con tarjeta ethernet (Windows XP. En Linux sólo hay que utilizar sw. y comandos equivalentes)
WiFi = adaptador de red WiFi de PC, o bien otro equipo con adaptador WiFi



2. Flasheado de la Fonera

Hay tres pasos fundamentales:

- Conseguir acceso por ssh a la Fonera y hacer los cambios permanentes para poder volver a entrar por ssh, aún después de desconectar la Fonera de la electricidad. El hack abre el puerto ssh de forma temporal, hasta que hay un reinicio)
- Modificar la configuración del gestor de inicio Redboot para poder acceder por ssh a través del cable ethernet conectado al router (y no directamente PC-Fonera)
- Instalar el firmware OpenWrt

En Google encontraréis un montón de tutoriales sobre el tema. Os recomiendo que primero os leais varios de ellos, aunque sólo sea para familiarizaros con los pasos. Al final no es tan complicado pero hay muchas variables diferentes en juego, por lo que hay que tener paciencia.

El router que me dejaron es una Fonera 2200, firmware 0.7.1 r2. He utilizado el llamado "hack Kolofonium". Yo me basé en tres tutoriales distintos, cada uno de ellos para una parte del flasheado, porque me pareció lo más adecuado.

Un fallo común en los tutoriales que visité es que no indican que hay que esperar varios minutos al:
• permitir que conectar la Fonera se conecte a Internet
• permitir que la Fonera actualice el firmware falso de Kolofonium
• reiniciar la Fonera. En ocasiones tarda en arrancar

Otro problema con el que me encontré es que el router 3Com (no se si con otros también) definitivamente tiene un problema con la asignación de IPs mediante DHCP. Se puede ver con un sniffer que no se entiende bien con la Fonera.

Para el tema del flasheado ecesitamos un ordenador que tenga tarjeta ethernet y además una tarjeta wifi. (en mi caso, yo tenía un PC de sobremesa y un portátil con WiFi). Si sólo tenéis un equipo, deberéis tener cuidado a la hora de configurar las IPs en los distintos interfaces, según se hable de la conexión Wifi o de la conexión ethernet.

La Fonera debe haber sido activada, ya que sino no se conectará a Internet, parte fundamental de éste hack. Para activarla, conectarse a la red WiFi interna ‘MyPlace’ y escribir el número de serie (S/N, en la pegatina inferior) cuando lo pida la conexión (seguir las instrucciones de la Fonera).



2.1 Conseguir acceso por ssh
Extraído del completo tutorial de 'Nitz' en:
http://blogantastico.blogspot.com/2007/ ... patas.html

La idea es engañar a la Fonera, cambiando la dirección IP desde la que se baja las actualizaciones (cosa que intenta hacer cada vez que se reinicia y posteriormente cada hora). Para eso, conectaremos la Fonera al router como si fuera un PC, dándole una IP del rango del router, indicándole la dirección del router, y poniendo una dirección falsa de DNS.

IMPORTANTE 1: esperar a que la Fonera se ‘actualice’ (¿diez minutos?)
IMPORTANTE 2: si se desenchufa la Fonera, se pierde el hack que acabamos de hacer

1. Conectar Fonera-PC mediante un cable ethernet cruzado. Es un cable especial, 7 euros según tiendas. En algunos foros dicen que no es necesario. Como yo tenía uno y para evitar problemas, usé uno cruzado.

2. Configurar la IP del PC a 169.254.255.5
• Menú
Inicio/Configuración/Conexiones de red/Conexión de área local

• Seleccionamos en la ventana
Protocolo Internet TCP/IP – Propiedades

• Usar la siguiente dirección IP 169.254.255.5 (la máscara la pone el PC automáticamente)

• Pulsar
Aceptar

• Pulsar
Aceptar

3. Abrir una ventana de Internet Explorer y conectar a la web de configuración de la Fonera
• Abrir un Internet Explorer

• Escribir en la barra de dirección
http://169.254.255.1

• Ir a
Advance/Internet connection

• Escribir en el formulario
IP: 192.168.1.10
Netmask: 255.255.255.0
Gateway: 192.168.1.1 [nota: sustituir por la IP de vuestro router]
DNS server: 88.198.168.155 [nota: dirección desde la que se descargará el firmware falso ‘Kolofonium’]

• Pulsar
Submit

• Esperar 10 segundos


4. Permitir que la Fonera se conecte a Internet para descargarse el falso firmware

• Quitar el cable de electricidad de la Fonera

• Conectar con un cable ethernet normal el router a la Fonera

• Conectar el cable de electricidad de la Fonera

• Con el ordenador que tenga conexión WiFi, abrir
Inicio/Configuración/Conexiones de red/Conexiones de red inalámbricas

• Pulsar el botón
“Ver redes inalámbricas”

• En la lista, debéis ver la red wifi interna de la Fonera
My Place

• Pulsad la opción arriba a la izquierda
Actualizar lista de redes

• Repetir el paso anterior hasta que aparezca la red wifi (externa) de la Fonera esperando como 1/2 minuto entre actualizaciones de la lista de redes inalámbricas.
FON_AP
-----
En estos momentos se ha instalado un hack en la Fonera que ha abierto el puerto ssh. NO DESENCHUFÉIS LA FONERA DE LA ELECTRICIDAD. Si lo hacéis, tenéis que volver a empezar porque se pierde el hack. Aún no lo hemos hecho permanente.
-----

5. Conectarse por ssh a la Fonera

• Con el ordenador que tenga conexión WiFi, abrir
Inicio/Configuración/Conexiones de red/Conexiones de red inalámbricas

• Pulsar el botón
“Ver redes inalámbricas”

• En la lista, debéis ver la red wifi interna de la Fonera
My Place

• Pulsad la opción arriba a la izquierda
Actualizar lista de redes

• Repetir el paso anterior hasta que aparezca la red wifi (externa) de la Fonera esperando como 1/2 minuto entre actualizaciones de la lista de redes inalámbricas.
FON_AP

-----
Es posible que la red FON_AP tarde en aparecer. Aquí hay algún problema con el 3Com. En ocasiones, sale enseguida, en ocasiones no, y en otras ocasiones el router se cuelga totalmente y deja de funcionar. Mi recomendación: sin tocar nada, desenchufar el router 3Com, esperar 4 segundos y volver a encenderlo. Volver a actualizar redes hasta que aparezca FON_AP
-----
• Desenchufar el cable de red ethernet de la Fonera al router

• Configurar el adaptador WiFi para que acepte IPs dinámicas por DHCP (enviadas desde la Fonera)
Inicio/Configuración/Conexiones de red/Conexiones de red inalámbricas

• Seleccionamos en la ventana
Protocolo Internet TCP/IP – Propiedades

• Seleccionar
Obtener una dirección automáticamente

• Pulsar
Aceptar

• Pulsar
Aceptar

• Abrir “Putty”

• Escribir la IP del interfaz WiFi de la Fonera en Host Name (or IP address)
192.168.10.1

• Seleccionar
SSH [nota: puerto 22]

• Pulsar
Open

• Debe aparecer una ventana negra, y a los tres o cuatro segundos, un
Login:

• Escribimos
root + [Intro] + admin + [Intro]

Si aparece el logo ‘Fon’ en ASCII, hemos conseguido acceso ssh. Ahora hay que hacer que los cambios sean definitivos para poder reiniciar la Fonera sin tener que repetir todo lo anterior.

---
Si no tenéis práctica con el ‘vi’ (editor de texto *nix) os recomiendo hacer un backup de todos los ficheros que vayáis a tocar:
cp nombreFichero nombreFichero.bak
---

2.2 Hacer los cambios de ssh permanentes
-----
Si algo va mal, os recomiendo que salgáis del fichero sin grabar:
Pulsar [Esc] + : + q + !
-----
1. Hacer que se ejecute el servidor de ssh (‘dropbear’) en cada rearranque
ln -s /etc/init.d/dropbear /etc/init.d/S50dropbear

2. Permitir en el firewall el acceso a través del puerto 22
Editar el fichero de reglas
vi /etc/firewall.user

Movernos con las flechas hasta las líneas
# 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

Quitar las almohadillas pulsando la “d”

Grabar el fichero pulsando “[Esc] + : + w + q + ! “

3. Permitir el acceso por el interfaz ethernet
Añadir estas dos líneas a continuación de las dos anteriores. Copiais una línea con “[Ctrl] + c”, en la ventana de ‘vi’, pulsáis la tecla ‘i’ y luego el botón derecho del ratón, pulsáis “[Esc]” y repetís con la otra línea.
iptables -t nat -A prerouting_rule -i $LAN -p tcp –dport 22 -j ACCEPT
iptables -A input_rule -i $LAN -p tcp –dport 22 -j ACCEPT

Grabar el fichero pulsando “[Esc] + : + w + q + ! “

4. Desactivar actualizaciones del firmware “de verdad” de la Fonera
Editar el script thinclient
vi /bin/thinclient

Movernos con las flechas hasta la última línea
. /tmp/.thinclient.sh

Comentamos la línea con #: ir al principio de la línea, pulsar “i + # + [Esc] + : + w + q”


2.3 Instalar configuración de Redboot
Extraída una parte del blog de Daniel Estévez
http://barrapunto.com/~Daniel%20Estvez/bitacora

Ahora la Fonera está conectada a Internet a través del router, y vosotros a la Fonera por wifi. Hay que subir dos ficheros a la Fonera. Lo más sencillo es hacer que la Fonera se los descargue por Internet mediante 'wget', aunque hay otros métodos (TFTP, más adelante).

1. vmlinux.bin.l7
Escribís lo siguiente en el terminal Putty conectado a la Fonera:
cd /tmp
wget http://ipkg.k1k2.de/hack/openwrt-ar531x ... MICIA.lzma
mtd -e vmlinux.bin.l7 write openwrt-ar531x-2.4-vmlinux-CAMICIA.lzma vmlinux.bin.l7
reboot
Esperáis un par de minutos y volvéis a conectaros por ssh como en 2.1.5

2. out.hex
wget http://ipkg.k1k2.de/hack/out.hex
mtd -e 'RedBoot config' write out.hex 'RedBoot config'
reboot

Esperáis un minuto y desenchufáis la Fonera.
Hemos instalado el Redboot y cambiado la configuración para poder acceder a Redboot por ethernet.


2.3 Acceder a Redboot
Extraída una parte de:
http://www.galpon.org/wiki/index.php/Fonera_Openwrt

Conectaremos la Fonera al PC por ethernet, para acceder al cargador de arranque Redboot. Según Foneras y configuraciones de Redboot, hay entre 2 y 10 segundos para enviar la conexión con el Putty.

1. Conectar la Fonera por ethernet al PC

2. Configurar la IP del PC a una de la red del Redboot

• Menú
Inicio/Configuración/Conexiones de red/Conexión de área local

• Seleccionamos en la ventana
Protocolo Internet TCP/IP – Propiedades

• Usar la siguiente dirección IP 192.168.1.5 (la máscara la pone el PC automáticamente)

• Pulsar
Aceptar

• Pulsar
Aceptar

3. Abrir Putty y escribir:
Host Name or IP address: 192.168.1.254

------
Nota: en algunos tutoriales, según la configuración del Redboot, hay que utilizar 192.168.1.1. A mí me funcionó con 192.168.1.254
-----
Port 9000
Protocol: Telnet

4. Abrir una ventana de MSDOS y hacemos ping contínuo a la Fonera
ping -t 192.168.1.254 (dará errores. Ok.)

5. Disponer las ventanas de MSDOS y Putty, de manera que podamos ver la traza del ping y tengamos acccesible el botón "Open" del Putty

6. Desconectamos la Fonera de la electricidad y volvemos a conectar.

7. Al cabo de unos segundos, empezarán a aparecer paquetes correctos en el ping. Pulsamos "Open" en el Putty

8. Aparecerá el prompt "Redboot>"

-----
Es posible que a lo largo de los siguientes pasos os aparezcan escritos errores en la consola. Podéis ignorarlos. Molestan (y asustan un poco) a la hora de ver lo que escribís, pero no tienen más importancia
-----

2.4 Flashear OpenWrt (el nuevo sistema operativo que sustituirá al original de la Fonera)
De nuevo, extraída una parte de:
http://www.galpon.org/wiki/index.php/Fonera_Openwrt

1. Copiamos los ficheros openwrt-atheros-2.6-vmlinux.lzma y openwrt-atheros-2.6-root.squashfs en el raíz del TFTP32 para que el PC los comparta y los podamos copiar en la Fonera. Por defecto, en:
C:\Archivos de programa\Tftpd32

2. Arrancamos TFTP32

3. Indicamos a la Fonera de qué dirección IP ha de tomar los datos
ip_address -l 192.168.1.254 -h 192.168.1.2

4. Cargamos los ficheros del PC en la Fonera
load -r -b %{FREEMEMLO} openwrt-atheros-2.6-vmlinux.lzma
load -r -b %{FREEMEMLO} openwrt-atheros-2.6-root.squashfs

5. Preparamos la memoria para escribir
fis init

6. Escribimos el kernel. Puede llegar a tardar varios minutos, así que a revisar el mail.
fis create -e 0x80041000 -r 0x80041000 vmlinux.bin.l7

7. Obtenemos la primera posición de memoria libre. Hay que restar la cifra grande a la pequeña (en hexadecimal
• Ejecutamos
fis free
• Devuelve dos valores en hexadecimal
• Ejecutamos calc.exe, y seleccionamos modo hexadecimal
• Restamos el mayor al menor (a mí me daba 0x700000)
• Guardamos el dato para escribirlo en el siguiente comando de flasheado

8. Flasheamos el filesystem. Puede tardar varios minutos (a mí, unos cuatro), así que a seguir con el mail.
fis create -l 0x700000 rootfs
-----
Atención, la cifra en negrita es la que os haya dado a vosotros.
------

9. Reseteamos el router
reset

Ya podemos acceder al router por telnet en la IP 192.168.1.1 mediante Putty. A partir de aquí dejo en manos de Google la configuración de OpenWrt. Recomiendo para empezar:
http://wiki.openwrt.org/OpenWrtDocs/Kam ... figuration


------ - - -
A partir de este punto, las instrucciones no serán tan detalladas. Si habéis llegado hasta aquí, el resto es fácil ;-)
----- - - - -

Parte II: configuración (sencilla) de ipkg, ntpclient, servidor web, scripts de ejemplo
 
Arriba