El libre pensamiento para un internet libre

No estas registrado.  

Anuncio

nord_600_250

#1 23-02-2023 17:09:39

kcdtv
Administrator

Registrado: 14-11-2014
Mensajes: 5,701

iwd;¿El demonio WiFi Linux qué lo cambiara todo?

iwd;¿El demonio WiFi Linux qué lo cambiara todo?

   iNet wireless daemon es un demonio de redes WiFi para Linux con características muy interesantes
Es una propuesta innovadora iniciada por Intel y que tiene mucho potencial,
He hablado de Intel pero olvidaros inmediatamente de este nombre: No es para tarjetas Intel, es para cualquier dispositivo Wifi en Linux.
Un demonio universal que podría llegar a ser un "game changer" en el ecosistema GNU-Linux.
El proyecto está estampillado "kernel.org", o sea: Está desarrollado en el seno de la mismísima fundación linux.   
Ha llegado a madurez y forma ahora parte de los repositorios estables de Debian (desde debian 11 - aka bookworm)

  Lo primero a destacar sobre iwd es la solidez del concepto base: iwd no depende de ninguna librería extra y utiliza únicamente (casi) elementos del núcleo linux (el kernel)   

iwd_1_20230212-1328.jpg

iwdwiki escribió:

iNet Wireless Daemon (iwd) project aims to provide a comprehensive Wi-Fi connectivity solution for Linux based devices. The core goal of the project is to optimize resource utilization: storage, runtime memory and link-time costs. This is accomplished by not depending on any external libraries and utilizes features provided by the Linux Kernel to the maximum extent possible. The result is a self-contained environment that only depends on the Linux Kernel and the runtime C library.

wiki iwd - "Start" @ kernel.org

  Tenemos a un programa increíblemente liviano tanto por su tamaño (menos de 2MB en debian - incluye la cli ) que por el uso de recursos

  Lo segundo a destacar, y lo más asombroso, es todo lo que pueden hacer estos chiquitos 2 MB. 
Señoras y señores, con iwd y su cli podemos:

  • Escanear redes

  • Conectarnos a una red wifi (podemos prescindir de wpa_suppliacnt))

  • Obtener la IP por dhcp (podemos prescindir de isc-dhcp-client)

  • Crear un hotspot (podemos prescindir de hostapd)

  • Hotspot que tiene su propio servicio casero para dhcp (podemos prescindir de dnsmasq)

Tiene soporte WPA3, WPS, ipv4y6...
...¡Lo único que podemos echar en falta es el soporte modo monitor!  big_smile

  Lo tercero a destacar, y es lo que vamos a ver ahora, es que usarlo es muy simple.

Instalación y configuración

Está en los repositorios de debian

Package: iwd
Version: 2.3-1
Priority: optional
Section: net
Maintainer: Jonas Smedegaard <dr@jones.dk>
Installed-Size: 2.002 kB
Depends: init-system-helpers (>= 1.51), libc6 (>= 2.34), libell0 (>= 0.56), libreadline8 (>= 6.0)
Recommends: dbus | dbus-system-bus, wireless-regdb
Breaks: orphan-sysvinit-scripts (<< 0.11)
Homepage: https://iwd.wiki.kernel.org/
Download-Size: 491 kB
APT-Manual-Installed: yes
APT-Sources: https://deb.debian.org/debian sid/main amd64 Packages
Description: wireless daemon for Linux
iNet Wireless Daemon (iwd) is a minimalistic wireless daemon
that uses modern Linux interfaces
like cfg80211 and nl80211 (netlink).
The daemon provides a D-Bus API.
.
The daemon can be controlled from the command line
with the included iwctl client utility.
.
The included iwmon utility can be used
to monitor the 802.11 subsystem generic netlink commands and events.
It uses the nlmon kernel driver from Linux 3.10 and later.
.
Note that the package defaults
to relying on dbus activation to start.
If you want to use iwd standalone without any manager,
then you'll need to manually enable the system service.

  Se instala con:

sudo apt install iwd

Si prefieres compilarlo tu mismo;

git clone https://git.kernel.org/pub/scm/network/wireless/iwd.git

Instrucción instalación manual

  Instalando el paquete apt tendremos a un directorio /etc/iwd que aloja un fichero de configuración (main.conf)
Lo vamos a editar ahora para que iwd negocie la asignación automática de IP 

sudo nano /etc/iwd/main.conf

