Riding the micro wave signal (wpa_supplicant)

¿En alguna ocasión han necesitado unirse a una red wireless desde linea de comandos y pensaron que era algo imposible?

Hace unos días tuve la necesidad de asociar mi dispositivo wireless con una red inalámbrica desde linea de comandos, hace mucho tiempo lo había hecho pero no recordaba exactamente como, el problema aquí fue que la instalación de NanoBSD que tengo en mi maquina Alix no tenia las paginas del manual instaladas, (tengo otra memoria CF de 2G disponible pero no he tenido tiempo de crear la imagen), así es que me instale el FreeBSD en una maquina virtual en la laptop y leyendo y leyendo lo hice de la siguiente forma:

Editamos el archivo /etc/wpa_supplicant.conf

NanoBSD# ee /etc/wpa_supplicant.conf

network={
ssid=”MyHappyNet”
scan_ssid=0
mode=0
auth_alg=OPEN
key_mgmt=NONE
wep_tx_keyidx=0
wep_key0=2218972080
}

Donde:

  1. ssid es el nombre de la red
  2. scan_ssid es la técnica con la que wpa_supplicant escaneara las señales para buscar la red inalámbrica, 0 quiere decir scan mediante broadcast.
  3. mode con este parámetro indicamos: 0 = modo infraestructura (nos conectaremos a un AP), 1 = adhoc
  4. auth_alg algoritmo utilizado para el intercambio de claves, usaremos OPEN pero podría ser SHARED
  5. key_mgmt lo ponemos a NONE para indicar que nos autentificaremos mediante una clave wep
  6. wep_key0 especificamos la clave wep

Teniendo todo esto configurado guardamos el archivo y ejecutamos:

NanoBSD# wpa_supplicant -i ath0 -d -c /etc/wpa_supplicant.conf
Initializing interface 'ath0' conf '/etc/wpa_supplicant.conf'
driver 'default' ctrl_interface 'N/A' bridge 'N/A'
Configuration file '/etc/wpa_supplicant.conf' ->
'/etc/wpa_supplicant.conf'
Reading configuration file '/etc/wpa_supplicant.conf'
ctrl_interface='/var/run/wpa_supplicant'
ctrl_interface_group='wheel' (DEPRECATED)
Priority group 0
id=0 ssid='MyHappyNet'
Initializing interface (2) 'ath0'
EAPOL: SUPP_PAE entering state DISCONNECTED
EAPOL: KEY_RX entering state NO_KEY_RECEIVE
EAPOL: SUPP_BE entering state INITIALIZE
EAP: EAP entering state DISABLED
EAPOL: External notification - portEnabled=0
EAPOL: External notification - portValid=0
Own MAC address: 00:0c:6d:da:aa:70
wpa_driver_bsd_set_wpa: enabled=1
wpa_driver_bsd_set_wpa_internal: wpa=3 privacy=1
wpa_driver_bsd_del_key: keyidx=0
wpa_driver_bsd_del_key: keyidx=1
wpa_driver_bsd_del_key: keyidx=2
wpa_driver_bsd_del_key: keyidx=3
wpa_driver_bsd_set_countermeasures: enabled=0
wpa_driver_bsd_set_drop_unencrypted: enabled=1
Setting scan request: 0 sec 100000 usec
ctrl_interface_group=0 (from group name 'wheel')
Added interface ath0
State: DISCONNECTED -> SCANNING
Starting AP scan (broadcast SSID)
Trying to get current scan results first without requesting a
new scan to speed up initial association
Received 0 bytes of scan results (0 BSSes)
Scan results: 0
Selecting BSS from priority group 0
Try to find WPA-enabled AP
Try to find non-WPA AP
.
.
.
.
Automatic auth_alg selection: 0x1
Overriding auth_alg selection: 0x1
wpa_driver_bsd_set_auth_alg alg 0x1 authmode 1
WPA: clearing AP WPA IE
WPA: clearing AP RSN IE
WPA: clearing own WPA/RSN IE
No keys have been configured - skip key clearing
wpa_driver_bsd_set_key: alg=WEP addr=ff:ff:ff:ff:ff:ff
key_idx=0 set_tx=1 seq_len=0 key_len=5
wpa_driver_bsd_set_drop_unencrypted: enabled=1
State: SCANNING -> ASSOCIATING
wpa_driver_bsd_associate: ssid 'MyHappyNet' wpa ie len 0
pairwise 1 group 1 key mgmt 2
wpa_driver_bsd_associate: set PRIVACY 1
Setting authentication timeout: 10 sec 0 usec
EAPOL: External notification - portControl=ForceAuthorized
State: ASSOCIATING -> ASSOCIATED
Associated to a new BSS: BSSID=01:13:84:92:44:69
Associated with 01:13:84:92:44:69
WPA: Association event - clear replay counter
EAPOL: External notification - portEnabled=0
EAPOL: External notification - portValid=0
EAPOL: External notification - portEnabled=1
EAPOL: SUPP_PAE entering state S_FORCE_AUTH
EAPOL: SUPP_BE entering state IDLE
Cancelling authentication timeout
State: ASSOCIATED -> COMPLETED
CTRL-EVENT-CONNECTED - Connection to 01:13:84:92:44:69
completed (auth) [id=0 id_str=]
Cancelling scan request

