BlogPandora: el blog de pablot

Febrero, 20 2009

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

Archivado en: Geek, General, Linux, Tech, hardware, seguridad, wifi — Etiquetas:, , , — pablot @ 10:58 pm

¿Se acuerdan del detector de tráfico no deseado para OpenWRT?. Bueno, el tema es que como dije en mi post anterior, al actualizar a OpenWRT Kamikaze, la utilidad gpio dejó de funcionar, por lo que el feedback visual que proporcionaba este hack si alguien accedía a nuestra red, desapareció.

La solución es más simple de lo que parece, ya que aparentemente a partir de la versión RC6 de White Russian (creo) los leds están presentes en /proc/diag/led como se ve a continuación:

root@OpenWrt:/proc/diag/led# ls -l
-r--------    1 root     root            0 Jan  1 01:29 dmz
-r--------    1 root     root            0 Jan  1 01:29 power
-r--------    1 root     root            0 Jan  1 01:29 ses_orange
-r--------    1 root     root            0 Jan  1 01:29 ses_white
-r--------    1 root     root            0 Jan  1 01:29 wlan
root@
OpenWrt:/proc/diag/led#

Esto permite que si queremos por ejemplo encender el led naranja detrás del logo de Cisco, sólo tengamos que hacer:

root@OpenWrt:/proc/diag/led# echo "1" > /proc/diag/led/ses_orange

Sin necesidad de recurrir a la herramienta gpio que era necesaria antes. De esta misma manera se puede controlar cualquiera de los otros leds, con solo mandar un 1 para encenderlos y un 0 para apagarlos.

Todo esto nos sirve para simplificar el script que usábamos en la versión anterior (White Russian) y que sólo tengamos que hacer lo siguiente:

Agregar el archivo /usr/bin/wl-traf.sh (y darle permiso de ejecución) con el siguiente contenido:

#!/bin/sh
#
I=wl0
while sleep 1; do
if [ "`wl assoclist`" != "" ]; then
XFER=`ifconfig $I|grep bytes`

if [ "$XFER" != "$PXFER" ]; then
# Si hay transferencia prendo el led ambar
echo "1" > /proc/diag/led/ses_orange
echo "0" > /proc/diag/led/ses_white
PXFER=$XFER
else
# Si no hay transferencia prendo el led blanco
echo "0" > /proc/diag/led/ses_orange
echo "1" > /proc/diag/led/ses_white
fi
else
echo "0" > /proc/diag/led/ses_orange
echo "0" > /proc/diag/led/ses_white
fi
done

Y por último agregar la siguiente línea al archivo /etc/init.d/custom-user-startup

/usr/bin/wl-traf.sh &

No se olviden del “&”, de esta manera será ejecutado cada vez que se inicie el router. Y por supuesto tampoco olviden que como en el caso anterior, va a ser necesario instalar el paquerte wl para que funcione.

1 comentario »

  1. podrias explicarle sobre aquel dispositivo?
    es la primera vez que lo escucho!

    Comentario por andre — Octubre, 6 2009 @ 1:18 pm


Canal RSS de los comentarios de la entrada. URI para TrackBack.

Deja un comentario

Blog de WordPress.com.