"Des-comentamos" (quitamos la almohadilla en inicio de linea) la variable EnableNetworkConfiguration que quedará declarada con valor "true".

iwd_10.jpg

Guardamos con <Ctrl + O> , confirmamos el nombre del fichero con <Enter> y salimos de nano con <Ctrl + X>.

  Esto hecho y antes de conectarnos con iwd, debemos detener wpa_supplicant y NetworK Manager para evitar conflictos.
Existe la opción de usar Network Manager con iwd en lugar de wpa_supplicant (fijaros en la primera imagen)  pero se considera aún un poco "experimental"

iwdwiki escribió:

Network Manager version 1.12 integrated a basic IWD-based wifi backend as an alternative to wpa_supplicant. To use Network Manager (NM) with the IWD backend one NM configuration change is necessary. Additionally the versions of the two software packages need to be compatible, this is because IWD's API and capabilities are evolving and the NM backend is adapting to those changes. IWD and the NM backend are work in progress and the capabilities are still limited.

iwd wiki "Network Manager" @ kernel.org

  1. Detenemos Network Manager

    sudo systemctl stop NetworkManager
  2. Paramos wpa_supplicant

    sudo systemctl --now disable wpa_supplicant
  3. Arrancamos iwd

    sudo systemctl --now enable iwd

iwd_2_20230221-1158.jpg

Conexión WPA

  Ahora lanzamos la consola interactiva de iwd: iwctl.

sudo iwctl

iwd_3_20230221-1219.jpg

Podemos ver las opciones con help

                               iwctl version 2.3                               
--------------------------------------------------------------------------------
  Usage
--------------------------------------------------------------------------------
  iwctl [--options] [commands]

                               Available options                               
--------------------------------------------------------------------------------
  Options                                             Description                 
--------------------------------------------------------------------------------
  --username                                          Provide username
  --password                                          Provide password
  --passphrase                                        Provide passphrase
  --dont-ask                                          Don't ask for missing
						      credentials
  --help                                              Display help

                               Available commands                              
--------------------------------------------------------------------------------
  Commands                                            Description                 
--------------------------------------------------------------------------------

Adapters:
  adapter list                                        List adapters                   
  adapter <phy> show                                  Show adapter info               
  adapter <phy> set-property <name> <value>           Set property                    

Ad-Hoc:
  ad-hoc list                                         List devices in Ad-hoc mode     
  ad-hoc <wlan> start <"network name"> <passphrase>   Start or join an existing       
                                                      Ad-Hoc network called "network   
                                                      name" with a passphrase         
  ad-hoc <wlan> start_open <"network name">           Start or join an existing open   
                                                      Ad-Hoc network called "network   
                                                      name"                           
  ad-hoc <wlan> stop                                  Leave an Ad-Hoc network         

Access Point:
  ap list                                             List devices in AP mode         
  ap <wlan> start <"network name"> <passphrase>       Start an access point called    
                                                      "network name" with a           
                                                      passphrase                      
  ap <wlan> start-profile <"network name">            Start an access point based on   
                                                      a disk profile                  
  ap <wlan> stop                                      Stop a started access point     
  ap <wlan> show                                      Show AP info                    
  ap <wlan> scan                                      Start an AP scan                
  ap <wlan> get-networks                              Get network list after          
                                                      scanning                        

Devices:
  device list                                         List devices                    
  device <wlan> show                                  Show device info                
  device <wlan> set-property <name> <value>           Set property                    

Known Networks:
  known-networks list                                 List known networks             
  known-networks <"network name"> forget              Forget known network            
  known-networks <"network name"> show                Show known network              
  known-networks <"network name"> set-property        Set property                    
      <name> <value>                                                                  

WiFi Simple Configuration:
  wsc list                                            List WSC-capable devices        
  wsc <wlan> push-button                              PushButton mode                 
  wsc <wlan> start-user-pin <PIN>                     PIN mode                        
  wsc <wlan> start-pin                                PIN mode with generated 8       
                                                      digit PIN                       
  wsc <wlan> cancel                                   Aborts WSC operations           

Station:
  station list                                        List devices in Station mode    
  station <wlan> connect <"network name"> [security]  Connect to network              
  station <wlan> connect-hidden <"network name">      Connect to hidden network       
  station <wlan> disconnect                           Disconnect                      
  station <wlan> get-networks [rssi-dbms/rssi-bars]   Get networks                    
  station <wlan> get-hidden-access-points             Get hidden APs                  
      [rssi-dbms]                                                                     
  station <wlan> scan                                 Scan for networks               
  station <wlan> show                                 Show station info               