donde:

  1. -i especifica la interfaz de red a usar.
  2. -d Ejecuta wpa_supplicant en modo debug para que podamos ver los mensajes.
  3. -c Especifica el archivo de conflagración que tendrá que utilizar wpa_supplicant.

Si todo sale bien veremos el mensjae State: ASSOCIATED -> COMPLETED en la salida del comando wpa_supplicant que ejecutamos,  y  ya podremos obtener una ip del dhcpd que ejecuta el AP ejecutando el siguiente comando:

NanoBSD# dhclient ath0
DHCPDISCOVER on ath0 to 255.255.255.255 port 67 interval 4
DHCPOFFER from 192.168.1.254
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPACK from 192.168.1.254
bound to 192.168.1.74 -- renewal in 43200 seconds.

myipod# ping www.google.com
PING www.l.google.com (74.125.65.103): 56 data bytes
64 bytes from 74.125.65.103: icmp_seq=0 ttl=53 time=78.176 ms
64 bytes from 74.125.65.103: icmp_seq=1 ttl=53 time=76.772 ms
64 bytes from 74.125.65.103: icmp_seq=2 ttl=53 time=70.170 ms
64 bytes from 74.125.65.103: icmp_seq=3 ttl=53 time=77.684 ms
^C
--- www.l.google.com ping statistics ---
4 packets transmitted, 4 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 70.170/75.701/78.176/3.233 ms
NanoBSD#

para que todo esto funcione a momento de reiniciar lo agregamos al archivo /etc/rc.conf de la siguiente forma:

ifconfig_ath0=”WPA DHCP”

Reiniciamos los dispositivos de red para ver que todo este correcto:

NanoBSD# /etc/rc.d/netif restart
Stopping network:Stopping wpa_supplicant.
lo0 vr0 vr1 vr2 ath0 enc0 pfsync0 pflog0.
Starting wpa_supplicant.
ath0: no link ........ got link
DHCPREQUEST on ath0 to 255.255.255.255 port 67
DHCPACK from 192.168.1.254
bound to 192.168.1.64 -- renewal in 43200 seconds.
NanoBSD#

En este momento tenemos todo listo y nuestra tarjeta de red wireless asociada al AP :)

Posted under FreeBSD, Manuales, Networking, Operating Systems, Unix, Wireless by Espartano on Thursday 27 August 2009 at 8:51 pm

I will to put you into jail bad boy (ezjail)

Ultimamente que tengo bastante tiempo libre (espero que eso cambie pronto) me di a la tarea de escribir un manual sobre ezjail, pensaba poner el manual en este espacio pues mi principal objetivo era convertirlo en un sitio mayormente técnico, pero debido a que el manual quedo algo extenso y además de que ya lo había publicado en otros dos sitios considero que está por demás volver a editarlo aquí, así es que si quieren ver el manual pueden dirigirse a uno de estos dos enlaces:

root# links http://sysadmin.org.mx

o

root# links http://www.bsd-peru.org

Que lo disfruten :)

freebsd_jail_t_shirt_by_spica2041

Posted under *BSD, FreeBSD, Manuales, ezjail by Espartano on Thursday 30 July 2009 at 11:44 pm

My relatives love me so much -_-

Daemon Lover !!!: :-O jack que haces ?

Roberto…: haciendo pruebas de mi sistemita..:D

Daemon Lover !!!: Con FreeBSD ?

Daemon Lover !!!: solamente tu te diviertes jack xP

Roberto…: jajajajaj.. con freebsd.. java.. y circuitos embebidos..:D.. para k te de envidia..:P

Roberto…: tengo un problema… le mando un mensaje a un dispositivo y me contestan todos…:S

Daemon Lover !!!: :@

Daemon Lover !!!: lero lero, me da un chingo de gusto

Daemon Lover !!!: xD

Roberto…: ya lo valide con numero de dispositivo.. ya lo cheque con el servidor… k solo lo envie a ese dispositivo.. y no jala..: :p

Roberto…: jajajjajaja:P

Roberto…: te da envidia..:P

Posted under FreeBSD, Funny, My boring life, My life by admin on Wednesday 1 July 2009 at 11:00 pm

