Linux Professional Institute Learning Logo.
Torna al contenuto principale
  • Home
    • Tutte le Risorse
    • LPI Learning Materials
    • Collabora
    • Publishing Partner
    • Diventa un Publishing Partner
    • FAQ
    • Collaboratori
    • Contatto
  • LPI.org
109.2 Lezione 2
Argomento 105: Shell e Script di Shell
105.1 Personalizzare e utilizzare l'ambiente di shell
  • 105.1 Lezione 1
  • 105.1 Lezione 2
  • 105.1 Lezione 3
105.2 Personalizzare o scrivere semplici script
  • 105.2 Lezione 1
  • 105.2 Lezione 2
Argomento 106: Interfacce Utente e Desktop
106.1 Installare e configurare X11
  • 106.1 Lezione 1
106.2 Desktop grafici
  • 106.2 Lezione 1
106.3 Accessibilità
  • 106.3 Lezione 1
Argomento 107: Attività Amministrative
107.1 Gestire account utente e gruppo e file di sistema correlati
  • 107.1 Lezione 1
  • 107.1 Lezione 2
107.2 Automatizzare le attività di amministrazione del sistema attraverso la pianificazione
  • 107.2 Lezione 1
  • 107.2 Lezione 2
107.3 Localizzazione e internazionalizzazione
  • 107.3 Lezione 1
Argomento 108: Servizi Essenziali di Sistema
108.1 Mantenere l'orario di sistema
  • 108.1 Lezione 1
  • 108.1 Lezione 2
108.2 Logging di sistema
  • 108.2 Lezione 1
  • 108.2 Lezione 2
108.3 Concetti base dei Mail Transfer Agent (MTA)
  • 108.3 Lezione 1
108.4 Gestire stampa e stampanti
  • 108.4 Lezione 1
Argomento 109: Fondamenti di Networking
109.1 Fondamenti dei protocolli Internet
  • 109.1 Lezione 1
  • 109.1 Lezione 2
109.2 Configurazione di rete persistente
  • 109.2 Lezione 1
  • 109.2 Lezione 2
109.3 Risoluzione dei problemi di base di una rete
  • 109.3 Lezione 1
  • 109.3 Lezione 2
109.4 Configurare un client DNS
  • 109.4 Lezione 1
Argomento 110: Sicurezza
110.1 Eseguire attività di amministrazione della sicurezza
  • 110.1 Lezione 1
110.2 Configurare la sicurezza dell'host
  • 110.2 Lezione 1
110.3 Proteggere i dati con la crittografia
  • 110.3 Lezione 1
  • 110.3 Lezione 2
How to get certified
  1. Argomento 109: Fondamenti di Networking
  2. 109.2 Configurazione di rete persistente
  3. 109.2 Lezione 2

109.2 Lezione 2

Certificazione:

LPIC-1

Versione:

5.0

Argomento:

109 Fondamenti di Networking

Obiettivo:

109.2 Configurazione di rete persistente

Lezione:

2 di 2

Introduzione

Linux supporta virtualmente ogni tecnologia di rete utilizzata per collegare server, container, macchine virtuali, desktop e dispositivi mobile. Le connessioni tra tutti questi nodi di rete possono essere dinamiche ed eterogenee, richiedendo così una gestione appropriata da parte del sistema operativo che vi gira.

In passato le distribuzioni sviluppavano le proprie soluzioni personalizzate per gestire l’infrastruttura di rete dinamica. Oggi, strumenti come NetworkManager e systemd forniscono caratteristiche più complete e integrate per soddisfare tutte le richieste specifiche.

NetworkManager

La maggior parte delle distribuzioni Linux adotta il demone di servizio NetworkManager per configurare e controllare le connessioni di rete del sistema. Lo scopo di NetworkManager è di rendere la configurazione della rete il più semplice e automatica possibile. Quando si usa il DHCP, per esempio, NetworkManager organizza i cambiamenti della default route, il recupero degli indirizzi IP e gli aggiornamenti alla lista locale dei server DNS, se necessario. Quando sono disponibili sia connessioni cablate sia wireless, NetworkManager dà per impostazione predefinita la priorità alla connessione cablata. NetworkManager cercherà di mantenere almeno una connessione attiva per tutto il tempo, quando è possibile.

