User Tools

Site Tools


doc:appunti:linux:tux:network-manager

NetworkManager

Il sistema NetworkManager dovrebbe consentire una gestione semplice e dinamica delle connessioni di rete. L'utente non privilegiato puo' attivare, disattivare e configurare connessioni Ethernet e WiFi, memorizzare le impostazioni per riutilizzarle rapidamente quando necessario.

Il sistema consiste in un demone che gira con i privilegi di root ed espone un'interfaccia D-Bus. NetworkManager utilizza altri sottositemi per configurare l'hardware, ad esempio wpa_supplicant per le connessioni WiFi.

L'utente dispone di programmi client, di solito sotto forma di applet per il Desktop Manager. In ambiente KDE (ma funziona anche con Xfce) si puo' utilizzare knetworkmanager fornito dal pacchetto Debian Squeeze network-manager-kde.

NetworkManager, password WiFi

L'installazione predefinita dell'ambiente Xfce in Debian 10 Buster utilizza NetworkManager per la gestione utente delle connessioni di rete, comprese quelle WiFi.

Ogni rete WiFi che viene utilizzata dall'utente, produce un file nella directory /etc/NetworkManager/system-connections/. Si tratta di file leggibili solo da root che contengono le informazioni sulla rete WiFi, compresa la password in chiaro. Ogni file avrà nome del tipo <ESSID>.nmconnection e conterrà informazioni del tipo:

[connection]
id=Home-WiFi
uuid=77d75121-6bfe-4dad-88a3-9fc32ca0dd4a
type=wifi
permissions=

[wifi]
mac-address=20:4E:F6:BA:8A:3F
mac-address-blacklist=
mode=infrastructure
ssid=Home-WiFi

[wifi-security]
auth-alg=open
key-mgmt=wpa-psk
psk=WiFiSecret

NetworkManager, password WiFi in Kwallet

Con Debian 5 Lenny e Debian 6 Squeeze, NetworkManager può utilizzare il sistema KDE Wallet (fornito dal pacchetto kdebase-runtime in Debian 5 e 6, oppure da kwalletmanager in Debian 10 Jessie e successive) per memorizzare le password WiFi utilizzate dall'utente.

Le credenziali per accedere alle reti WiFi possono essere memorizzate da knetworkmanager nel sistema kwalletd (il portachiavi di KDE, fornito dal pacchetto kdebase-runtime). L'interfaccia di kwalletmanager consente di vedere il contenuto del portachiavi, esportare e importare i dati. I file che costituiscono il portachiavi sono in $HOME/.kde/share/apps/kwallet/.

In Debian Lenny le password WiFi erano memorizzate in kwalletd nella cartella knetworkmanager, sottocartella Maps. Per ogni ESSID viene memorizzata una entry con di nome uguale all'ESSID e chiave password.

In Debian Squeeze le password sono memorizzate sempre in kwalletd, ma nella cartella Network Management, sottocartella Maps. Per ogni connessione viene creata una entry identificata da uno uuid che contiene la password. L'ESSID ed altri dati della connessione sono memorizzati in file separati (directory $HOME/.kde/share/apps/networkmanagement/connections/), identificati tramite la stessa uuid.

Configurazione con IP statico

In una configurazione desktop che abbia però optato per un IP statico (definito in /etc/network/interfaces), NetworkManager non prende in carico la configurazione dell'interfaccia. Questo determina uno stato in cui NetworkManager crede che il sistema sia privo di connessione di rete, in queste condizioni alcuni programmi (Pidgin ed Evolution per citarne alcuni) si rifiutano di funzionare.

Una soluzione può essere quella di rimuovere il pacchetto NetworkManager se non viene utilizzato per altre connessione WiFi, GPRS o simili.

Altrimenti ci sono alcuni suggerimenti in questo bug report e in questa pagina wiki, la soluzione è impostare quanto segue in /etc/NetworkManager/NetworkManager.conf:

[ifupdown]
managed=true

È importante che anche i DNS server siano impostati in /etc/network/interfaces.

In queste condizioni bisogna anche impostare opportunamente il file /etc/hosts con qualcosa del genere:

127.0.0.1       localhost.localdomain   localhost
192.168.3.2     delfi.my.rigacci.org    delfi

Non aver definito correttamente il nome dell'host (nella sua forma breve e in quella fqdn) può causare il fallimento del protocollo di autenticazione SASL, ad esempio in Pidgin si può incappare nell'errore:

Server does not use any supported authentication method

che nel debug log (Menu HelpDebug Window) si evidenzia con:

sasl: sasl_state is -1, failing the mech and trying again

NetworkManager e resolvconf

Sembra che sia possibile far convivere NetworkManager e resolvconf, anche se entrambi vogliono gestire in maniera dinamica il file /etc/resolv.conf. Nel caso specifico si voleva lasciare NetworkManager la gestione della WiFi e gestire manualmente la Ethernet.

  1. Configurare la Ethernet in /etc/network/interfaces in modo che NetworkManager non la prenda in carico
  2. Alla bisogna eseguire resolvconf per aggiungere/togliere il DNS

Ecco ad esempio uno script che può essere eseguito pare senza controindicazioni:

route add default ge 10.0.0.1
echo "nameserver 10.0.0.10" | resolvconf -a eth0
doc/appunti/linux/tux/network-manager.txt · Last modified: 2021/05/20 06:15 by niccolo