Solución:
iw
(list / config) solo puede manejar WEP.
Necesitas el wpasupplicant
paquete que proporciona el wpa_supplicant
comando, instalar si es necesario a través de sudo apt-get install wpasupplicant
.
Pones tu SSID y contraseña en /etc/wpa_supplicant.conf
(requiere sudo).
Ejemplo:
network={
ssid="ssid_name"
psk="password"
}
Suponiendo que su interfaz es wlan0, puede conectarse con:
sudo wpa_supplicant -B -i wlan0 -c /etc/wpa_supplicant.conf -D wext
sudo dhclient wlan0
“wext” es un controlador y será específico para cada tarjeta; Referirse a wpa_supplicant -h
. Ejemplos:
hostap (default) Host AP driver (Intersil Prism2/2.5/3). (this can also be used with Linuxant DriverLoader).
hermes Agere Systems Inc. driver (Hermes-I/Hermes-II).
madwifi MADWIFI 802.11 support (Atheros, etc.).
atmel ATMEL AT76C5XXx (USB, PCMCIA).
wext Linux wireless extensions (generic).
ndiswrapper Linux ndiswrapper.
broadcom Broadcom wl.o driver.
ipw Intel ipw2100/2200 driver.
wired wpa_supplicant wired Ethernet driver
roboswitch wpa_supplicant Broadcom switch driver
bsd BSD 802.11 support (Atheros, etc.).
ndis Windows NDIS driver.
Este enlace lo muestra todo y funcionó bien para mí: http://linux.icydog.net/wpa.php
Estoy copiando el contenido aquí, así que lo tenemos, en caso de que el sitio se desconecte.
Línea de comando WPA
A veces, estará en una línea de comandos sin acceso a las herramientas de red GUI, pero su punto de acceso está protegido con WPA. ¿A qué te dedicas?
Suponiendo que su tarjeta inalámbrica realmente funciona (es decir, iwconfig puede verla e interactuar con ella), usar wpa_supplicant es bastante simple. Instalación de wpa_supplicant
La mayoría de las distribuciones hoy en día tienen wpa_supplicant instalado de forma predeterminada. Si tiene los comandos wpa_passphrase y wpa_supplicant disponibles, entonces está listo para comenzar. De lo contrario, deberá instalar el paquete haciendo algo como (para Ubuntu):
$ sudo apt-get install wpasupplicant
O (para Fedora):
# yum install wpa_supplicant
O cualquiera que sea el comando para tu distribución.
Generando el archivo de configuración
Ahora que wpa_supplicant está instalado, crearemos su archivo de configuración. Una vez que conozca la contraseña SSID y WPA, todo lo que tiene que hacer es ejecutar:
$ wpa_passphrase myrouter mypassphrase > wpa.conf
Por supuesto, reemplace “myrouter” con el SSID de su enrutador, “mypassphrase” con su contraseña WPA y “wpa.conf” con cualquier archivo en el que desee almacenar la configuración. Este nombre de archivo no tiene que seguir un formato en particular o tener una extensión particular.
Alternativamente, para evitar escribir la frase de contraseña en la línea de comando (para que no se guarde en el historial del shell), puede especificar solo el SSID en la línea de comando. wpa_passphrase esperará a que ingrese la contraseña seguida de ingresar:
$ wpa_passphrase myrouter > wpa.conf
mypassphrase
Debería terminar con un archivo con este aspecto:
network={
ssid="myrouter"
#psk="mypassphrase"
psk=8ada1f8dbea59704ac379538b4d9191f6a72390581b4cd7a72864cea685b1a7f
}
Conectarse
Ahora ejecutaremos wpa_supplicant para conectarnos a la red inalámbrica. Primero, si su enrutador transmite su SSID (todos lo hacen de manera predeterminada), probablemente desee asegurarse de que su tarjeta inalámbrica realmente pueda verlo:
$ iwlist scan
Puede que tenga que ejecutarlo como root para forzar una actualización.
A continuación, necesitará conocer tres datos:
- Qué controladores inalámbricos wpa_supplicant usar para su tarjeta. Corriendo
wpa_supplicant --help
enumera los diferentes controladores que tiene (en “controladores:”). A partir de 0.5.8, las opciones útiles son:wext
,hostap
,madwifi
,atmel
,ndiswrapper
, yipw
(ipw es solo para kernels antiguos;> = 2.6.13 debería usar wext). Si no ve una coincidencia específica para su tarjeta, intente wext, ya que es una especie de catch-all. - El dispositivo de red de su tarjeta. Suele ser eth1 o wlan0, pero si no está seguro, puede ejecutar
iwconfig
. Informará “sin extensiones inalámbricas” para dispositivos no inalámbricos y mostrará algunos datos para cualquier dispositivo inalámbrico. - La ruta al archivo de configuración que creó en el paso anterior.
Ahora que tiene estos datos, ejecute (como root):
# wpa_supplicant -D[driver] -i[device] -c[/path/to/config]
No hay espacios entre las opciones y los parámetros. No incluya los corchetes, ya que los agregué para mayor claridad. Por ejemplo, para mi computadora portátil se ve así:
# wpa_supplicant -Dwext -ieth1 -c/root/wpa.conf
También puede ejecutarlo en segundo plano utilizando el -B
opción para que no ocupe su consola.
Ahora estás asociado con la red.
Conectarse
Para conectarse realmente, tendrá que obtener una IP de alguna manera. La mayoría de la gente solo querrá obtener una IP dinámica de un servidor DHCP, probablemente el que está integrado en el enrutador. (No voy a cubrir la configuración de una IP estática y una tabla de enrutamiento porque eso es una bestia en sí mismo).
Para obtener una concesión de DHCP, primero libere las concesiones que aún tenga (como root):
# dhclient -r
Luego solicite una nueva concesión (por supuesto, reemplace eth1 con el nombre de su dispositivo de red, el mismo que usó en la sección anterior):
# dhclient eth1
Ahora tienes una IP, al menos en teoría. ¡Feliz surf!
Debian y otras distribuciones tienen wpa_suplicant ejecutándose como un servicio de forma predeterminada para administrar las redes wifi. wpa_suplicant puede ser manejado por diferentes clientes / front-end, como la GUI del administrador de red. Esto se explica mejor en esta wiki de Debian.
wpa_cli es la línea de comandos del cliente wpa_suplicant para administrar las redes wifi.
Editar: Acabo de encontrar esta publicación que explica cómo usar nmcli y es mucho mejor que wpa_cli ya que es compatible con GUI Network Manager y sus configuraciones y redes wifi guardadas.
Ejemplo de uso de wpa_cli:
Compruebe que ya tengo una interfaz de red habilitada para wifi:
# iwconfig
wlan0 IEEE 802.11bgn ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=22 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:on
Compruebe si el proceso wpa_suplicant se está ejecutando:
# ps -e | grep wpa
1881 ? 00:00:07 wpa_supplicant
Ingrese en el modo interactivo del cliente de wpa:
# wpa_cli
Enumere los puntos de acceso disponibles:
> scan
> scan_results
… y obtienes algo como esto:
bssid / frequency / signal level / flags / ssid
e0:60:66:7c:81:7f 2417 -66 [WPA2-PSK-CCMP][ESS] vodafone817E
e0:60:66:61:83:4b 2452 -76 [WPA2-PSK-CCMP][WPS][ESS] vodafone834A
f8:8e:85:c5:65:c2 2462 -76 [WPA-PSK-CCMP+TKIP][WPS][ESS] MOVISTAR_65C1
a8:d3:f7:46:0c:be 2472 -83 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS] Orange-0CBC
...
Agregue su AP:
> add_network
> set_network 0 ssid "vodafone817E"
> set_network 0 psk "my-pass-phrase"
Selecciónelo como actual:
> enable_network 0
Conéctese a él:
> reconnect
Verifique el estado:
> status
Salir de wpa_cli:
> quit
Desde el shell, solicite DHCP para una configuración de red e IP:
# dhclient -r
# dhclient wlan0