Note

Una richiesta tramite DHCP (Dynamic Host Configuration Protocol) viene solitamente inviata attraverso la scheda di rete non appena viene stabilito il collegamento. Il server DHCP attivo sulla rete risponde quindi con le impostazioni (indirizzo IP, maschera di rete, rotta predefinita, ecc.) che il richiedente deve utilizzare per comunicare tramite il protocollo IP.

Per impostazione predefinita, il demone NetworkManager controlla le interfacce di rete non menzionate nel file /etc/network/interfaces. Lo fa per non interferire con altri metodi di configurazione che possono essere presenti, modificando così solo le interfacce non controllate.

Il demone NetworkManager viene eseguito in background con privilegi di root e avvia le azioni necessarie per mantenere il sistema online. Gli utenti ordinari possono creare e modificare connessioni di rete con applicazioni client che, pur non avendo privilegi di root, sono in grado di comunicare con il servizio sottostante per eseguire le azioni richieste.

Le applicazioni client per NetworkManager sono disponibili sia per la linea di comando sia per l’ambiente grafico. Per quest’ultimo, l’applicazione client viene fornita come accessorio dell’ambiente desktop (sotto nomi come nm-tray, network-manager-gnome, nm-applet o plasma-nm) ed è solitamente accessibile attraverso un’icona indicatore nell’angolo della barra del desktop o dall’utilità di configurazione del sistema.

Nella linea di comando NetworkManager stesso fornisce due programmi client: nmcli e nmtui. Entrambi i programmi hanno le stesse caratteristiche di base, ma nmtui ha un’interfaccia basata su curses mentre nmcli è un comando più completo che può essere usato anche negli script. Il comando nmcli separa tutte le proprietà relative alla rete controllate da NetworkManager in categorie chiamate objects:

general

Stato e operazioni generali di NetworkManager.

networking

Controllo generale della rete.

radio

Interruttori per wireless di NetworkManager.

connection

Connessioni di NetworkManager.

device

Dispositivi gestiti da NetworkManager.

agente

Agente password o polkit di NetworkManager.

monitor

Monitor di cambiamenti di NetworkManager.

Il nome dell’oggetto è l’argomento principale del comando nmcli. Per mostrare lo stato generale di connettività del sistema, per esempio, l’oggetto general dovrebbe essere dato come argomento:

$ nmcli general
STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN
connected  full          enabled  enabled  enabled  enabled

La colonna STATE dice se il sistema è connesso a una rete oppure no. Se la connessione è limitata a causa di una cattiva configurazione esterna o di restrizioni di accesso, allora la colonna CONNECTIVITY non riporterà lo stato di connettività full. Se nella colonna CONNECTIVITY appare Portal, significa che sono richiesti passaggi di autenticazione extra (di solito attraverso il browser web) per completare il processo di connessione. Le colonne rimanenti riportano lo stato delle connessioni wireless (se presenti), sia WIFI che WWAN (Wide Wireless Area Network, cioè reti cellulari). Il suffisso HW indica lo stato corrispondente al dispositivo di rete piuttosto che alla connessione di rete di sistema, quindi dice anche se l’hardware è abilitato o disabilitato per risparmiare energia.

Oltre all’argomento oggetto, nmcli ha bisogno per essere eseguito anche di un argomento. Il comando status è usato per default se non è presente alcun argomento di comando, quindi il comando nmcli general è effettivamente interpretato come nmcli general status.

Di rado è necessario intraprendere azioni specifiche quando l’adattatore di rete è collegato direttamente al punto di accesso tramite cavi, le reti wireless al contrario richiedono specifiche configurazioni per poter funzionare. nmcli facilita il processo di connessione e salva le impostazioni per connettersi automaticamente in futuro, quindi è molto utile per i computer portatili o qualsiasi altro device mobile.