Lo que nos traera FreeBSD en su RELEASE 8.0

Ultimamente hemos visto como el equipo de desarrollo de FreeBSD han implementado un gran numero de tecnologías en FreeBSD como es el ZFS y DTrace,  ambos de forma experimental en la pasada liberación de FreeBSD 7.0, pero ¿que nos espera para FreeBSD 8.0? pues aquí una probadita de las características que mas me han interesado:

Construccion en paralelo de Ports

La infraestructura para la construccion de ports desde código fuente se ha incrementado para poder permitir la construccion individual de los ports en paralelo. En la era de las CPU’s multicore esto significa que el tiempo que tomaba construir un port se decrementará drasticamente, ahora por defaul todas las CPU’s lógicas se usaran.

Mejora en el manejo de los dispositivos montados

El problema mas común de panics se daba cuando un dispositivo montado era removido en caliente, en la nueva Release se ha corregido este inconveniente.

Jails V2

Se ha desarrollado el soporte para múltiples IP’s por jail (dentro del jail), soporte para IPV6 y SCTP, además las jails pueden ahora ser restringidas a cierta CPU.

Soporte para Xen en modo Dum-U

Se ha integrado el soporte para Xen, permitiendo a FreeBSD ser usado como sistema “invitando” en versiones reciente de Xen Dum-0.

Nuevo Stack USB

Se revisó y arreglaron muchos problemas con el stack USB y se desarrolló una nueva API para el mismo.

Nueva versión del Scheduler ULE

El scheduler ULE ahora toma en cuenta varios aspectos de las CPU’s para calcular los tiempos de los procesos, como son tamaño de cache, cores, sockets …, resultando en un mejor desempeño.

Virtualización del Stack de red.

la virtualizacion del stack es una extension del kernel para el stack de red, permitiendo mantener multiples instancias independientes del estado de la red, esta caracterisitica permite entre otras cosas la independencia completa de red entre cada jail, incluyendo la posibilidad de tener un firewall independiente en cada jail, interfaces virtuales de red, limitar el ancho de banda, tablas de ruteo diferentes (entre jails) IPSEC, etc etc.

Zero-Copy BPF

BPF es una herramienta utilizada para capturar paquetes de red “crudos” de las capas mas bajas del stack de red siguiendo ciertas reglas de filtrado y envía estos paquetes a alguna aplicación para que los procese, también puede insertar paquetes “crudos” en el stack, la mejora que se le ha hecho a BPF reduce el numero de operaciones de copiado que debe hacer entre la memoria, el kernel y la aplicación que analizara los paquetes resultando en un mejor desempeño en algunos casos.

Estas son solo algunas de las mejoras que tendra 8.0 para una lista mas completa visiten: http://ivoras.sharanet.org/freebsd/freebsd8.html

Posted under *BSD, FreeBSD, Operating Systems by Espartano on Tuesday 12 May 2009 at 1:16 am

BSDDay 2009 ¿Argentina? Yeah

Me encuentro con que el grupo de usuarios de OpenBSD [http://www.openbsderos.org/] esta organizando un BSDDay en argentina, cosa que me da un enorme gusto (a pesar de que es en otro país) ya que hasta donde sé es el primer BSDDay latino americano, el evento se llevara a cabo los días 29 y 30 de mayo del 2009, en el Departamento de Computación de la Facultad de Ciencias Exactas y Naturales de la Universidad de Buenos Aires, la entrada sera gratuita pero es necesario registrarse.

de entre las varias ponencias que habrá las que me han parecido mas interesantes son:

  • HammerFS.
  • PF Technologies
  • Assembler on BSD

HammerFS es un sistema de archivos bastante interesante (mas ahora que ZFS pertenece a Oracle) que se esta desarrollando en DragonFlyBSD , entre sus características están, Montaje instantáneo o casi instantaneo, no necesita correr fsck después de una caída, buen performance, no tiene limite de i-nodos, chequeo de integridad de datos, soporte para archivos grandes (mas de un exabyte), etc. Para saber mas pueden leer este documento: [http://www.dragonflybsd.org/hammer/hammer.pdf].

PF es el filtro de paquetes de OpenBSD, no creo que haga falta decir nadamas, para saber mas pueden leer el [FAQ de PF].

Y me llama mucho la atención de que tratara la charla Assembler on BSD, habrá que esperar las diapositivas después del evento.

Más informacion sobre el BSDDay en argentina: [http://www.bsdday.com.ar].

BSDDay Argentina

BSDDay Argentina

Posted under *BSD, FreeBSD, NetBSD, OpenBSD, Operating Systems by admin on Wednesday 6 May 2009 at 11:42 pm