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

From ArchWiki
Jump to: navigation, search
(Actualizar)
(Paso 2)
(3 intermediate revisions by the same user not shown)
Line 37: Line 37:
  
 
==Configuración y conexión==
 
==Configuración y conexión==
WPA Supplicant viene empaquetado con un archivo de configuración de muestra: {{ic|/etc/wpa_supplicant/wpa_supplicant.conf}}. Está bien comentado y ofrece muchos detalles sobre la mecánica de la red. Todas las variables utilizadas en este artículo están descritas en ese archivo. También cuenta con una gran cantidad de muestras de configuración. Es muy recomendable leerlo, así como las páginas del manual {{ic|man wpa_supplicant}} y {{ic|man wpa_supplicant.conf}}.
+
WPA Supplicant viene empaquetado con un archivo de configuración de muestra: {{ic|/etc/wpa_supplicant/wpa_supplicant.conf}}. Está bien comentado y ofrece muchos detalles sobre la mecánica de las conexiones de red. Todas las variables utilizadas en este artículo están descritas en ese archivo. También cuenta con una gran cantidad de muestras de configuración. Es muy recomendable leerlo, así como las páginas del manual {{ic|man wpa_supplicant}} y {{ic|man wpa_supplicant.conf}}.
  
 
Un archivo de configuración WPA_Supplicant contiene todos los ajustes de configuración para {{Ic|wpa_supplicant}}. Podemos crear tantos como queramos y ponerlos donde queramos, desde el momento en que debemos especificar qué archivo de configuración se va a usar en cada llamada de {{ic|wpa_supplicant}}. Su contenido es muy simple:
 
Un archivo de configuración WPA_Supplicant contiene todos los ajustes de configuración para {{Ic|wpa_supplicant}}. Podemos crear tantos como queramos y ponerlos donde queramos, desde el momento en que debemos especificar qué archivo de configuración se va a usar en cada llamada de {{ic|wpa_supplicant}}. Su contenido es muy simple:
Line 206: Line 206:
 
{{Ic|wpa_cli}}, cuando se invoca sin opciones, nos conducirá a un entorno prompt, pruebe a escribir {{Ic|help}} para obtener ayuda.
 
{{Ic|wpa_cli}}, cuando se invoca sin opciones, nos conducirá a un entorno prompt, pruebe a escribir {{Ic|help}} para obtener ayuda.
  
wpa_gui es muy sencillo de usar. Si pulsamos «scan», nos mostrará una lista de SSID detectados, podemos hacer doble clic en una de ellas para añadirla, lo cual nos abrirá un cuadro de diálogo que nos permitirá introducir la información necesaria para asociarnos a la red. Lo más probable es que solo tengamos que introducir la clave pre-compartida (PSK) si utilizamos WPA/WPA2 o la propia {{Ic|Key0}} para una conexión WEP. Los protocolos para WPA/WPA2/WEP/Sin cifrar se detectan automáticamente. Otras opciones, como la autenticación 802.1X requerirán una configuración un poco más avanzada.
+
wpa_gui es muy sencillo de usar. Si pulsamos «scan», nos mostrará una lista de SSID detectados, podemos hacer doble clic en una de ellas para añadirla, lo cual nos abrirá un cuadro de diálogo que nos permitirá introducir la información necesaria para asociarnos a la red. Lo más probable es que solo tengamos que introducir la clave precompartida (PSK) si utilizamos WPA/WPA2 o la propia {{Ic|Key0}} para una conexión WEP. Los protocolos para WPA/WPA2/WEP/Sin cifrar se detectan automáticamente. Otras opciones, como la autenticación 802.1X requerirán una configuración un poco más avanzada.
  
 
{{Advertencia|WEP es ''seriamente'' frágil y ''nunca'' debe utilizarse fuera de un entorno de ensayo/prueba. Utilice, al menos, ''WPA'' (WPA2 sería más recomendable) para tener una red inalámbrica más segura.}}
 
{{Advertencia|WEP es ''seriamente'' frágil y ''nunca'' debe utilizarse fuera de un entorno de ensayo/prueba. Utilice, al menos, ''WPA'' (WPA2 sería más recomendable) para tener una red inalámbrica más segura.}}
Line 237: Line 237:
 
=== Inicio automático al arrancar ===
 
=== Inicio automático al arrancar ===
  
