Archivo

Posts Tagged ‘Kamikaze’

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

20 febrero, 2009 2 comentarios

¿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.

Upgrade de OpenWRT White Russian 0.9 a Kamikaze 8.09

20 febrero, 2009 4 comentarios

wrt54g-smallFinalmente me decidí y actualicé el firmware de mi router Linksys wrt54g. Pasé del vetusto OpenWRT White Russian 0.9 al flamante OpenWRT Kamikaze 8.09.

Como novedad, al menos para mi, debo decir que ya no es necesaria la interfase Webif para administrarlo desde un browser, ya que ahora trae una interfase llamada LuCI integrada al firmware, aunque por supuesto también se le puede instalar Webif.

Cabe aclarar que si bien OpenWRT ya utiliza versiones 2.6 del kernel de Linux, para el caso de routers basados en Broadcom (como los Linksys), como se necesitan drivers propietarios aún se sigue con el kernel 2.4.

Otro cambio importante es que se abandonó el sistema de guardar las variables en la NVRAM y ahora se guardan en archivos de configuraciòn en /etc/config. Esto es principalmente debido a que como OpenWRT se ha extendido a plataformas que no poseen NVRAM, se ha debido tomar esta decisión para poder soportarlas. Este cambio hace que al pasar de White Russian a Kamikaze haya que volver a reconfigurar el router desde cero, ya que se pierden las configuraciones que tengamos.

Respecto al upgrade en si, no representa ningún problema ya que se hace desde la opción de upgrade del firmware desde Webif y funciona perfectamente, pero al reiniciarse el router queda con la configuración inicial y se debe volver a reconfigurar para poder utilizarlo.

La reconfiguración en si no fue gran problema y todo salió funcionando al igual que funcionaba anteriormente con la excepción de mi hack para detectar tráfico no deseado, ya que como esto se hacía por medio de los pins GPIO de la motherboard y jugar con esto estaba expresamente desaconsejado, pues bien, ha dejado de funcionar.

Excepto este problema menor, debo decir que todo funciona muy bien y aún debo dedicarme un poco más a explorarlo y ver que nuevas facilidades brinda.

Para Instalar X-Wrt o Webif solo hay que agregar al archivo `/etc/opkg.conf` la siguiente línea (cuidado que esto es en el caso de un router basado en Broadcom y con kernel 2.4, fíjense cual les corresponde si es otro modelo):

src X-Wrt http://downloads.x-wrt.org/xwrt/kamikaze/8.09/brcm-2.4/packages

De esta manera el archivo `/etc/opkg.conf` queda así:

src/gz snapshots http://downloads.openwrt.org/kamikaze/8.09/brcm-2.4/packages
dest root /
dest ram /tmp
lists_dir ext /var/opkg-lists
option overlay_root /jffs
src X-Wrt http://downloads.x-wrt.org/xwrt/kamikaze/8.09/brcm-2.4/packages

Luego hay que desinstalar LuCI de la siguiente manera:

root@OpenWRT:~# opkg remove -recursive luci-*

Y por último para instalar X-Wrt hay que tipear:

root@OpenWRT:~# opkg update

root@OpenWRT:~# opkg install webif

¡Y listo!

A %d blogueros les gusta esto: