Ir al contenido principal

Router wifi Linksys con pantalla monitorizadora de Urls solicitadas

Creo que he sido la primera persona en el mundo en incorporar a un AP un firmware modificado y un Arduino, con su código ,  para hacer nexo entre el Punto de Acceso y  una pantalla física,  para mostrar en ellas todas las peticiones que se hacían hacia fuera , hacia Internet , desde nuestros dispositivos de nuestra red Wifi (y de algún vecino , si se nos había colado).

Pues esta semana santa 2012 me he dedicado a esto. La verdad, tenia muchas ganas de verlo funcionar porque era una idea que llevaba tiempo ya rondando por mi cabeza. Se trata de un router wifi Linksys wrt54gl 1.1 con firmware kamikaze 8 de openwrt. 
 A ese Firmware se le ha añadido el paquete dsniff, el cual permite con el comando urlsnarf, listar las urls que se solicitan en la red wi. Si esa salida la redireccionamos al puerto serie interno del aparato y ahí conectamos un arduino que vaya recibiendo esa información y pasándola a su vez a la pantalla lcd, tenemos un aparato que nos permite saber que peticiones se hacen a internet desde nuestro wifi.
Adicionalmente he colocado un buzzer, con un interruptor para activar/desactivarl o , para que además de una pitada cuando se produzca una peticion a internet.





El comando que utilizo en el firmware para pasar las urls al puerto serie es: urlsnarf -i wl0 |cut - d\" -f 4 | cut -d '/' -f 3 > /dev/cua/1 Con esto paso solo el nombre de dominio que se esta visitando. El arduino , que va dentro del router, 

 Arduino Uno, va conectado a la placa del linksys al puerto serie La alimentación ,12v, la cojo de la hembra de corriente del linksys. 



El código que lleva programado el Arduino es para que todo lo que le llegue por puerto serie lo muestre en el lcd y también de una pitada.

 #include // initialize the library with the numbers of the interface pins LiquidCrystal lcd(12, 11, 5, 4, 3, 2); int incoming ; String cadena = "" ; String cadena2 = "" ; int i = 0; void setup() { // set up the LCD's number of columns and rows: lcd.begin(16, 2); // Print a message to the LCD. lcd.setCursor(0, 0); lcd.print("STARTIN G"); 13/7/25, 0:40 Router wifi Linksys con pantalla monitorizadora de Urls solicitadas  lcd.setCursor(0, 1); lcd.print("SYSTEM" ); lcd.setCursor (0, 0); Serial.begin (9600); } void loop() { if (Serial.available() > 0) { incoming = Serial.read(); if ( incoming != 10 && incoming !=13) { if (i < 16 ) { 13/7/25, 0:40 Router wifi Linksys con pantalla monitorizadora de Urls solicitadas https://www.cacharreototal.com/2012/04/router-wifi-linksys-con-pantalla.html 7/12 cadena = cadena + char(incoming); } else { cadena2 = cadena2 + char(incoming); } i++; } if (incoming == 10) { if (cadena.startsWith ("-")) { cadena = ""; cadena2 = ""; i = 0;} else 13/7/25, 0:40 Router wifi Linksys con pantalla monitorizadora de Urls solicitadas https://www.cacharreototal.com/2012/04/router-wifi-linksys-con-pantalla.html 8/12 {tone(8,3000,100); lcd.clear(); lcd.setCursor (0, 0); lcd.print (cadena); cadena = "" ; lcd.setCursor (0, 1); lcd.print (cadena2); cadena2= ""; delay (1000); i= 0;} } } // n de si es lf o crlf } //n void loop 


Así, podemos ver en la pantalla que paginas se visitan desde nuestra red:





(Ejemplo de visitar una página web desde movil,  conectado al wifi de este router)


Las aplicaciones de este cacharro pueden ir desde el control parental hasta auditar nuestro sistema wifi por si se cuela algún vecino. 
Si por ejemplo nos acostamos y el aparato empieza a pitar, ya sabemos que alguien de casa o de fuera esta conectado a internet desde nuestra conexión y que paginas esta visitando. La instalación es sencilla, solo hay que deshabilitar el wifi del router que nos da nuestro proveedor y conectarle por cable de red este cacharrito.