Device Provisioning:
  dpp list                                            List DPP-capable devices        
  dpp <wlan> start-enrollee                           Starts a DPP Enrollee           
  dpp <wlan> start-configurator                       Starts a DPP Configurator       
  dpp <wlan> stop                                     Aborts DPP operations           
  dpp <wlan> show                                     Shows the DPP state             

Station Debug:
  debug <wlan> connect <bssid>                        Connect to a specific BSS       
  debug <wlan> roam <bssid>                           Roam to a BSS                   
  debug <wlan> get-networks                           Get networks                    
  debug <wlan> autoconnect on|off                     Set AutoConnect property        


Miscellaneous:
  version                                             Display version                 
  quit                                                Quit program  

Voy a ver si mi interfaz está detectada:

device list

Ups,,,
Cómo de costumbre, Network Manager ha "apagado" la interfaz cuando lo hemos parado. Es un mal educado de primera...

iwd_4_20230221-1229.jpg

Abro otra consola y tecleo

sudo rfkill unblock wifi

Y de paso levanto la interfaz para estar seguro.

sudo ip l s wlan0 up

Notar en la captura anterior "Auto-refresh is disabled. Enlarge window width to at least 80 to enable"
Si queremos refrescar la vista en consola debemos tener una consola con una anchura superior a 80 caracteres.
- Empezamos con el Escaneo. Se hace con

station wlan0 scan

- Para ver los resultados

station wlan0 get-networks

iwd_6_20230221-1444.jpg

- Para conectarnos a nuestra red debemos indicar su essid (1)

station wlan0 connect Nombredemired

- Y entrar la llave WPA (2)

iwd_7_20230221-1527.jpg

  Nos conectamos al instante sin necesidad de invocar un demonio dhcp para tener una IP.
Podemos comprobar el estado de la conexión con

station wlan0 show

  La salida es agradable y limpia.
Además los datos se actualizan (calidad señal y tasa de transmisión) cada segundo.

iwd_8.jpg

  Las sintaxis de iwd y iwctl me parecen lógicas y bien pensadas.
Por ejemplo hemos usado "show" para ver la información de nuestra conexión cómo cliente (station)
Si quiero ver la información sobre los drivers de la interfaz, usaré "show" pero esta vez sobre "adapter",

iwd_9.jpg

Para pasar la interfaz de un modo a otro lo haremos con "set-property". Si quiero hacer un soft ap:

device wlan0 set-property Mode ap

Una vez hecho configuraremos el repetidor wifi invocando esta vez ap:
A ver si lo adivinas:

ap wlan0 start "MyWiFi"  12345678

Es para crear una red llamada "MyWifi" con llave WPA 12345678.

exit wpa_supplicant, exit hiostapd, exit demonio dhcp...
¿A qué esperamos para pasarse del todo a iwd?
Para un usuario que quiere experimentar y quiere el poder total sobre sus interfaces wifi, iwd se queda corto,
No tiene ni la mitad de las opciones de wpa_supplicant o hostapd.
  De momento está bien para operaciones básicas y es más eficaz que usar tres demonios diferentes.
  Es perfecto para un pequeño dispositivo IOT linux o para una distribución "light", 
  O si hacemos un programa en un contenedor que no requiere funcionalidades wifi adelantadas
  Habrá de seguir de cerca el tema de la compatibilidad con Network Manager porque sobre papel iwd es la mejor opción.

Desconectado

Anuncio

nord_600_250

Temas similares

Tema Respuestas Vistas Ultimo mensaje
26 7766 15-03-2023 16:57:32 por kcdtv
Pegado:
34 3806 12-03-2023 18:24:22 por Guybrush92
Pegado:
Pegado:: Script multiuso wifi para Kali y otras distros por v1s1t0r  [ 1 2 3 18 ]
436 63605 07-03-2023 12:35:27 por kcdtv
0 420 23-02-2023 17:09:39 por kcdtv
Pegado:
114 258628 19-02-2023 17:36:14 por chuchof

Pie de página

Información del usuario

Ultimo usuario registrado: erpini
Usuarios registrados conectados: 0
Invitados conectados: 16

Estadisticas de los foros

Número total de usuarios registrados: 2,432
Número total de temas: 1,632
Número total de mensajes: 15,528

Máx. usuarios conectados: 373 el 30-09-2019 15:04:36