Archives for : April2012

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.