====== 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 **%%.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 **''[[..:sa:etc_network_interfaces|/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 [[http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=549451|bug report]] e in questa [[http://wiki.debian.org/NetworkManager|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 //Help// -> //Debug 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. - Configurare la Ethernet in ''/etc/network/interfaces'' in modo che NetworkManager non la prenda in carico - 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