Debemos tener en cuenta que todo el proceso que hemos hecho anteriormente ''no'' es permanente. Esto significa que en el siguiente reinicio, tendremos que proporcionar todas las órdenes de nuevo. He aquí algún método para hacer que los cambios permanezcan.
+
Debemos tener en cuenta que todo el proceso que hemos hecho anteriormente ''no'' es permanente. Esto significa que en el siguiente reinicio, tendremos que proporcionar todas las órdenes de nuevo. He aquí algunos métodos para hacer que los cambios permanezcan.
  
 
==== Con systemd ====
 
==== Con systemd ====
Line 259: Line 259:
 
Probablemente ya tenemos un servicio dhcpcd para eth0, pero tenemos que añadir uno, específicamente, para nuestro dispositivo inalámbrico:
 
Probablemente ya tenemos un servicio dhcpcd para eth0, pero tenemos que añadir uno, específicamente, para nuestro dispositivo inalámbrico:
  
Activaremos el targer de systemd:
+
Activaremos el target de systemd:
 
  # systemctl enable dhcpcd@wlan0.service
 
  # systemctl enable dhcpcd@wlan0.service
  

Revision as of 19:03, 21 April 2013

Una red protegida por un clave WEP estática (e incluso dinámica) puede verse muy fácilmente comprometida por un usuario malintencionado. WPA resuelve el problema de la clave estática, cambiándola después de un cierto número de paquetes de red transmitidos/recibidos, o después de cierto lapso de tiempo. Este proceso es realizado por un demonio que está estrechamente ligado al hardware inalámbrico del que dispongamos.

Los controladores de poca calidad (en particular los utilizados a través de ndiswrapper) pueden resultar frustantes cuando se usan junto con wpa_supplicant. Por lo tanto, si es posible, utilice hardware con soporte adecuado junto con controladores de alta calidad.

Consideraciones

Este artículo parte del supuesto de que estamos familiarizado con el hardware, y somos capaces de encontrar el camino a los archivos de configuración de los mismos y a la configuración del sistema. Es muy importante que hayamos leído y entendido el artículo sobre Wireless Setup, ya que es la base de todo lo que vamos a explicar aquí.

El seguimiento de este documento no constituye un requisito previo para conectarnos si el hardware funciona una vez hecha la instalación y se gestiona adecuadamente a través de un demonio de conexión de red como NetworkManager o similar. Si preferimos conectarnos a la red mediante una herramienta gráfica, este artículo no le será de utilidad.

Instalación

WPA supplicant puede ser instalado con el paquete wpa_supplicant, disponible en los repositorios oficiales.

Este paquete ha sido compilado para ser compatible con una amplia gama de hardware inalámbrico. A título informativo, he aquí la lista, que se puede obtener mediante la ejecución de 'wpa_supplicant':

# wpa_supplicant
...

Driver list:

*HostAP
*Prism54
*NDISWrapper
*AMTEL
*IPW (both 2100 and 2200 drivers)
*WEXT (Generic Linux wireless extensions)
*Wired ethernet

La mayor parte del hardware inalámbrico está soportado por defecto por wpa_supplicant. Incluso si el fabricante del chipset no está en la lista (que es el caso más probable), todavía podríamos hacer uso de las Extensiones Wireless Genéricas (WEXT) para conectarnos a una red WPA-segura. La mayoría (~75%) del hardware está soportado por WEXT, mientras que alrededor del ~20% es compatible recompilando wpa_supplicant y/o los controladores de hardware a partir de cero, y, por desgracia, el restante 5%, es definitivamente incompatible. El PKGBUILD de WPA Supplicant está disponible en: /var/abs/core/wpa_supplicant, con el árbol ABS instalado.

Opcional: Instalar la versión con la interfaz gráfica del usuario

Los usuarios que prefieran disponer de una interfaz gráfica pueden instalar el paquete wpa_supplicant_gui, desde los repositorios oficiales, una interfaz gráfica de usuario desarrollada por el mismo equipo.

Configuración y conexión

WPA Supplicant viene empaquetado con un archivo de configuración de muestra: /etc/wpa_supplicant/wpa_supplicant.conf. Está bien comentado y ofrece muchos detalles sobre la mecánica de las conexiones de red. Todas las variables utilizadas en este artículo están descritas en ese archivo. También cuenta con una gran cantidad de muestras de configuración. Es muy recomendable leerlo, así como las páginas del manual man wpa_supplicant y man wpa_supplicant.conf.