Prima di connettersi al wi-fi, è utile prima elencare le reti disponibili. Se il sistema ha un adattatore wi-fi funzionante, allora l’oggetto device potrà essere usato per scansionare le reti disponibili con il comando nmcli device wifi list:

$ nmcli device wifi list
IN-USE  BSSID              SSID        MODE   CHAN  RATE        SIGNAL  BARS  SECURITY
        90:F6:52:C5:FA:12  Hypnotoad   Infra  11    130 Mbit/s  67      ▂▄▆_  WPA2
        10:72:23:C7:27:AC  Jumbao      Infra  1     130 Mbit/s  55      ▂▄__  WPA2
        00:1F:33:33:E9:BE  NETGEAR     Infra  1     54 Mbit/s   35      ▂▄__  WPA1 WPA2
        A4:33:D7:85:6D:B0  AP53        Infra  11    130 Mbit/s  32      ▂▄__  WPA1 WPA2
        98:1E:19:1D:CC:3A  Bruma       Infra  1     195 Mbit/s  22      ▂___  WPA1 WPA2

La maggior parte degli utenti probabilmente userà il nome nella colonna SSID per identificare la rete di interesse. Per esempio, il comando nmcli può connettersi alla rete chiamata Hypnotoad usando ancora l’oggetto device:

$ nmcli device wifi connect Hypnotoad

Se il comando viene eseguito all’interno di un emulatore di terminale in ambiente grafico, allora apparirà una finestra di dialogo che chiede la passphrase della rete. Quando viene eseguito in una console di solo testo, la password può essere fornita insieme agli altri argomenti:

$ nmcli device wifi connect Hypnotoad password MyPassword

Se la rete wi-fi nasconde il suo nome SSID, nmcli può ancora connettersi ad essa con gli argomenti extra hidden yes:

$ nmcli device wifi connect Hypnotoad password MyPassword hidden yes

Se il sistema ha più di un adattatore wi-fi, quello da usare può essere indicato con ifname. Per esempio, per connettersi usando l’adattatore chiamato wlo1:

$ nmcli device wifi connect Hypnotoad password MyPassword ifname wlo1

Dopo che la connessione ha successo, NetworkManager assegnerà alla connessione il nome dell’SSID corrispondente (se è una connessione wi-fi) e lo conserverà per le connessioni future. I nomi delle connessioni e i loro UUID sono elencati dal comando nmcli connection show:

$ nmcli connection show
NAME               UUID                                  TYPE      DEVICE
Ethernet           53440255-567e-300d-9922-b28f0786f56e  ethernet  enp3s5
tun0               cae685e1-b0c4-405a-8ece-6d424e1fb5f8  tun       tun0
Hypnotoad          6fdec048-bcc5-490a-832b-da83d8cb7915  wifi      wlo1
4G                 a2cf4460-0cb7-42e3-8df3-ccb927f2fd88  gsm       --

Viene mostrato il tipo di ogni connessione — che può essere ethernet, wifi, tun, gsm, bridge, ecc. — così come il dispositivo a cui sono associate. Per eseguire azioni su una specifica connessione è necessario fornire il nome o UUID. Per disattivare la connessione Hypnotoad, per esempio:

$ nmcli connection down Hypnotoad
Connection 'Hypnotoad' successfully deactivated

Allo stesso modo, il comando nmcli connection up Hypnotoad può essere usato per attivare la connessione, dato che ora è salvata da NetworkManager. Il nome dell’interfaccia può anche essere usato per riconnettersi, ma in questo caso l’oggetto device dovrebbe invece essere usato nel modo seguente:

$ nmcli device disconnect wlo2
Device 'wlo1' successfully disconnected.

Il nome dell’interfaccia può anche essere usato per ristabilire la connessione:

$ nmcli device connect wlo2
Device 'wlo1' successfully activated with '833692de-377e-4f91-a3dc-d9a2b1fcf6cb'.

