Conectarse a la red WiFi desde un terminal/tty

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.

Listado de Redes.

 

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.

Todas las acciones en el prompt pueden ser completadas mediante la tecla Tabular

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.

Es posible que en Debian, al hacer un ping google.com, la red no funcione, aunque iwd informe que está conectado. En este caso basta con ejecutar 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)

Este método no lo recomiendo, simplemente es una opción más, y forma parte de las características de iwd.

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

¿Te resultó interesante? Compártelo ...



Percaff_TI99

Publicado por Percaff_TI99

http://gutl.jovenclub.cu/ » Forma parte de GUTL desde el 10 agosto, 2013. Amante de la ciencia y tecnología en general. Usuario de GNU/Linux desde hace varios años.

Este artículo tiene 6 comentarios

  1. 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.

    • 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.

Los comentarios están cerrados.