Un archivo de configuración WPA_Supplicant contiene todos los ajustes de configuración para wpa_supplicant. Podemos crear tantos como queramos y ponerlos donde queramos, desde el momento en que debemos especificar qué archivo de configuración se va a usar en cada llamada de wpa_supplicant. Su contenido es muy simple:

  • La primera parte comprende la configuración global. Consiste en una serie de líneas key-value.
  • La segunda parte se compone de bloques de red, uno para cada «perfil» que deseemos configurar.

Con el fin de simplificar, dejaremos el archivo de configuración de muestra donde y como está, y trabajaremos en un archivo /etc/wpa_supplicant.conf completamente nuevo.

Hay varias maneras de administrar la configuración de wpa_supplicant. Podemos elegir entre uno de los siguientes métodos.

Manual

Archivo de configuración

En primer lugar, debemos conocer todos los parámetros necesarios para conectarnos al punto de acceso.

# iw wlan0 scan

Para obtener más detalles consulte aquí.

Con esto conoceremos los siguientes parámetros para wpa_supplicant:

  • ssid
  • proto (opcional en las redes sin cifrar)
  • key_mgmt
  • pairwise
  • group

Además, es posible que necesitemos conocer parámetros de autenticación (EAP, PEAP, etc.) para acceder a una red particular, como suele ser el caso, por ejemplo, en las universidades.

Primera acción

Ahora podemos crear un bloque de red en el archivo de configuración:

wpa_supplicant.conf
network={
        ssid="identificador de la red inalámbrica_ssid"
        psk="frase_de_acceso_secreta"
        # Parámetros adicionales (proto, key_mgmt, etc.)
}

Esta es la configuración básica necesaria para hacer funcionar WPA. La primera línea es la declaración de apertura del bloque de red, la segunda hace referencia al SSID del punto de acceso al que estamos intentando conectarnos, la tercera línea es la frase de contraseña.

Advertencia: No se olvide de las comillas dobles alrededor de SSID y PSK.

Frase de contraseña y PSK

El lector avispado habrá notado que la PSK debe ser una cadena hexadecimal. En efecto, la frase de contraseña («passphrase») y la PSK no son exactamente la misma cosa. La frase de contraseña es una clave legible por los usuarios que se utiliza junto con el SSID para que la máquina genere la clave familiarmente conocida como "PSK". A nivel de red, la frase de contraseña nunca se utiliza directamente, es solo una forma cómoda y eficaz de manejar la clave por nosotros.

Podemos proporcionar la versión hexadecimal directamente usando la utilidad wpa_passphrase, que se suministra como parte del paquete wpa_supplicant. Utilizaremos la sintaxis wpa_passphrase "[ssid]" "[passphrase]"

  • Un ejercicio de ejemplo:
# wpa_passphrase "mywireless_ssid" "secretpassphrase"

Esto debería generar el bloque de red siguiente:

network={
       ssid="mywireless_ssid"
       #psk="secretpassphrase"
       psk=7b271c9a7c8a6ac07d12403a1f0792d7d92b5957ff8dfd56481ced43ec6a6515
}

La tercera línea es la frase de contraseña (la clave legible), y la cuarta línea es la PSK (clave hexadecimal) que se requiere para conectarse. El símbolo de la almohadilla # comenta la línea relativa a la frase de contraseña (la frase de contraseña no es costumbre utilizarla, ya que siempre se proporciona la PSK para conectarnos).

Nota: La PSK hexadecimal no debe estar entre comillas.
  • Al utilizar wpa_passphrase, especificaremos el SSID y la contraseña correspondiente, y redirigiremos su salida al archivo /etc/wpa_supplicant.conf:
# wpa_passphrase mywireless_ssid "secretpassphrase" >> /etc/wpa_supplicant.conf

El símbolo >> redirigirá y añadirá la salida al archivo /etc/wpa_supplicant.conf, sin sobrescribirlo. Podemos agregar todos los bloques de red que deseemos. wpa_supplicant sabrá cuál usar en base a los SSID detectados en la zona.

Opciones de bloque de red

Todos los parámetros de seguridad deben ser especificados aquí. Debemos tener en cuenta que si no estámos seguros de cual es el valor que el punto de acceso requiere, podemos utilizar varios de ellos, wpa_supplicant utilizará automáticamente el que funciona. Por ejemplo, podemos agregar:

