Inicio > Proyectos, Tech > Detector de tráfico no deseado para OpenWRT (para WRT54g)

Detector de tráfico no deseado para OpenWRT (para WRT54g)


Hoy estuve jugando un rato con mi WRT54g y el OpenWRT White Russian RC5 que instalé hace unos días. Lo que te voy a comentar es como hacer un detector visual de tráfico no deseado para las versiones 3 y superiores del WRT54g.

¿Porque esta restricción?, bueno, simplemente porque a partir de la version 3, Cisco (o Linksys) comenzó a poner un par de leds ocultos detrás de un (oculto también) botón que se encuentra detrás del logotipo de Cisco.

Estos dos leds son uno blanco y el otro ambar, y lo que vamos a hacer es que se prenda el blanco si detecta una conexión o el ambar si detecta tráfico.

NOTA: Ojo, aca no hay magia, no se descrimina el tráfico propio del no deseado, en otras palabras si lo estás usando se van a prender esos leds y no quiere decir que haya ningún intruso. Por lo cual esto es solo útil para quien no le de mucho uso y tenga una notebook o una Palm dando vueltas.

Bueno, el tema es que estos dos leds, entre otras cosas, son controlados por los pins GPIO de la motherboard. Y usando un interesante utilitario que se puede descargar de aca se pueden controlar los valores GPIO a voluntad. CUIDADO, la gente de OpenWRT desaconseja su uso y de hecho ha reemplazado el archivo por el siguiente texto:


What happened to the GPIO utility?
GPIO is a 'general purpose io', which depending on your point of view
is either a register that controls a hardware io or vice versa. The
gpio util was a diagnostic tool for controlling the GPIO pins, it was
never an intended as abstraction. Each device has the GPIO pins wired
slightly different, which is why we have abstractions like the ones in
/proc/sys/reset and /proc/sys/diag; using the gpio util to hardcode
GPIO numbers into scripts is just ignorant and stupid.
- mbm

Asi y todo, si igual querés seguir adelante, una vez logueado en tu OpenWRT seguí estos pasos:


# cd /tmp
# wget http://felipe-alfaro.org/blog/wp-content/gpio.tar.gz
# tar -zxf gpio.tar.gz
# mv gpio /usr/bin
# rm /tmp/gpio.*

Ahora agrega el archivo /etc/init.d/S98wl-traf (darle permiso de ejecución) con el siguiente contenido

/usr/bin/wl-traf.sh &

Y por último creá el script /usr/bin/wl-traf.sh (darle permiso de ejecución) con el siguiente contenido:

#!/bin/sh
# GPIO #3 controls the amber led beneath the Cisco Systems logo:
# Disabling GPIO #3 turns on the amber led.
# Enabling GPIO #3 turns off the amber led.
#
# GPIO #2 controls the white led beneath the Cisco Systems logo:
# Disabling GPIO #2 turns on the white led.
# Enabling GPIO #2 turns off the white led.
#
# GPIO #7 controls the DMZ led:
# Disabling GPIO #7 turns on the DMZ led.
# Enabling GPIO #7 turns off the DMZ led.
#
I=`nvram get wl0_ifname`
while sleep 1; do
if [ "`wl assoclist`" != "" ]; then
#echo "(hay assoclist)\n"
XFER=`ifconfig $I|grep bytes`
if [ "$XFER" != "$PXFER" ]; then
# Si hay transferencia prendo el led ambar
#echo "(hay transfer)\n"
gpio enable 2
gpio disable 3
PXFER=$XFER
else
# Si no hay transferencia prendo el led blanco
#echo "(no hay transfer)\n"
gpio disable 2
gpio enable 3
fi
else
#echo "(no hay assoclist)\n"
gpio enable 2
gpio enable 3
fi
done

Como verás dentro del script esta explicado como se encienden y se apagan los leds, y por supuesto acá es donde cada uno puede hacer lo que quiera y modificarlo para usarlo para lo que se le ocurra.

Todo esto no es descubrimiento mío ni mucho menos, sino que esta hecho en base a la información disponible en estos dos sitios:

http://felipe-alfaro.org/blog/category/openwrt/
http://forums.hardwarezone.com/showthread.php?t=998127

IMPORTANTE: Es muy probable que tengas que instalar el paquere wl en tu OpenWRT si no lo tenés instalado.

Anuncios
Categorías:Proyectos, Tech
  1. Aún no hay comentarios.
  1. 20 febrero, 2009 en 2:06 pm

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: