Control del ventilador del Acer Aspire One en Linpus

miércoles, 26 de agosto de 2009
Muchos usuarios tienen la queja de que el ventilador del Acer Aspire One es demasiado ruidoso. Personalmente, a mi no me parece ruidoso, ni que funcione excesivamente, pero lo curioso es que se puede mejorar su funcionamiento.

Los procesadoreas Atom (como el que lleva nuestro Acer One) pueden soportar sin problemas los 90 grados centigrados. Sin embargo, el ventilador salta mucho antes de alcanzar tal temperatura. Esto, además de ruido, provoca un gasto adicional en la batería, ya que parte de la energia se malgasta en accionar un motor (el ventilador). Subiendo tan solo un poco la temperatura a la que debe accionarse el ventilador podemos conseguir que este funcione muy de vez en cuando. Ahorrando bateria y reduciendo ruidos. Esto se debe a que los efectos disipativos se hacen cada vez mayores conforme aumenta la temperatura (y con ello, la diferencia de temperatura entre el procesador y el entorno). La desventaja es que un procesador que trabaja a altas temperaturas se hace más inestable y acorta su vida util. Pero, como ya dijimos al comienzo, los procesadores Atom estan diseñados para alcanzar altas temperaturas, incluso a veces, se motan sin ventilador. Por ello, elevando un poco la temperatura de control del ventilador podemos conseguir menos ruido y mas bateria.

El problema es cómo. Los usuarios de windows tienen un programa especifico gratuito para el control del ventilador, pero los usuarios de Linpus no. En nuestro caso, es un poco más complicado. Primero, deberemos descarganos un par de programas de proceso por lotes (scripts): acerfand y acer_ec.pl. Despues, copiaremos ambos archivos al directorio "/usr/local/bin" y les daremos privilegios de ejecución. Esto es, desde un terminal escribiremos:

cp /home/user/Downloads/acerfand /usr/local/bin
cp /home/user/Downloads/acer_ec.pl /usr/local/bin
chmod 755 /usr/local/bin/acerfand
Tras ello, editaremos el fichero /etc/rc.local como superusuario, incluyendo la linea "/usr/local/bin/acerfand" al final de este:

sudo nano /usr/local/bin/acerfand
Finalmente, creamos el fichero de configuración "/etc/acerfand.conf" en donde estableceremos el modo de funcionamiento de nuestro ventilador:
sudo nano /etc/acerfand.conf
con el contenido:
INTERVAL=5
FANOFF=60
FANAUTO=70
En este caso, hemos establecido que la temperatura se compruebe cada 5 segundos (INTERVAL), que el ventilador se apague cuando la temperatura del microprocesador baje de los 60º (FANOFF) y se encienda cuando supere los 70º (FANAUTO).

Como puede observarse hemos dejado bastante margen de seguridad. Aún así, la reducción de uso del ventilador es notable (rara vez suena). Como desventaja podemos mencionar un calentamiento global del portatil que a alguien podría parecerle desagradable (en verano especialmente). Evidentemente, podemos apurar más, aunque deberemos sopesar los riesgos que podriamos correr.

Rompiendo claves WEP con el Acer Aspire One

jueves, 20 de agosto de 2009
Inicialmente destaqué la solvencia de la tarjeta WiFi del Acer Aspire One, la cual era, a mi parecer, bastante potente. Esto puede aprovecharse para un pequeño experimento: intentar obtener una clave WEP de una red WiFi.

Desde hace mucho tiempo se considera la encriptación WEP insegura. No estamos, ni mucho menos, descubriendo la polvora, existiendo numerosos programas capaces de encontrar la clave de acceso. En el Acer Aspire One este proceso es, aún si cabe, mucho más fácil.

Para ello deberemos olvidarnos temporalmente de Linpus y arrancar un distribución especifica para la auditoría (basicamente, poner a prueba) de seguridad en redes. Esta distribución es la conocida BackTrack. En particular, deberemos descargarnos la versión live para USB. Una vez descargada, debermos instalarla en una llave USB (mayor o igual a 2GB).

Para este paso nos valdremos de una utilidad mencionada con anterioridad, Unetbootin. Dicha utilidad fue usada anteriormente para obtener el disco de arranque que nos permitiría actualizar la BIOS. Ahora, en vez de seleccionar una de las imagenes ISO preseleccionadas, pondremos la que nos hemos descargado:

sudo yum install syslinux p7zip-plugins
wget -O unetbootin http://downloads.sourceforge.net/unetbootin/unetbootin-linux-293
chmod 755 unetbootin
sudo ./unetbootin &

Al igual que antes indicaremos como disco de arranque el dispositivo '/dev/sdb1', que será del tipo USB.

Ena vez finalizado el proceso tendremos el sistema de auditoria instalado y listo para arrancar en el USB. Sin embargo, usar "a pelo" esta distribución puede ser un poco complicado. Para automatizar un poco las cosas, nos descargaremos RUSSIX. RUSSIX no es más que un conjunto de programas que nos simplificaran enormente las tareas.

Un vez descargado y descomprimido en la raiz de la tarjeta USB. Arrancaremos desde este dispositivo (pulsando F12 durante el proceso de arranque de la BIOS). Debemos prestar especial atención al momento en que nos pregunta que tarjeta de video usar, entonces deberemos seleccionar la opción que incluye VESA. Una vez hecho dejamos que el sistema se inicie.

Veremos que se arranca un interfaz gráfico similar al linpus aunque más complicado (en algunas ocasiones no anda el ratón, se soluciona reiniciando). Abriremos un terminal de ordenes (Alt- F2) y nos iremos al directorio donde esté el RUSSIX, ejecutándolo de la siguiente forma:


cd RUSSIX
sh a

Primero seleccionaremos la tarjeta (ath0):


Es posible que a veces no salga ninguna red. Esto es porque no han sido detectadas durante el arranque. No deberia suceder, pero a veces ocurre. Si no sale, simplemente reinicia el sistema. Verifica de todas formas que tienes el interruptor de red WiFi encendido.

Si todo va bien, nos mostrará entonces las redes disponibles:

Seleccionaremos el nombre o SSID de la "victima" (necesariamente una red con encriptación WEP) y presionamos CTRL-C. Acto seguido nos preguntará por el nombre de la red que queremos atacar. Escribiremos exactamente el nombre de la red (SSID) que seleccionamos anteriormente:


Nos abrirá la siguiente ventana (en donde corre el airodump-ng):

Y luego esta otra (donde se realiza la asociación):

Este punto es crítico ya que el programa obtendrá un paquete de la red y lo reinyectará continuamente (más adelante lo veremos en detalle). Primero nos pregunta si queremos utilizar el paquete, pulsaremos “y” (veremos que pregunta varias veces). En ese momento se inicia el programa de busqueda de clave.

Muy someramente el procedimiento es el siguiente: la parte más vulnerable del encriptado son unos paquetes llamados IVs. A partir de estos paquetes es relativamente sencillo descubrir la clave de acceso. Sin embargo estos paquetes se emiten muy de vez en cuando. El problema es que se necesitan del orden de unos 20000 IVs para encontrar la clave (como vereis, en cuanto el programa de busqueda de clave se inicia, intenta deducir la clave, no puede y espera a tener 5000, 10000, 15000, ... IVs). Es evidente que el proceso puede demorarse muchisimo.

Para acelerarlo, el programa que anteriormente nos pregunto si queriamos usar un paquete, simplemente re-emite o reinyecta en la red un paquete tomado aleatoriamente y modificado convenientemente. El objetivo es que este paquete cause fallos en la red y se tenga que reestablecer la conexión. Cuando se reestablece una conexion se emiten muchos paquete IVs (que es lo que queremos).

Hasta que no encontremos un paquete que cause fallos veremos que el numero de IVs crece muy lentamente, pero en cuanto demos con uno el numero crecerá como la espuma. Es cuestión de armarse de paciencia e ir pulsando "y" sucesivamente en el programa de selección de paquetes (incluso puede que sea necesario reiniciar todo el proceso), hasta tener suerte.

En cuanto forcemos la generación de paquetes IVs solo tendremos que esperar unos minutos para obtener un "KEY FOUND!" y la ansiada clave.


Aunque la finalidad de este tipo de aplicaciones tiende a ser bastante evidente, el objetivo de esta entrada es puramente didáctico. Pruebelo contra su propia red y no contra redes ajenas, ya que esto último podría ser considerado como delito.