Si noti che l’UUID della connessione cambia ogni volta che la connessione viene richiamata, quindi è preferibile usare il suo nome per coerenza.

Se l’adattatore wireless è disponibile ma non viene utilizzato, allora può essere spento per risparmiare energia. Questa volta, l’oggetto radio dovrebbe essere passato a nmcli:

$ nmcli radio wifi off

Naturalmente il dispositivo wireless può essere riacceso con il comando nmcli radio wifi on.

Una volta che le connessioni sono stabilite non sarà necessaria alcuna interazione manuale in futuro, poiché NetworkManager identifica le reti conosciute disponibili e si connette automaticamente ad esse. Se necessario, NetworkManager ha dei plugin che possono estendere le sue funzionalità, come il plugin per supportare le connessioni VPN.

systemd-networkd

I sistemi che eseguono systemd possono opzionalmente usare i suoi demoni integrati per gestire la connettività di rete: systemd-networkd per controllare le interfacce di rete e systemd-resolved per gestire la risoluzione dei nomi locali. Questi servizi sono retro compatibili con i precedenti metodi di configurazione di Linux, ma la configurazione delle interfacce di rete in particolare ha caratteristiche che vale la pena conoscere.

I file di configurazione usati da systemd-networkd per impostare le interfacce di rete possono essere trovati in una delle seguenti tre directory:

/lib/systemd/network

La directory della rete di sistema.

/run/systemd/network

La directory non persistente della rete di runtime.

/etc/systemd/network

La directory di amministrazione locale della rete.

I file sono processati in ordine lessicografico, quindi si raccomanda di iniziare i loro nomi con dei numeri per rendere l’ordine più facile da leggere e da impostare.

I file in /etc hanno la massima priorità, mentre i file in /run hanno la precedenza sui file con lo stesso nome in /lib. Questo significa che se i file di configurazione in diverse directory hanno lo stesso nome, allora systemd-networkd ignorerà i file con priorità minore. Separare i file in questo modo è un metodo per cambiare le impostazioni dell’interfaccia senza dover modificare i file originali: le modifiche possono essere apportate in /etc/systemd/network per sovrascrivere quelle in /lib/systemd/network.

Lo scopo di ogni file di configurazione dipende dal suo suffisso. I nomi dei file che terminano in .netdev sono usati da systemd-networkd per creare dispositivi di rete virtuali, come i dispositivi bridge o tun. I file che terminano in .link impostano configurazioni di basso livello per l’interfaccia di rete corrispondente. systemd-networkd rileva e configura automaticamente i dispositivi di rete non appena appaiono e ignora i dispositivi già configurati con altri mezzi, quindi non c’è bisogno di aggiungere questi file.

Il suffisso più importante è .network. I file che usano questo suffisso possono essere usati per impostare indirizzi e percorsi di rete. Come per gli altri tipi di file di configurazione, il nome del file definisce l’ordine in cui il file sarà processato. L’interfaccia di rete a cui il file di configurazione si riferisce è definita nella sezione [Match] all’interno del file.

Per esempio, l’interfaccia di rete ethernet enp3s5 può essere selezionata nel file /etc/systemd/network/30-lan.network usando la voce Name=enp3s5 nella sezione [Match]:

[Match]
Name=enp3s5

Viene accettata anche una lista di nomi separati da spazi vuoti per abbinare in una sola volta molte interfacce di rete con questo stesso file. I nomi possono contenere raggruppamenti (globs) in stile shell, come en*. Altre voci forniscono varie regole di corrispondenza, come il selezionare un dispositivo di rete in base al suo indirizzo MAC:

[Match]
MACAddress=00:16:3e:8d:2b:5b

Le impostazioni per il dispositivo sono nella sezione [Network] del file. Una semplice configurazione di rete statica richiede solo le voci Address e Gateway:

[Match]
MACAddress=00:16:3e:8d:2b:5b