proto=WEP WPA

de modo que si el punto de acceso utiliza WEP o WPA, funcionará en cualquiera de ambos casos. Pero si se utiliza RSN (también conocido como WPA2), no lo encontrará por sí mismo, sino que hay que añadirlo a los otros valores.

Si el SSID está oculto, agregaremos la siguiente opción al bloque de red:

scan_ssid=1

Si necesitamos conectarnos a varias redes, basta con definir otro bloque de red en el mismo archivo: Es posible especificar una prioridad para cada bloque de red:

priority=17

Podemos cambiar la prioridad a voluntad, recordando que las prioridades con números altos son probados en primer lugar.

Hay un gran número de opciones que están disponibles para ajustar la red que se pueden investigar analizando el archivo de configuración original. En la mayoría de los casos, podemos utilizar los valores predeterminados sin especificar nada más en esa sección, de momento.

Opciones globales

Por último, tendremos que especificar algunas opciones globales. Especificaremos estas líneas adicionales en la parte superior del archivo /etc/wpa_supplicant.conf, con el editor que elijamos. La siguiente línea es obligatoria.

ctrl_interface=DIR=/run/wpa_supplicant GROUP=wheel
Nota: Para usar con netcfg>=2.6.1-1, este debe ser /run/wpa_supplicant (nota: no /var/run/wpa_supplicant). Esto, sin embargo, rompe lo predeterminado para wpa_cli (use la opción -p para sobrescribirlo). Si no se cambia esto, se obtiene un error como «Failed to connect to wpa_supplicant - wpa_ctrl_open: no such file or directory».

Hay una gran cantidad de parámetros opcionales (eche un vistazo a /etc/wpa_supplicant/wpa_supplicant.conf). Por ejemplo:

ap_scan=0
fast_reauth=1
Nota: La información de nuestra red se almacenará en formato de texto plano, por lo que puede ser deseable cambiar los permisos en el recién creado archivo /etc/wpa_supplicant.conf (por ejemplo, chmod 0600 /etc/wpa_supplicant.conf para que sea legible únicamente por root), dependiendo de la forma de seguridad que tengamos.

Ejemplo completo

wpa_supplicant.conf
ctrl_interface=DIR=/run/wpa_supplicant GROUP=wheel
fast_reauth = 1
ap_scan = 1

network ={
    ssid     = "mySSID"
    proto    = RSN
    key_mgmt = WPA-EAP
    pairwise = TKIP CCMP
    auth_alg = OPEN
    group    = TKIP
    eap      = PEAP
    identity = "myUsername"
    password = "********"
}

Configuraciones más sofisticadas, como la autenticación mediante servidor EAPOL o RADIUS están muy bien detalladas en la página de manual de wpa_supplicant.conf (man wpa_supplicant.conf ). No podemos olvidarnos de mirar /etc/wpa_supplicant/wpa_supplicant.conf. Estas configuraciones exceden las pretensiones de este documento.

Conexión

Ahora podemos intentar conectarnos manualmente.

En primer lugar, abrimos la interfaz Wi-Fi. Para los fines de este ejemplo, se utilizará la interfaz wlan0.

# ip link set wlan0 up

Por lo general, seremos capaces de usar el controlador Wireless EXTensions para wpa_supplicant, y si no, entonces quizás sea necesario buscar en Internet cómo hacerlo con nuestro dispositivo inalámbrico específico.

Ejecutaremos lo siguiente como root:

# wpa_supplicant -B -Dwext -i wlan0 -c /etc/wpa_supplicant.conf 

La sintaxis anterior le dice a wpa_supplicant que utilice la configuración del hardware predeterminada (WEXT - Linux Wireless EXTensions) y la asocie al SSID que se especifica en /etc/wpa_supplicant.conf. Además, esta asociación se debe realizar a través de la interfaz inalámbrica wlan0, y el proceso debe realizarse un segundo plano, (-B). Para una salida escrita, agregaremos -d o -dd (para depuración de errores) a fin de volcar la información a la consola. Podemos encontrar ejemplos adicionales aquí.

En la salida de la consola, debe haber una línea que diga 'Associated:' seguido de una dirección MAC. Todo lo que necesitamos ahora es una dirección IP.

