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.

Upgrade de OpenWRT White Russian 0.9 a Kamikaze 8.09

Archivado en: Geek, General, Linux, Tech, hardware, seguridad — Etiquetas:, , , , — pablot @ 2:06 pm

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!

Noviembre, 12 2008

el podcast de pablot – Episodio 30 – RetroGeek

Archivado en: Geek, Linux, Programación, Retro, Tech, episodios, historia, podcast — Etiquetas:, , , , — pablot @ 1:00 am

Aunque muchos ya me daban por perdido, aquí estoy nuevamente con un nuevo episodio del podcast. Esta vez vamos a hablar sobre algo retro, pero aplicado a algo moderno y con un factor retro geek muy alto!

Vamos a dar una mirada a un sitio muy interesante y hablaremos principalmente del código fuente oculto en los discos de Kickstart 1.0 de Amiga y de como usar el BASIC de Commodore (y también de Apple) como lenguaje de scripting en Linux, MacOS/X y Windows.

Noviembre, 1 2008

Intrepid ibex a todo vapor (o lo bien que anda Kubuntu 8.10 y Ubuntu 8.10)

Archivado en: Linux, Tech, actualidad — Etiquetas:, , , — pablot @ 10:29 pm

De buenas a primeras aproveche algo de tiempo semi-libre y decidí actualizar mi PC de Kubuntu 8.04 a Kubuntu 8.10. Pero eso no fue todo, decidí también que teniendo un procesador AMD de 64 bits ya era tiempo de abandonar los viejos 32 bits y pasarme a 64 bits.

Debo decir que cada tanto prefiero no realizar una actualización o upgrade, sino una instalación de cero. No porque le tenga miedo a que no funcione (lo he hecho varias veces y siempre salió andando) pero sino porque de esta manera limpio un poco la mugre de instalaciones de muchos paquetes que alguna vez decidí probar y que al final terminé dejando de usar.

Debo aclarar que gracias a tener las particiones / (root), /usr, /home y /opt en distintos filesystems, la instalación de cero es casi igual a un upgrade ya que no pierdo nada de mis cosas, ya que solo formateo e instalo / y /usr.

Bueno, la cosa es que Intrepid Ibex, se instaló a las mil maravillas, de forma limpia y rápida. Al reiniciar el equipo, me informó que había drivers propietarios para mi placa de video ATI (que siempre me trajo algún que otro problema para configurarla). Los instalé, luego active compiz y todo salió andando de una. Mis últimas dos instalaciones (7.10 y 8.04) fueron algo engorrosas en cuanto a mi placa ATI, pero esta vez la gente de Canonical hizo los deberes, puesto que se instaló y salió andando sin ningún tipo de problemas.

De hecho no se si será por la nueva versión o por el cambio a 64 bits, pero el sistema se siente bastante más ágil y rápido que antes.

Bien por Canonical, y bien por esta nueva versión. Mis felicitaciones a los desarrolladores e invito a todos a probar esta nueva versión de Kubuntu. O en su defecto prueben Ubuntu, que como ya les conté días pasados esta corriendo en mi notebook, también sin ningún problema y con compiz activado.

Blog de WordPress.com.