[Network]
Address=192.168.0.100/24
Gateway=192.168.0.1

Per usare il protocollo DHCP invece di indirizzi IP statici, si dovrebbe usare la voce DHCP:

[Match]
MACAddress=00:16:3e:8d:2b:5b

[Network]
DHCP=yes

Il servizio systemd-networkd cercherà di recuperare entrambi gli indirizzi IPv4 e IPv6 per l’interfaccia di rete. Per usare solo IPv4 dovrebbe essere usato DHCP=ipv4. Allo stesso modo, DHCP=ipv6 ignorerà le impostazioni IPv4 e userà solo l’indirizzo IPv6 fornito.

Le reti wireless protette da password possono anche essere configurate da systemd-networkd, ma l’adattatore di rete deve essere già autenticato nella rete prima che systemd-networkd possa configurarlo. L’autenticazione è eseguita da WPA supplicant, un programma dedicato alla configurazione di adattatori di rete per reti protette da password.

Il primo passo è creare il file delle credenziali con il comando wpa_passphrase:

# wpa_passphrase MyWifi > /etc/wpa_supplicant/wpa_supplicant-wlo1.conf

Questo comando prenderà la passphrase per la rete wireless MyWifi dallo standard input e memorizzerà il suo hash nel file /etc/wpa_supplicant/wpa_supplicant-wlo1.conf. Si noti che il nome del file dovrebbe contenere il nome appropriato dell’interfaccia wireless, da cui il wlo1 nel nome del file.

Il gestore systemd legge i file di passphrase WPA in /etc/wpa_supplicant/ e crea il servizio corrispondente per eseguire WPA supplicant e attivare l’interfaccia. Il file passphrase creato nell’esempio avrà quindi un servizio corrispondente chiamato wpa_supplicant@wlo1.service. Il comando systemctl start wpa_supplicant@wlo1.service assocerà l’adattatore wireless con il punto di accesso remoto. Il comando systemctl enable wpa_supplicant@wlo1.service rende l’associazione automatica durante l’avvio.

Infine, un file .network corrispondente all’interfaccia wlo1 deve essere presente in /etc/systemd/network/, poiché systemd-networkd lo userà per configurare l’interfaccia non appena il WPA supplicant termina l’associazione con l’access point.

Esercizi Guidati

  1. Qual è il significato della parola Portal nella colonna CONNECTIVITY nell’output del comando nmcli general status?

  2. In un terminale di console, come può un utente normale usare il comando nmcli per connettersi alla rete wireless MyWifi protetta dalla password MyPassword?

  3. Quale comando può accendere l’adattatore wireless se è stato precedentemente disabilitato dal sistema operativo?

  4. In quale directory dovrebbero essere messi i file di configurazione personalizzati quando systemd-networkd sta gestendo le interfacce di rete?

Esercizi Esplorativi

  1. Come può un utente eseguire il comando nmcli per cancellare una connessione inutilizzata chiamata Hotel Internet?

  2. NetworkManager scansiona le reti wi-fi periodicamente e il comando nmcli device wifi list elenca solo gli access point trovati nell’ultima scansione. Come dovrebbe essere usato il comando nmcli per chiedere a NetworkManager di eseguire immediatamente una nuova scansione di tutti gli access point disponibili?

  3. Quale voce name dovrebbe essere usata nella sezione [Match] di un file di configurazione systemd-networkd per far corrispondere tutte le interfacce ethernet?

  4. Come dovrebbe essere eseguito il comando wpa_passphrase per usare la passphrase data come argomento e non dallo standard input?

Sommario

Questa lezione mostra gli strumenti comuni usati in Linux per gestire connessioni di rete eterogenee e dinamiche. Anche se la maggior parte dei metodi di configurazione non richiede l’intervento dell’utente, a volte può essere necessario farlo e strumenti come NetworkManager e systemd-networkd possono ridurre il fastidio al minimo. La lezione tratta i seguenti argomenti:

  • Come NetworkManager e systemd-networkd si integrano con il sistema.

  • Come l’utente può interagire con NetworkManager e systemd-networkd.

  • Configurazione di base dell’interfaccia sia con NetworkManager che con systemd-networkd.

