miércoles, 6 de marzo de 2013

Recuperar Router/ Access Points



Práctica hecha con dispostivo Ubiquiti Unifi AP.

Se necesita un cable de conversion USB a TTL 3.3v como este: http://www.chipsetcomm.com.tw/products/product.aspx?main=45&sub=202&id=546

la disposicion original de pines NO ES ESTANDAR asi que será necesario ver la hoja de datos del AP a recuperar y la hoja del cable adquirido para organizar los pines. En el caso del Unifi:






Solo se usará los pines de Tierra GND, TX y RX, de forma que el TX del cable se conecta al pin SIN del AP, el RX del cable se conecta al SOUT del AP y las dos tierras GND se unen. (los nombres de los pines pueden cambiar según el AP).

El uso del cable en un sistema GNU/Linux generalmente levantará un dispositivo (device) TTYUSB, así que antes de conectar el cable ejecutar los siguientes comandos:

(hacerse root, en mi caso con Ubuntu: sudo su)
dmesg | grep ttyUSB


Si tiene alguna salida, fijarse cual és, ya que indica que ya hay un dispositivo TERMINAL funcionando en una ttyUSB, usualmente están enumerados ttyUSB0, ttyUSB1, ttyUSB2, etc. En mi caso no tengo salida de discho comando, lo que indica que no tengo este tipo de dispositivos.

Conectar el Cable y ejecutar el mismo comando

(hacerse root, en mi caso con Ubuntu: sudo su)
dmesg | grep ttyUSB

Fijarse de NUEVAS Interfaces ttyUSB, en mi caso:



Además debe dar un aviso informativo de conexion de un cable “USB serial converter”.
En mi caso la /dev/ttyUSB0 es la interfaz que usa el cable USB-TTL para comunicarse.


Cutecom

Aunque lso entornos Uniz tienen varias buenas herrmaientas para comunicación serial (muchas de ellas por consola), usaremos una interfaz gráfica llamada cutecom.

Instalcion:
apt-get install cutecom

ejecución:
sudo cutecom.



En la pestaña device se elije la ttyUSB que ya se detectó.

Hay que averiguar que tasa de baudiso, bits de parada y de datos, y paridad funciona el dispositivo. En el caso de Unifi es 115200 baudiso, 8 bits de datos, bit 1 de parada, y sin paridad. Hacer click en “Abrir Dispositivo”.


Antes de conectar el dispositivo hay una prueba básica que pueden hacer:
Escribir palabras en el campo Input y luego presionar ENTER,... no debe pasar nada en la consola.

Tomar un clip o un pequeño pedazo de cable de cobre y hacer puente entre los pines TX y RX del cable, escribir palabras en el campo Input y presionar ENTER.... en la consola debe aparecer la misma palabra, ya que estamos recibiendo lo que enviamos!! Si es así, el cable, el driver y el software están funcionado correctamente.

Conectar el cable al dispositivo APAGADO según se indicó antes y ENERGIZAR. Deben empezar a ver infromación del AP:




Tan pronto aparezca el mensaje “hit any key to stop autoboot” escribir algo en el espacio input y presionar ENTER para enviar dicho dato, con esto se detenderá el proceso de booting.


Digitar la instrucción “urescue” para que el dispostivo se ponga enmodo de recuperación TFTP con la IP 192.168.1.20 (en el caso de dispositivos Unifi) asi como lo dice la consola.

Configurar la red LAN de tu PC en el segmento 192.168.1.0/24, puede ser con la IP 192.168.1.254

Abrir otra terminal e iniciar sesion tftp mediante

tftp 192.168.1.20




Proceder a cargar el frimware mediante las instrucciones

bin
trace
put ARCHIVOFIRMWARE.bin


Listo!!!





Actualizacion de openWRT

Al compilar OpenWRT se generan binarios con el nombre *sysupdate* que precisamente actualizan el firmware.

Se pasa el archivo binario al directorio /tmp del router,
Luego desde telnet o ssh se debe hacer lo siguiente;

root@OpenWrt:/tmp# cd /tmp
root@OpenWrt:/tmp# sysupgrade -v openwrt-ar71xx-generic-ubnt-unifi-jffs2-sysupgrade.bin

pasará algo así:

etc/sysctl.conf
etc/shells
etc/shadow
etc/rc.local
etc/profile
etc/passwd
etc/inittab
etc/hosts
etc/group
etc/firewall.user
etc/dropbear/dropbear_rsa_host_key
etc/dropbear/dropbear_dss_host_key
etc/config/wireless
etc/config/ubootenv
etc/config/system
etc/config/network
etc/config/firewall
etc/config/dropbear
etc/config/dhcp
Sending TERM to remaining processes ... dnsmasq ntpd syslogd klogd hotplug2 procd ubusd netifd
Sending KILL to remaining processes ...
Switching to ramdisk...
Performing system upgrade...
Unlocking firmware ...
Writing from <stdin> to firmware ...
Appending jffs2 data from /tmp/sysupgrade.tgz to firmware...TRX header not found
Error fixing up TRX header
Upgrade completed
Rebooting system...


Listo!!