Nota: Si no queremos o no necesitamos tocar /etc/wpa_supplicant.conf (por ejemplo, al instalar Arch), podemos pasar la salida de wpa_passphrase directamente a wpa_supplicant :
wpa_passphrase essid pass | wpa_supplicant -B -i wlan0 -c /dev/stdin

Como root, escribiremos:

# dhcpcd wlan0
Nota: ¡*No* solicitaremos una dirección IP inmediatamente! Debemos esperar para asegurarnos de que estamos correctamente asociados con el punto de acceso. Si usamos un script, podemos utilizar sleep 10s para que espere 10 segundos.

Comprobaremos que la interfaz ha recibido una dirección IP usando el paquete iproute:

# ip addr show wlan0

   wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
   link/ether 00:1C:BF:66:4E:E0 brd ff:ff:ff:ff:ff:ff
   inet 192.168.0.62/24 brd 192.168.0.255 scope global eth0
   inet6 fe80::224:2bff:fed3:759e/64 scope link 
      valid_lft forever preferred_lft forever

Si la salida se parece a lo anterior, entonces estamos conectados.

wpa_gui y wpa_cli

Hay dos interfaces para wpa_supplicant escritos por los mismos desarrolladores de wpa_supplicant: «wpa_cli», y «wpa_gui». wpa_cli es, como era de suponer, un frontend de línea de comandos, mientras que «wpa_gui» es un frontend basado en Qt para wpa_supplicant. wpa_cli se incluye con el paquete wpa_supplicant, mientras que wpa_supplicant_gui tiene su propio paquete.

wpa_gui o wpa_cli necesitan un archivo /etc/wpa_supplicant.conf muy básico. Un ejemplo simple:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=network
update_config=1

Esta configuración permitirá a los usuarios del grupo network controlar wpa_supplicant a través de las interfaces wpa_gui/wpa_cli. La variable update_config=1 permite que estos programas (wpa_cli, wpa_gui) modifiquen automáticamente el archivo /etc/wpa_supplicant.conf, para guardar las nuevas redes, o para realizar modificaciones de las ya existentes.

Iniciamos wpa_supplicant:

# wpa_supplicant -Dwext -i wlan0 -c /etc/wpa_supplicant.conf -B

donde la opción -D especifica el controlador inalámbrico (que es casi siempre wext), -i especifica la interfaz (sustituiremos wlan0 con el nombre de nuestra interfaz inalámbrica) y -c especifica el archivo de configuración a utilizar (normalmente /etc/wpa_supplicant.conf). -B instruirá a wpa_supplicant para ejecutarse como un demonio. Tendremos que ejecutar wpa_supplicant como root (o con permisos de root usando sudo), teniendo en cuenta también que cualquier usuario del grupo network puede ejecutar wpa_gui o wpa_cli.

wpa_gui o wpa_cli debe estar ahora operativo.

wpa_cli, cuando se invoca sin opciones, nos conducirá a un entorno prompt, pruebe a escribir help para obtener ayuda.

wpa_gui es muy sencillo de usar. Si pulsamos «scan», nos mostrará una lista de SSID detectados, podemos hacer doble clic en una de ellas para añadirla, lo cual nos abrirá un cuadro de diálogo que nos permitirá introducir la información necesaria para asociarnos a la red. Lo más probable es que solo tengamos que introducir la clave precompartida (PSK) si utilizamos WPA/WPA2 o la propia Key0 para una conexión WEP. Los protocolos para WPA/WPA2/WEP/Sin cifrar se detectan automáticamente. Otras opciones, como la autenticación 802.1X requerirán una configuración un poco más avanzada.

Advertencia: WEP es seriamente frágil y nunca debe utilizarse fuera de un entorno de ensayo/prueba. Utilice, al menos, WPA (WPA2 sería más recomendable) para tener una red inalámbrica más segura.

Después de agregar una red, es posible modificarla si cambia algo como la PSK. Iremos a la pestaña «Redes» y seleccionaremos Administrar la red que deseamos editar/eliminar. También podemos agregar una red no escaneada, como es el caso de las que ocultan su SSID.

Nota: Configurar la red inalámbrica para que no difunda el SSID no supone aumentar la seguridad de nuestra red. Es un ejercicio trivial poder identificar los SSID ocultos.
Nota: wpa_cli y wpa_gui no nos conseguirá una dirección IP o la creación de una tabla de enrutamiento adecuada. Ellos únicamente nos asocian a un punto de acceso inalámbrico.

Action script

