Difference between revisions of "WPA supplicant (Español)"

From ArchWiki
Jump to: navigation, search
(Gestionar una configuración personalizada)
(Véase también)
Line 123: Line 123:
 
El problema se ha solucionado en este [http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=commitdiff;h=893a0a558cd8fd9a7dc5827f379e0f8a273a4fe5 commit]
 
El problema se ha solucionado en este [http://hostap.epitest.fi/gitweb/gitweb.cgi?p=hostap.git;a=commitdiff;h=893a0a558cd8fd9a7dc5827f379e0f8a273a4fe5 commit]
  
==Véase también==
+
== Enlaces relacionados ==
*[[Wireless Setup (Español)]]
+
 
*[[netctl (Español)]]
+
* [http://wireless.kernel.org/en/users/Documentation/wpa_supplicant Kernel.org wpa_supplicant documentation]
*[http://wireless.kernel.org/en/users/Documentation/wpa_supplicant Kernel.org wpa_supplicant documentation]
+

Revision as of 17:56, 16 September 2013

wpa_supplicant es una multiplataforma de WPA Supplicant con soporte para WPA y WPA2 (IEEE 802.11i / RSN —Robust Secure Network—). Está adaptado tanto para los ordenadores de sobremesa/portátiles como para sistemas integrados. wpa_supplicant es el componente IEEE 802.1X/WPA utilizado por las estaciones cliente. Implementa las negociaciones entre la clave y un WPA Authenticator, y contola el roaming y la asociación/autenticación IEEE 802.11 del controlador wland.

Instalación

Instale el paquete wpa_supplicant desde los repositorios oficiales.

También tiene la posibilidad de instalar el paquete wpa_supplicant_gui que proporciona wpa_gui; es un fronted gráfico para wpa_supplicant que usa las herramientas qt4.

Conectarse con wpa_cli

Para asociarse con un punto de acceso inalámbrico (WAP) usando wpa_supplicant, utilizaremos la herramienta de línea de órdenes wpa_cli incluida en el paquete. Para utilizar wpa_cli, es necesario especificar una interfaz de control en el archivo wpa_supplicant. Para ello, cree un archivo de configuración que contenga ctrl_interface=/var/run/wpa_supplicant.

Sugerencia: Remítase al archivo /etc/wpa_supplicant/wpa_supplicant.conf que se proporciona para obtener más detalles.

Para permitir guardar los cambios realizados utilizando wpa_cli, añada la línea update_config=1 en el archivo de configuración. Comience wpa_supplicant con:

 # wpa_supplicant -B -i interface -c /path/to/config

Invoque wpa_cli sin argumentos para obtener un prompt interactivo (>). El prompt soporta el «tab completion» y contiene la descripción de las órdenes que se autocompletan. La orden scan inicia un escaneo; envía una notificación cuando la operación se ha completado. Por tanto:

 > scan_results
 bssid / frequency / signal level / flags / ssid
 00:00:00:00:00:00 2462 -49 [WPA2-PSK-CCMP][ESS] MYSSID
 11:11:11:11:11:11 2437 -64 [WPA2-PSK-CCMP][ESS] ANOTHERSSID

Para asociarse con MYSSID, será necesario informar a wpa_supplicant sobre ello. Cada red es numerada a partir de cero. El PSK se puede proporcionar (sin comillas), como una alternativa a introducir la contraseña, como se propone en este ejemplo:

 > add_network
 0
 > set_network 0 ssid "MYSSID"
 > set_network 0 psk "passphrase"
 > enable_network 0
 <2>CTRL-EVENT-CONNECTED - Connection to 00:00:00:00:00:00 completed (reauth) [id=0 id_str=]

Para guardar la información de la red en el archivo de configuración:

 > save_config
 OK

Ahora que la asociación con el WAP se ha completado, obtenga una dirección IP a través de dhcpcd o utilizando las herramientas de iproute2.

Configuración

El paquete wpa_supplicant proporciona un archivo de configuración de ejemplo situado en /etc/wpa_supplicant/wpa_supplicant.conf, que documenta, de modo detallado, todas las opciones disponibles y relativas a la configuración.

El contenido mínimo del archivo de configuración requiere un bloque de red, por ejemplo:

/etc/wpa_supplicant/foobar.conf
network={
    ssid="..."
  }

Lo anterior puede ser fácilmente generado usando la herramienta wpa_passphrase. Por ejemplo:

$ wpa_passphrase foobarssid foobarspassword
network={
   ssid="foobarssid"
   #psk="foobarspassword"
   psk=f5d1c49e15e679bebe385c37648d4141bc5c9297796a8a185d7bc5ac62f954e3
}

Ahora también es posible combinar la utilización de wpa_supplicant y wpa_passphrase para asociarse a, prácticamente, todas las redes WPA2 (Personal):

# wpa_supplicant -B -i [nombre de la interfaz] -c <(wpa_passphrase [essid] [passphrase])

No queda más que conectarse ajustando una dirección IP estática o DHCP. Por ejemplo:

# dhcpcd -A [nombre de la interfaz]

Gestionar una configuración personalizada

Nota: El método recomendado para conectarse a la red es usando Netctl y ciertamente es la mejor opción a largo plazo.

Como se mencionó anteriormente, podemos hacer uso de wpa_passphrase para generar una configuración básica, que podemos aumentar con las redes y las opciones adicionales que deseemos. Esto puede ser necesario para las configuraciones de las redes avanzadas que hacen un amplio uso del protocolo EAP.

En primer lugar, vamos a utilizar wpa_passphrase para crear un archivo de configuración básica:

# wpa_passphrase essid passphrase > /etc/wpa_supplicant/foobar.conf
Sugerencia: Algunas contraseñas o «passphrases» particularmente complejas pueden requerir información desde un archivo:
# wpa_passphrase essid < passphrase.txt > /etc/wpa_supplicant/foobar.conf

A continuación, agregue una opción ctrl_interface de modo que nos permita controlar el demonio wpa_supplicant. Es posible autorizar a wpa_cli para que pueda modificar las configuraciones con la opción update_config=1. También podemos autorizar a wpa_supplicant a efectuar un escaneo y selección de los AP («Access Point» —Puntos de Acceso—) presentes con la opción ap_scan=1.

/etc/wpa_supplicant/foobar.conf
  ctrl_interface=DIR=/run/wpa_supplicant GROUP=wheel # permitir a los miembros del grupo 'wheel' controlar el demonio
  update_config=1
  ap_scan=1

  network={
     ssid="foobarssid"
     psk=f5d1c49e15e679bebe385c37648d4141bc5c9297796a8a185d7bc5ac62f954e3
  }

Es posible añadir bloques de red múltiples al archivo de configuración.

Para iniciar la conexión de red basta con ejecutar las siguientes órdenes:

# ip link set [nombre de la interfaz] up
# wpa_supplicant -B -D nl80211 -i [nombre de la interfaz] -c /etc/wpa_supplicant/foobar.conf
# dhcpcd -A [nombre de la interfaz]
Nota: Es preferible utilizar nl80211 respecto al obsoleto controlador wext. Para obtener un listado de controladores soportados ejecute la orden wpa_supplicant sin ningún argumento.

Para conexiones de red de complejidad creciente examine los ejemplos proporcionados en el archivo de configuración predeterminado ubicado en /etc/wpa_supplicant/wpa_supplicant.conf.

Activar con systemd

Con el fin de iniciar la conexión inalámbrica en el arranque, active wpa_supplicant con la interfaz inalámbrica deseada. Para obtener conectividad con DHCP, active dhcpcd.service también. Por último, para manejar las posibles conexiones de Ethernet, instale ifplugd y actívelo con su interfaz ethernet. Las órdenes pueden aparecer, por ejemplo, así:

# systemctl enable wpa_supplicant@wlp3s1
# systemctl enable dhcpcd
# systemctl enable ifplugd@enp5s2

WPA Supplicant manejará la itinerancia para todas las SSID contenidas en su archivo de configuración, y ifplugd configurará automáticamente la red cableada, manteniendo latente la red inalámbrica mientras el equipo esté conectado a una red ethernet. dhcpcd se encargará de asignar una IP para las distintas interfaces.

Es probable que wpa_supplicant@.service tenga que ser modificado a fin de que lea el archivo de configuración apropiado. Para modificar el valor de la línea ExecStart=, cree el siguiente archivo:

/etc/systemd/system/wpa_supplicant@.service.d/foo.conf
[Service]
ExecStart=
ExecStart=/usr/bin/wpa_supplicant -c/etc/wpa_supplicant/bar.conf -i%i

La sección WantedBy= de la versión actual es incorrecta. Si la línea en wpa_supplicant@.service no coincide con el nombre de la interfaz (wlan0), será necesario copiar el archivo de servicios en /etc/systemd/system y modificarlo para aportarlo:

[Install]
WantedBy=multi-user.target

El problema se ha solucionado en este commit

Enlaces relacionados