I concetti, i comandi e le procedure affrontati sono stati:

  • I comandi client di NetworkManager: nmtui e nmcli.

  • Scansione e connessione alle reti wireless usando i comandi appropriati di nmcli.

  • Connessioni di rete wi-fi persistenti usando systemd-networkd.

Risposte agli Esercizi Guidati

  1. Qual è il significato della parola Portal nella colonna CONNECTIVITY nell’output del comando nmcli general status?

    Significa che sono necessari dei passi di autenticazione extra (di solito attraverso il browser web) per completare il processo di connessione.

  2. In un terminale di console, come può un utente normale usare il comando nmcli per connettersi alla rete wireless MyWifi protetta dalla password MyPassword?

    In un terminale di solo testo, il comando sarebbe:

    $ nmcli device wifi connect MyWifi password MyPassword
  3. Quale comando può accendere l’adattatore wireless se è stato precedentemente disabilitato dal sistema operativo?

    $ nmcli radio wifi on
  4. In quale directory dovrebbero essere messi i file di configurazione personalizzati quando systemd-networkd sta gestendo le interfacce di rete?

    Nella directory dell’amministrazione locale di rete: /etc/systemd/network.

Risposte agli Esercizi Esplorativi

  1. Come può un utente eseguire il comando nmcli per cancellare una connessione inutilizzata chiamata Hotel Internet?

    $ nmcli connection delete "Hotel Internet"
  2. NetworkManager scansiona le reti wi-fi periodicamente e il comando nmcli device wifi list elenca solo gli access point trovati nell’ultima scansione. Come dovrebbe essere usato il comando nmcli per chiedere a NetworkManager di eseguire immediatamente una nuova scansione di tutti gli access point disponibili?

    L’utente root può eseguire nmcli device wifi rescan per far sì che NetworkManager riesamini i punti di accesso disponibili.

  3. Quale voce name dovrebbe essere usata nella sezione [Match] di un file di configurazione systemd-networkd per far corrispondere tutte le interfacce ethernet?

    La voce name=en*, poiché en è il prefisso per le interfacce ethernet in Linux e systemd-networkd accetta i raggruppamenti di tipo shell.

  4. Come dovrebbe essere eseguito il comando wpa_passphrase per usare la passphrase data come argomento e non dallo standard input?

    La password dovrebbe essere data subito dopo l’SSID, come in wpa_passphrase MyWifi MyPassword.

Linux Professional Institute Inc. Tutti i diritti riservati. Visita il sito Learning Materials: https://learning.lpi.org
Quest'opera è sotto la licenza 'Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License'.

Prossima Lezione

109.3 Risoluzione dei problemi di base di una rete (109.3 Lezione 1)

Leggi la prossima Lezione

Linux Professional Institute Inc. Tutti i diritti riservati. Visita il sito Learning Materials: https://learning.lpi.org
Quest'opera è sotto la licenza 'Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License'.

LPI è una organizzazione non-profit.

© 2023 Linux Professional Institute (LPI) è lo standard di certificazione globale e l'organizzazione di supporto alla carriera per i Professionisti Open Source. Con più di 200,000 titolari di Certificazione, è il primo e il più grande ente di Certificazione Open Source e Linux vendor-neutral. LPI ha professionisti certificati in oltre 180 Paesi, offre i suoi Esami in più lingue e ha centinaia di Partner di formazione in tutto il mondo.

La nostra missione è promuovere l'uso dell'Open Source supportando le persone che vi lavorano.

  • LinkedIn
  • flogo-RGB-HEX-Blk-58 Facebook
  • Twitter
  • Contattaci
  • Privacy & Cookie Policy

Trovato un errore? Per favore scrivi a contattaci.

© 1999–2023 The Linux Professional Institute Inc. Tutti i diritti riservati.