domingo, 13 de diciembre de 2009

Personalizar la Fonera

Desde hace algunos meses tengo por aquí una Fonera dando vueltas, y como ya me habían comentado las bondades de este aparatito me he decidido a jugar con él.
Las primeras pruebas las hice hace ya algún tiempo, pero no sé si por vaguería, incorrección en algún paso o qué, no había tenido exito. Os cuento qué he tenido que hacer para poder activar el acceso por SSH y así poder trastearla por dentro.

Material necesario:
  • Fonera (en mi caso es una Fonera 2200A)
  • Router ADSL
  • Ordenador con conexión inalámbrica

Lo primero que se debe hacer es abrir el paquete en el que nos mandan la Fonera, y bajo ningún concepto encendera con el cable de red conectado al router ADSL. Así evitamos que si tiene una versión "bondadosa" se actualice y sea más complicado entrar.

Una vez encendida, esperamos a que el indicador WLAN se encienda y nos conectamos a la red My Place. La clave de esta red es el número de serie de nuestra Fonera, y viene en una pegatina en la parte de abajo. Nos dirijimos con cualquier explorador a la dirección 192.168.10.1 y nos saldrá la web de estado de la Fonera.

Aquí podemos ver qué versión tiene, y en base a eso, actuar.

Versión 0.7.1.r1: copiamos este código en un fichero y lo guardamos como .html. Luego, lo abrimos con un navegador y le damos a "Enviar". Te pedirá usuario y contraseña, que será root y admin respectivamente.

<html>
<head>
</head>
<body>
<center>
<form method="post" action="http://192.168.10.1/cgi-bin/webif/connection.sh " enctype="multipart/form-data">
<input name="username" value="$(/etc/init.d/dropbear)" size="68" >
<input type="submit" name="submit" value="Enviar" onClick="{this.form.wifimode.value='";' + this.form.wifimode.value +';"'}" />
</form>
</center>
</body>
</html>


No apagar todavía la Fonera.

Versión 0.7.1.r2: En la web de la Fonera, nos vamos a Avanzado->Conexión a internet. En modo seleccionamos IP estática, y luego ponemos estos valores para los parámetros de configuración de red:
  • Dirección IP: cualquiera del rango DHCP de nuestro router ADSL. Normalmente es 192.168.0.x o 192.168.1.x
  • Máscara de red: 255.255.255.0
  • Puerta de Acceso: la IP de nuestro router. Típicamente 192.168.0.1 o 192.168.1.1
  • DNS: hacemos ping a kolofonium.datenbruch.de y poner la dirección IP que nos salga. Si no ha cambiado desde que yo lo hice es 188.40.206.43
Esta DNS que le hemos puesto es para que el servidor de kolofonium le indique que ejecute dropbear (servidor de SSH).
Tras esto, guardamos los cambios, conectamos la Fonera al router y pinchamos en el botoncito rojo de la parte de abajo para que se reinicie. Al arrancar, se conectará al servidor de kolofonium. Cuando la luz de WLAN se encienda, estará completado el proceso. No apagar todavía la Fonera.

Versiones posteriores: encender la Fonera sin conectarla al router y pulsar durante 5 segundos el botoncito rojo de la parte de abajo. Esto hace que vuelva al firm original. Si no sucediese así, configurar la IP de la red privada del router con la dirección 213.134.45.129 y el servidor DNS del router con la IP 188.40.206.43 (si no va probar con 88.189.168.155). En la web de la Fonera (conectados a la red My Place) nos vamos Avanzado->Conexión a Internet y la configuramos en modo IP estática y los siguientes valores para los parámetros de red:
  • IP: 213.134.45.200
  • Máscara de red: 255.255.255.0
  • Puerta de acceso: 213.134.45.129
  • DNS: 213.134.45.129
Una vez hecho esto, conectamos la Fonera al router, pulsamos el botoncito de reset durante 30 segundos para forzarla a que busque actualizaciones de software. Tras el reset, esperar unos 7-8 minutos hasta que se complete el proceso, que nos lo indicará encendiendo la lucecita de WLAN. Una vez finalizado nos conectamos a la red My Place y nos vamos a la dirección 192.168.10.1 y comprobamos que se ha realizado correctamente, es decir, tenemos el firm 0.7.1.r1.

Ahora, procedemos como se indica más arriba para abrir SSH con la versión 0.7.1.r1.

NOTA: A mi quedó con el firm 0.7.1.r2, pero me da que fue porque ese es el que traía de fábrica y al pulsar reset más de 5 segundos se reseteó.

Después de esto deberíamos poder entrar por SSH en la IP 192.168.10.1 y en el puerto 22. Para esto utiliza PuTTy (descarga gratuita desde su web) si estás utilizando Windows o desde la consola de Linux ejecuta el comando ssh 192.168.10.1 -p 22

Si hasta aquí todo ha ido bien, solo queda hacer permanentes los cambios. Para eso, con la consola SSH abierta tecleamos

    ln -s    /etc/init.d/dropbear /etc/init.d/S50dropbear

Después de esto, modificamos el fichero del firewall para que nos deje abierto el puerto 22.
   
    vi /etc/firewall.user

En ese fichero buscamos estas líneas, pulsamos i para que nos deje editar el fichero y les borramos la # del principio.

    # 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

Pulsamos Escape para salir del modo edición y tecleamos :wq para guardar los cambios y salir.

Ya solo nos queda hacer que el juguetito no le pregunte a su "padre" si hay nuevas versiones evitando así que se actualice. Para eso:

    vi /bin/thinclient

Y comentamos (añadimos # al principio) la última línea que reza así

    . /tmp/.thinclient.sh

De nuevo, pulsamos escape para salir del modo edición y tecleamos :wq para guardar los cambios y salir.

Con esto ya está todo listo. Ahora mismo funciona igual que antes de hacerle nada, con la salvedad de que tenemos total control sobre ella y que no se actualizará automáticamente. Si queremos que actúe en modo cliente para conectar cualquier aparato con RJ45 a nuestra red WiFi, o que funcione como repetidor o cualquier otra funcionalidad similar, le instalamos DD-WRT siguiendo cualquiera de los muchos tutoriales que hay en la web.

Saludos y espero que todo os salga bien.