Escribiremos un script como este:

~/libexec/wpa_cli-action.sh
case $2 in
CONNECTED)
	dhcpcd -x $1 >/dev/null
	dhcpcd $1 >/dev/null
;;
esac

Lo haremos ejecutable y lanzaremos wpa_supplicant con el archivo de configuración preferido:

# wpa_supplicant -B -c /etc/wpa_supplicant.conf -i wlan0
Nota: El archivo de configuración debe tener el ctrl_interface configurado de modo que wpa_cli pueda funcionar.

Ahora lanzaremos wpa_cli en modo demonio, apuntando al script previamente guardado:

# wpa_cli -B -a ~/libexec/wpa_cli-action.sh

Inicio automático al arrancar

Debemos tener en cuenta que todo el proceso que hemos hecho anteriormente no es permanente. Esto significa que en el siguiente reinicio, tendremos que proporcionar todas las órdenes de nuevo. He aquí algunos métodos para hacer que los cambios permanezcan.

Con systemd

Este es un proceso que consta de dos pasos. El primer paso consiste en activar el servicio wpa_supplicant. El segundo consiste en activar el servicio dhcpcd para nuestro adaptador específico.

Paso 1

Copiaremos el archivo de configuración a un archivo específico para el adaptador (wlan0 se utiliza aquí):

# cp /etc/wpa_supplicant/wpa_supplicant.conf  etc/wpa_supplicant/wpa_supplicant-wlan0.conf

Activaremos el target de systemd:

# systemctl enable wpa_supplicant@wlan0.service

Iniciaremos el servicio:

# systemctl start wpa_supplicant@wlan0.service

Comprobaremos el estado del servicio:

# systemctl status wpa_supplicant@wlan0.service

Después la voz "Active:" debe mostrar el valor "active (running)"

Paso 2

Probablemente ya tenemos un servicio dhcpcd para eth0, pero tenemos que añadir uno, específicamente, para nuestro dispositivo inalámbrico:

Activaremos el target de systemd:

# systemctl enable dhcpcd@wlan0.service

Iniciaremos el servicio:

# systemctl start dhcpcd@wlan0.service

Comprobaremos el estado del servicio:

# systemctl status dhcpcd@wlan0.service

Después la voz "Active:" debe mostrar el valor "active (running)"

El siguiente reinicio debería abrir el adaptador inalámbrico, asociarlo con la red, y obtener una dirección IP. Lo verificaremos con la siguiente orden:

# ip a

Usar script de arranque

Tango-view-refresh-red.pngThis article or section is out of date.Tango-view-refresh-red.png

