Fundamental y útil: Conexión en linea de ordenes con wpa_supplicant

[h]No hay WiFi sin wpa_supplicant…[/h]
https://www.wifi-libre.com/img/members/3/wpa_supplicant_connect_3.jpg
wpa_supplicant es un programa “universal” (linux-mac-windows-freebsd-netbsd etc…) inventado para permitir la conexión a las redes WiFi cifradas con WPA.
Es obra de Jouni Malinen y la primera versión es del 5 de abril 2003.
2003 es el año clave para… el cambio de clave
WEP
a clave WPA :smiley:
Es este año que la *wifi alliance anuncia oficialmente la muerte del WEP y su reemplazo por el “WPA (1)”. (WPA-TKIP sin AES)
Jouni Malinen es un verdadero pionero del WiFi.
Más que esto: Es un maestro del Wifi, un padre fundador de la comunicación numérica inalámbrica para las masas.
Jouni Malinen es el creador de **wpa_supplicant , hostap y hostapd (entre otras cosas).
Puntos de acceso, teléfonos y ordenadores: Hablamos de billones de dispositivos que utilizan a diario un programa de jouni Malinen y esto desde que comenzó la generalización del uso del WPA.
wpa_supplicant es desde su primer día gratis y de código libre, un puro producto “GNU”.
Es normal entonces que
wpa_supplicant **haya sido adoptado desde el primer momento como la solución universal para redes Wifi en sistemas linux y más allá.
La versión base de wpa_supplicant para conexiones WPA pesa en si… unos 50kb.
Soporta WEP, WPA 2, WPA radius… ¡Vale para absolutamente todo!!
[list=
]
]Linux WPA/WPA2/IEEE 802.1X Supplicant/]
[/list]

[h]Conectarse a una red WPA en linea de ordenes con wpa_supplicant[/h]
Vamos a ver paso a paso (lo haré con Kali rolling) como conectarse con **wpa_supplicant **directamente, sin pasar por Network Manager, a una red WPA.
Es muy útil cuando estamos en “modo recuperación” sin entrono gráfico, para gestionar un dispositivo tipo pi remotamente, si Network Manager falla o si nos molesta para hacer hacking wifi.
Si conoces un poco hostapd verás que wpa_supplicant es muy similar en su forma de funcionar.
Se basa en el uso del comando con sus opciones y en el uso de un fichero de configuración.
[h] 1) Desactivar Network Manager[/h]
Esta es la forma adecuada en 2017 pasando por system.d

sudo systemctl stop NetworkManager

Primer paso hecho.
[h] 2) Redactar el fichero de configuración[/h]
Llamaremos el fichero wpa_supplicant.conf para respectar las convenciones y lo vamos a poner en el directorio etc
Para redactar el fichero de configuración invocaremos la orden wpapassphrase indicando nuestro eSSID y nuestra contraseña WPA
En ejemplo me conectaré a mi PA “ONO31F874” con su llave por defecto “C4ACDCD363”

wpa_passphrase ONO31F874 C4ACDCD363 | sudo tee  /etc/wpa_supplicant.conf

https://www.wifi-libre.com/img/members/3/wpa_supplicant_connect_1.jpg
Haciendo el pipe hacía la orden tee duplicaremos el contenido que aparece en consola y se guardará en el fichero de configuración
Hemos generado la PSK (hace de llave maestra - PMK) la qué se emplea en lugar de nuestra contraseña “para humanos” (anulada por la #)
[h] 3) Conectarse a la red WPA[/h]
Recuerdo que para conocer el identificador de nuestra interfaz wifi debemos hacer

iwconfig

En **Kali **se usa la “vieja” denominación con interfaces de tipo wlanX
No es el caso en la mayoría de la distribuciones.
Una forma para conectarse

sudo wpa_supplicant -B -c /etc/wpa_supplicant.conf -i wlan0

Con -B hacemos que el proceso vaya en “background” y podemos seguir entrando ordenes en la misma consola teniendo el proceso wpa_supplicant ejecutándose. Y claro, después **-i **debéis poner vuestra interfaz
[h] 4) Adquirir una dirección IP [/h]

sudo dhclient wlan0

Estoy conectado:
https://www.wifi-libre.com/img/members/3/wpa_supplicant_connect_2.jpg
[h]Volver a Network Manager[/h]
Para volver a empelar* Network Manager *debemos matar el proceso “wpa_supplicant” que corre en fondo.
Obtenéis su PID con

ps ax | grep wpa

y lo matéis con** kill**

sudo kill numero_proceso

Solo queda volver a activar el servicio Network Manager.

sudo systemctl restart NetworkManager

Más lectura
[list=*]
]Using WPA_Supplicant to Connect to WPA2 Wi-fi from Terminal on Ubuntu 16.04 Server by Xiao Guoan @ linuxbabe/]
]Linux WPA/WPA2/IEEE 802.1X Supplicant @ w1.fi/]
]Using systemd-networkd to work your net by James McDonald @ /]
[/list]