Configuración manual wpa_supplicant
1 - Instalación paquete wpa_supplicant
2 - Modificación /etc/network/interfaces
3 - Archivo wpa_supplicant.conf
4 - wpa_passphrase (PSK cifrado)
5 - Otra posible configuración
6 - Wpa_Cli y sus posibilidades
7 - Fuentes de referencia
1- Instalación paquete wpa_supplicant
Inicialmente hace falta tener instalado el paquete wpasupplicant. Para ello debemos asegurarnos de lo tenemos instalado, por ejemplo con:
# aptitude search wpasupplicant
p wpagui - GUI for wpa_supplicant
i wpasupplicant - cliente para poder usar WPA y WPA2 (IEEE 802.11i)
La i
indica que el paquete está instalado. La otra
opción que aparece es la misma aplicación pero con entorno gráfico. En
caso de que no esté instalado, utilizamos:
aptitude install wpasupplicant
2- Modificación /etc/network/interfaces
Una vez instalado, debemos modificar el archivo /etc/network/interfaces, para que quede algo mas o menos como:
iface wlan0 inet static
....
wpa-driver wext
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
El campo wpa_driver
hace referencia al driver de la
tarjeta que tengamos instalados, por lo que deberemos asegurarnos e
informarnos para no andar dando palos de ciego. En esta pequeña lista
aparecen los drivers mas comunes:
- hostap --- Host AP driver (Intersil Prism2/2.5/3)
- madwifi --- MADWIFI 802.11 support (Atheros...)
- wext --- Linux wireless extensions (generic)
- atmel --- ATMEL AT76C5XXx (USB, PCMCIA...)
- ndiswrapper --- Linux ndiswrapper
- ipw --- Intel ipw2100/2200 driver
- wired --- Wired Ethernet driver
3- Archivo wpa_supplicant.conf
Una vez hecho esto, debemos configurar el archivo /etc/wpa_supplicant/wpa_supplicant.conf, si no existe lo creamos necesariamente. Este archivo puede estar en varios lugares, por lo que hay que fijarse bien donde está situado y lo configuramos tal que asi:
ctrl_interface=/var/run/wpa_supplicant
network={
ssid=”essid”
scan_ssid=1
proto=WPA
key_mgmt=WPA-PSK
psk=”contraseña”
}
Deberemos cambiar las líneas que hacen referencia a nuestro ssid (nombre de nuestra red) y a pks (contraseña secreta).
4- wpa_passphrase (PSK cifrado)
La configuración anterior muestra en texto plano la contraseña que utilizaremos a la hora de conectarnos al AP, mientras que si utilizamos wpa_passphrase, ésta quedará cifrada. Para ello haremos algo como:
# wpa_passphrase essid contraseña
network={
ssid="essid"
#psk="contraseña"
psk=4ccf926798d5302bec3921f5116989511bf430308b0384eca60debd23ae4ab45
}
Después copiamos la salida de psk= y la pegamos en la línea psk=”contraseña”
del archivo /etc/wpa_supplicant/wpa_supplicant.conf, de manera que quede:
ctrl_interface=/var/run/wpa_supplicant
network={
ssid=”essid”
scan_ssid=1
proto=WPA
key_mgmt=WPA-PSK
psk=”4ccf926798d5302bec3921f5116989511bf430308b0384eca60debd23ae4ab45"
}
Se pueden añadir todas las configuraciones WPA que nos haga falta, siempre y cuando lo hagamos en bloques network{...}
Para lanzar el demonio wpa_supplicant, debemos escribir en una shell:
wpa_suppplicant -B -w -c /etc/wpa_supplicant.conf -D wext -i wlan0
Explicación:
-B (Background): arranca el demonio en segundo plano.
-w (Wait): espera a que la interfaz esté levantada para correr el demonio.
-c ruta: indica la ruta donde está wpa:supplicant.conff
-D driver: especifica el driver de nuestra tarjeta wifi.
-i interfaz: especifica la interfaz que se va a utilizar.
5- Otra posible configuración
Para que el demonio sea lanzado cuando se levanta la interfaz, debemos insertar en el archivo /etc/network/interfaces las líneas:
pre-up wpa_supplicant -B -ieth2 -Dwext -c/etc/wpa_supplicant /wpa_supplicant.conf
post-down killall -q wpa_supplicant
También podemos probar a cambiar el archivo wpa_supplicant.conf con la siguiente configuración. Las líneas indicadas con -> no están en la configuración anterior:
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
ap_scan=1
network={
ssid="xxxx"
scan_ssid=1
proto=WPA
key_mgmt=WPA-PSK
-> group=TKIP CCMP WEP104 WEP40
-> pairwise=TKIP CCMP
-> group=TKIP
psk="xxxxxxxxx"
Wpa_Cli y sus posibilidades
Wpa_cli es un poderoso frontend con el que podemos escanear la red, conectarnos, comprobar el estado, depurar la conexión e introducir los parámetros para nuestras conexiones... Entre otras tantas opciones...
Para el caso que nos ocupa, podemos utilizar varios comandos, entre ellos:
-wpa_cli list_networks con el que podemos listar las redes que están accesibles.
# wpa_cli list_networks
Selected interface 'wlan0'
network id / ssid / bssid / flags
0 essid any [CURRENT]
-wpa_cli scan Escanea la red en busca de resultados
# wpa_cli scan
Selected interface 'wlan0'
OK
-wpa_cli scan_results Muestra los resultados obtenido con wpa_cli scan
# wpa_cli scan_results
Selected interface 'wlan0'
bssid / frequency / signal level / flags / ssid
XX:XX:XX:XX:XX:XX
2412 206
[WPA-PSK-TKIP+CCMP][WPA2-PSK-TKIP+CCMP-preauth] essid
-wpa_cli status Muestra datos y el estado de la conexión.
# wpa_cli status
Selected interface 'wlan0'
bssid=XX:XX:XX:XX:XX:XX
ssid=essid
id=0
pairwise_cipher=CCMP
group_cipher=TKIP
key_mgmt=WPA-PSK
wpa_state=COMPLETED
ip_address=XX.XX.XX.XX
Para lanzar el demonio wpa_supplicant, se debe utillizar el comando wpa_cli -B interface wlan0:
# wpa_cli -B interface wlan0
Selected interface 'wlan0'
Deb:/# wpa_cli status
Selected interface 'wlan0'
bssid=XX:XX:XX:XX:XX:XX
ssid=essid
id=0
pairwise_cipher=CCMP
group_cipher=TKIP
key_mgmt=WPA-PSK
wpa_state=COMPLETED
ip_address=XX.XX.XX.XX
7- Fuentes de referencia
- http://www.esdebian.org
- http://ftp.cl.debian.org/man-es/wlan.html
- http://linux.die.net/man/8/wpa_supplicant
- http://linux.die.net/man/8/wpa_cli
- Otras...
Suerte y saludos debianeros...