Estaciones Virtuales Inalámbricas

Licencia Creative Commons
Estaciones Virtuales inalámbricas por Sergio Belkin se encuentra bajo una Licencia Creative Commons Atribución-CompartirDerivadasIgual 2.5 Argentina.

A veces es necesario simular una gran cantidad de  estaciones (es decir clientes o “supplicants”) ante un Access Point para obtener una estimación de las capacidades del equipo y/o firmware. Seguramente existe algún que otro software con licencia restrictiva que nos permita hacer eso. Pero ¿se podrá hacer eso con una sola notebook con Linux? La respuesta es sí.

Veremos como:

Deshabilitamos cifrado por hardware

echo options ath9k nohwcrypt=1 > /etc/modprobe.d/ath9k.conf

udev

Editamos /lib/udev/rules.d/75-persistent-net-generator.rules

Queremos que udev no maneje la interfaz wireless wlan0, entonces sacamos de la siguiente regla a wlan0

KERNEL!="eth*|ath*|ra*|ctc*|lcs*|hsi*", GOTO="persistent_net_generator_end"

Editar el archivo /etc/udev/rules.d/70-persistent-net.rules

Tampoco necesitamos la siguiente la regla, así que la borramos:

SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="68:a3:c4:33:44:55", ATTR{dev_id}=="0x0", ATTR{type}=="1", KERNEL=="wlan*", NAME="wlan0"

Recargar la configuración

systemctl restart udev-trigger.service

Detener servicios que interfieren con la creación de intefaces virtuales

systemctl stop NetworkManager.service

systemctl stop  avahi-daemon.service

Terminar procesos de wpa_supplicant

killall wpa_supplicant

Agregamos una interfaz virtual inalámbrica

iw phy  phy0 interface add sta0  type station

Le cambiamos la mac address, sino NO va a funcionar

macchanger -r sta0

Activamos la interfaz

ip link set dev sta0 up

Lanzamos el cliente wireless

wpa_supplicant -t -ista0 -c      /etc/wpa_supplicant/peap.conf  -B  -f /var/log/wpa-sta0.log

Arrancamos el cliente dhcp

dhclient -v   -cf /etc/wpa_supplicant/dhclient.conf sta0

¡Listo!

Se puede hacer un script (de hecho es lo que hice) para automatizar estos pasos y agregar tantas interfaces virtuales como sea posible.

Reconocimiento: El artículo de Candela Technologies en http://www.candelatech.com/vsta.php fue de suma utilidad.

Advertencia: Esta receta funciona en particular para el módulo ath9k, es probable que sea necesario modificar algo con otros drivers o que directamente no funcione. Asimismo, se utilizó Fedora 16 desde el lado cliente, obviamente deberían realizarse las adapataciones pertinentes de acuerdo a la distribución.

¿Es redimible un Linksys WRT54Gv8.0?

Linux se puede instalar en la actualidad en una variedad de dispositivos asombrosos.

Interfaz web de dd-wrt

Los wireless routers Linksys WRT54G desde la versión 1.0 hasta la 4.0 podían ser flasheados con OpenWRT, lamentablemente a partir de la versión 5.0 en adelante, la empresa decidió reducir la cantidad de memoria disponible, y además cambiar a un sistema privativo (VxWorks).


Para compensar esto, en algún momento lanzó a la calle el modelo WRT54GL, recuperando la compatibilidad con OpenWRT.

  1. Ahora bien, ¿qué pasa si ya tenemos un WRT54G 8.0? la respuesta es definitiva: No se puede instalar OpenWRT. Así de sencillo, la razón es que los desarrolladores de dicho sistema operativo no están dispuestos a trabajar para un espacio de memoria tan reducido.

No obstante, dentro de la variedad que tenemos en el mundo del software libre, se puede optar por dd-wrt. Las últimas versiones vienen con una herramienta que permite sacar al VxWorks, instalar dd-wrt y recuperar el firmware original en el caso de que algo salga mal o que el sistema open source no haya convencido las expectivas.

Estadísticas

He probado dd-wrt sobre un WRT54G 8.0 y me ha funcionado. Es asombroso como el software libre consigue adaptarse a un espacio tan pequeño. El sistema permite, entre otras cosas:

  • Usar un servicio de DDNS
  • Configurar routing avanzado
  • Trabajar con RADIUS
  • Definir una serie de configuraciones avanzadas de wireless tales como soporte multimedia y restricciones de acceso por bandas horarias.
  • Soporte para WDS
  • Tareas programas

Sin embargo, no todas son buenas. Dos carencias notables con respecto a OpenWRT es la carencia de ssl y de ssh. El tráfico web va en texto plano, el acceso de consola es mediante el infame telnet.

Telnet - iptables

Como todo Linux y al igual que en OpenWRT se pueden crear reglas con iptables. Pero tampoco se pueden esperar lujos, como tener un editor de textos o una partición al estilo jffs2. Muchas cosas se configuran con el comando nvram.

Con todo, la experiencia de instalar un Linux en un dispositivo para que parece haberse concebido para que dicha alternativa sea posible, es digna de realizar.