Reason: Should change to systemd service. (Discuss in Talk:WPA supplicant (Español)#)

Para iniciar automáticamente wpa_supplicant y wpa_cli en el arranque, añada las siguientes líneas a /etc/rc.local:

wpa_supplicant -B -D wext -i wlan0 -c /etc/wpa_supplicant.conf
wpa_cli -B -a  /path/to/your/wpa_cli-action.sh

Usar wpa auto

Los scripts wpa_autoAUR disponibles en AUR se pueden utilizar para iniciar wpa_supplicant en el arranque y ejecutar automáticamente un cliente DHCP para configurar la conexión de red después de asociarse a una red inalámbrica, o podemos escribir nuestros propios scripts para hacer esto. También hay disponibles herramientas de gestión de wireless/network de buena calidad que son capaces de administrar tanto conexiones inalámbricas como cableadas.

netcfg

Instale netcfg desde los repositorios oficiales.

Crearemos una configuración de perfil de red copiando el archivo de ejemplo:

# cp /etc/network.d/examples/wireless-wpa-config /etc/network.d/wpa_suppl

Editaremos el nuevo archivo para asegurarnos de que especifica la interfaz adecuada, por ejemplo,

INTERFACE="wlan0"

El resto del archivo lo dejaremos como está.

Luego, editaremos /etc/conf.d/netcfg. Añadiremos el perfil de red en la matriz NETWORKS:

NETWORKS=(... wpa_suppl)

Por último, añadiremos los perfiles de redes a systemd:

# systemctl enable netcfg@wpa_suppl

En el siguiente reinicio, la interfaz inalámbrica se abrirá y comenzará wpa_supplicant. Si una red conocida está disponible, se establecerá una conexión. Para obtener más información sobre netcfg consulte Network Profiles.

Wicd

Instale wicd desde los repositorios oficiales.

Wicd es muy sencillo: buscar redes, rellenar los datos necesarios y conectar. Puede que tengamos que añadir /usr/lib/wicd/autoconnect.py a los scripts de init y de gestión de control para reconectar a redes, si la reconexión automática no funciona como debiera.

Solución de problemas

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: please use the first argument of the template to provide a brief explanation. (Discuss in Talk:WPA supplicant (Español)#)

La mayoría de los problemas están relacionados con el proceso de asociación, por lo tanto, debemos mirar atentamente la salida de wpa_supplicant cuando sospechemos que está funcionando mal. Agregaremos -d (para depuración de errores) a fin de aumentar el nivel de detalle. Por lo general -dd es suficiente. -dddd podría ser exagerado.

Cuando estemos inspeccionando el registro, echaremos un vistazo a las entradas como esta:

ioctl[WHATEVER]: Operation not supported

Si este es el caso, estaremos experimentando un problema con los controladores. Actualizaremos los controladores de WLAN, o cambiaremos el parámetro -D para wpa_supplicant.

Otro problema común es el proporcionado por el mensaje No suitable AP found. wpa_supplicant puede tener problemas para encontrar ESSID ocultos. Por lo general, ajustando scan_ssid=1 en nuestro bloque network resolverá el problema.

Fallback: recompilar wpa_supplicant

Obtendremos una copia del código fuente de wpa_supplicant desde la página de inicio o desde ABS. Una vez descargado y extraído, miraremos el archivo '.config' (si, está oculto). La sintaxis del archivo es como un archivo de configuración del kernel, solo que mucho más pequeño. Miraremos las secciones llamadas CONFIG_DRIVER_DRIVERNAME y eligiremos sí o no, dependiendo de nuestro controlador. Hay que tener cuidado con las opciones elegidas, porque tendremos que especificar una ruta de acceso adicional al código fuente de los controladores inalámbricos para compilar correctamente los componentes de asociación de bajo nivel. Algunas tarjetas basadas en Atheros pueden necesitar la compilación de wpa_supplicant utilizando las últimas liberaciones madwifi-svn disponibles. Si este es el caso, he aquí un ejemplo para ayudarnos a través del proceso de compilación:

ejemplo madwifi: editaremos las líneas siguientes en el archivo de configuración como se indica. Esto supone que hemos compilado madwifi con ABS y que el código fuente de la compilación se almacena en /var/abs/local/madwifi/src/.

#Driver interface for madwifi driver
CONFIG_DRIVER_MADWIFI=y
#Change include directories to match with the local settings
CFLAGS += -I/var/abs/local/madwifi/src/madwifi

Una vez configurado, podemos proceder con makepkg como de costumbre.

No se puede utilizar wpa_gui para configurar nuevas redes

Por defecto, la variable ap_scan se establece en 0, lo que significa que wpa_supplicant delega en el controlador LAN inalámbrico la exploración de los puntos de acceso. Si el controlador no es compatible con el escaneado, wpa_supplicant se cerrará cuando se le pida que busque las redes inalámbricas. En este caso, añadir:

ap_scan=1

en /etc/wpa_supplicant.conf

Sin dirección IP del servidor DHCP

Si no podemos obtener una dirección IP desde el servidor DHCP cuando ejecutamos dhcpcd wlan0, utilizaremos la orden siguiente para detener wpa_supplicant y volver a intentarlo:

# wpa_cli terminate
# iwconfig wlan0 essid "myEssid" key on #maybe "key on" is optional
# sleep 15; dhcpcd wlan0

Error de asociación de netcfg en el arranque

Lo siguiente es una experiencia personal. La tarjeta Broadcom BCM4322 WLAN es bastante lenta en asociarse con el punto de acceso en el arranque. En /etc/network.d/<su_perfil>, probaremos añadiendo la siguiente línea:

TIMEOUT=30

Reiniciaremos para ver el resultado.

Nota: TIMEOUT=30 puede ser un poco alto, pero siempre se puede configurar el valor de tiempo de espera a uno que se ajuste a nuestras necesidades.

La conexión inalámbrica cae frecuentemente

Si la conexión cae con frecuencia y dmesg muestra este mensaje:

wlan0: deauthenticating from XX:XX:XX:XX:XX:XX by local choice (reason=3)

una solución puede ser tratar de desactivar la opción «group key update interval» en el router.