En muchas ocasiones cuando instalaba distribuciones de características kiss, o desde imágenes mínimas ej.: Debian GNU/Linux, era necesario configurar la red desde un terminal tty. Es cierto que podemos disponer del cable ethernet —no necesitaríamos más nada para conectarnos—. Sin embargo, es particularmente útil dominar, al menos, un método de conexión vía WLAN.
En este tutorial voy a describir tres opciones para conectarnos a la red WiFi que te pueden servir de ayuda en algún caso en particular, sobre todo, cuando no se dispone de una opción gráfica.
Las opciones que suelo utilizar son:
- Mediante los comandos wpa_passphrase/wpa_supplicant
- La herramienta nmtui
- El servicio iwd
Comandos wpa_passphrase/wpa_supplicant
Si bien en el pasado el estándar de cifrado WEP solo requería de iwconfig y dhclient/dhcpcd, en la actualidad, este método quedó en desuso. Los estándares de cifrados más utilizados y seguros son los WPAs (WPA2, WPA3). Aunque, hablar de seguros es relativo, ya que se ha demostrado que también pueden ser vulnerados. Aun así, son infinitamente menos inseguros que WEP.
Para conectarnos a nuestra red WiFi, previamente debemos seguir una serie de pasos: en primer lugar hay que asegurarse de que la tarjeta de red esté levantada, si no es el caso, procedemos desde un terminal (root) con el comando: ip link set wlan0 up
.
ip es el reemplazo del comando ifconfig, no obstante, si tienes este último instalado puedes levantar la interfaz con: ifconfig wlan0 up
. Es probable que la interfaz de red se denomine wlp4s0, wlp5s0 o similar. Finalizado este paso podemos cotejar que el nombre de nuestra red esté presente:
sudo iwlist scan | grep -i essid
Ahora procedemos a los pasos de conexión propiamente dichos.
Crear el archivo de configuración con el ESSID y password
Muchos usuarios crean este archivo manualmente, sin embargo, el comando wpa_passphrase lo hace por nosotros. La sinopsis es bien simple: wpa_passphrase <ssid> [passphrase] > /path/to/foo.conf
. Como ven, la salida (stdout) se direcciona al archivo de configuración que escojamos. Ejemplo para un ESSID: UNIVAC cuya contraseña (ascii) es yorkshire:
wpa_passphrase UNIVAC yorkshire > /root/wpa.conf
El archivo generado tiene como destino el directorio /root, pero puede ser /etc/wpa.conf, u otro. Asegurarse de que no haya otro archivo con el mismo nombre antes de realizar esta operatoria.
Archivo /root/wpa.conf generado por wpa_passphrase:
network={ ssid="UNIVAC" #psk="yorkshire" psk=2bc929bdb167ee3f69abf7fdedb757e685715d4f65e4175583466c30fa2cf34c }
Establecer la conexión con wpa_suppicant
Sinopsis: wpa_supplicant -B -i interfaz -c /path/to/file_config.conf -D driver
wpa_supplicant -B -i wlan0 -c /root/wpa.conf
La opción -B es: ejecutar en segundo plano (background), además no escogí ningún driver, se lo dejé a wpa_supplicant. Puedes ver los drivers que soporta la tarjeta de red ejecutando wpa_supplicant
sin argumentos:
drivers: nl80211 = Linux nl80211/cfg80211 wext = Linux wireless extensions (generic) wired = Wired Ethernet driver macsec_linux = MACsec Ethernet driver for Linux none = no driver (RADIUS server/WPS ER)
En este ejemplo se elige el driver nl80211: wpa_supplicant -Dnl80211 -iwlan0 -c /etc/wpa_supplicant.conf
Obtener la IP mediante el comando dhcpcd
dhclient -v wlan0
Ya estaríamos conectados a la red WLAN (ping google.com para verificar).
En resumen:
wpa_passphrase UNIVAC yorkshire > /root/wpa.conf wpa_supplicant -B -i wlan0 -c /root/wpa.conf dhclient -v wlan0
Ejecutar man wpa_supplicant
para más información.
Herramienta nmtui
Esta —excepcional— herramienta es muy intuitiva , básicamente es el gestor de redes de NetworkManager en ncurses. Liviano, simple, y muy útil para entornos no-gráficos. En caso de listar pocas redes inalámbricas, es probable que requiera hacer un escaneo de redes con el comando: sudo iwlist scan wlp4s0
, o wlan0
, antes de ejecutar nmtui.
nmtui entre muchas funcionalidades nos permite:
- Seleccionar redes disponibles: WiFi/cableada.
- Editar una red existente: ethernet/wireless.
- Crear/eliminar una nueva red estática/dinámica.
- Clonar MAC.
- Configurar DNS.
- Creación de redes puente, infiniband, Túnel IP, etc.
Servicio iwd (iNet wireless daemon)
iwd es una muy buena alternativa a wpa_supplicant, y al igual que este, funciona como demonio. La diferencia con otros comandos de gestión de redes, es que: iwd cuenta con su propia consola interactiva: [iwd]#. Cabe destacar que iwd es compatible con connman y network-manager, estos pueden gestionar redes a través de iwd como backend.
Instalación de iwd
Debian y derivadas:
sudo apt install iwd
Arch y derivadas:
sudo pacman -S iwd
Fedora y derivadas:
sudo dnf install iwd
openSUSE:
sudo zypper install iwd
Una vez instalado iwd el siguiente paso es parar el servicio wpa_supplicant para que no entre en conflicto. Luego verificar que el servicio iwd está corriendo:
sudo systemctl stop wpa_supplicant.service sudo systemctl status iwd.service
seguidamente podemos hacer uso del prompt interactivo con: iwctl
. El primer comando sugerido es [iwd]# help
, a partir de aquí solo resta realizar algunas tareas básicas como: listar dispositivos y redes a las cuales conectarnos.
Listar dispositivos
El nombre del dispositivo (wlan0/wlp4s0/wlp5s0) puede variar de acuerdo a la distribución, o al driver en uso.
[iwd]# device list
Escanear/Listar redes
[iwd]# station device scan
[iwd]# station device get-networks
Conectarse a una red
[iwd]# station device connect SSID
pedirá la contraseña y la almacenará en: /var/lib/iwd/ bajo el formato: ESSID.psk. En el futuro recurrirá a este archivo para conectarse automáticamente. Suponiendo que el nombre del ESSID es UNIVAC y la contraseña: yorkshire, el archivo de configuración quedaría de la siguiente manera:
/var/lib/iwd/UNIVAC.psk:
[Security] PreSharedKey=2bc929bdb167ee3f69abf7fdedb757e685715d4f65e4175583466c30fa2cf34c Passphrase=yorkshire
Los datos PreSharedKey y Passphrase son obtenidos por iwd mediante el comando wpa_passphrase de wpa_supplicant. Este apartado se cubrió al comienzo del artículo.
sudo dhclient -v
para que se active la conexión. Luego se conectará con normalidad, sin necesidad de este último requerimiento.Desconectarse
[iwd]# station device disconnect
En la imagen de cabecera se detallan, como ejemplo, cada uno de los pasos descriptos para la red UNIVAC.
iwd y WPS (push-button)
wsc es un comando muy simple, y nos permite conectarnos a la red sin demasiados preámbulos. Se trata de una funcionalidad que traen la mayoría de los routers, como es el botón WPS. Esta opción puede ser utilizada en conjunción con el servicio iwd.
Primeramente hay que habilitar en el router, la casilla destinada a WPS. Luego ejecutar en el prompt ([iwd]#) el comando destinado a WiFi Simple Configuration:
[iwd]# wsc device push-button
seguidamente: presionar el botón WPS del router. La conexión se hará efectiva en unos pocos segundos. Cabe mencionar que cualquier dispositivo que esté en el rango de nuestro router, tiene pleno acceso al momento que pulsamos el botón WPS. Este método tan práctico, al igual que la opción PIN mode, no es seguro. Lo más conveniente es tener deshabilitada la función WPS en el router.
Si iwd no te convence puedes deshabilitarlo —o eliminarlo—, para que no entre en conflicto con wpa_supplicant.
sudo systemctl stop iwd.service sudo systemctl disable iwd.service
Fuente:
https://es.wikipedia.org/wiki/Wi-Fi_Protected_Setup
https://wiki.archlinux.org/index.php/Iwd
me quede loco con el nmtui, si hubiera sabido de esto antes no tendria que haber hecho esto
https://github.com/venomega/shdumps/wifi/start.sh
Hola @Ernesto:
Me alegro que te haya gustado. Igualmente el script que hiciste está muy bien. Es bueno que lo hayas compartido, gracias por el dato.
Además se pueden utilizar varios comandos para configurar la barra de estado de algún windows manager, como DWM -en mi caso-.
El link que pusiste no me funciona. Este si (https://github.com/venomega/shdumps/blob/master/wifi/start.sh)
Saludos.
Excelente artículo. Muchas gracias!!! nmtui se ha convertido en mi gestor de conexiones, gracias a ese deje de depender de un botón en systray para manejar la red.
Gracias a ti por pasarte. nmtui sin duda está cobrando adeptos. Es realmente fácil trabajar con el, lo hace ideal para todo tipo de usuarios.
Saludos.
Muchas Gracias desde un usuario de Arch!
Gracias a vos por leernos.
Saludos.
P.D. Tengo ganas de volver a probar Arch, cuando termine algunas pruebas en Debian, veré si hago una instalación limpia.