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

109.2 Lezione 1

Certificazione:

LPIC-1

Versione:

5.0

Argomento:

109 Fondamenti di Networking

Obiettivo:

109.2 Configurazione di rete persistente

Lezione:

1 di 2

Introduzione

In qualsiasi rete TCP/IP ogni nodo deve aver la scheda di rete correttamente configurata per soddisfare i requisiti del network a cui accede, altrimenti non sarà in grado di effettuare nessuna comunicazione. Pertanto, l’amministratore di sistema deve fornire la configurazione di base in modo che il sistema operativo sia in grado di impostare l’interfaccia di rete appropriata, nonché di identificare a ogni avvio se stesso e le caratteristiche di base della rete.

Le impostazioni di rete sono agnostiche rispetto ai sistemi operativi, ma questi ultimi hanno i loro metodi per memorizzare e applicare queste impostazioni. I sistemi Linux si basano su configurazioni memorizzate in file di testo sotto la directory /etc. È importante conoscere come questi file vengono utilizzati per evitare la perdita di connettività a causa di un’errata configurazione locale.

L’Interfaccia di Rete

"Interfaccia di rete" è il termine con cui il sistema operativo si riferisce al canale di comunicazione configurato per lavorare con l’hardware di rete collegato al sistema, come un dispositivo ethernet o Wi-Fi. L’eccezione è rappresentata dall’interfaccia di loopback, che il sistema operativo utilizza quando ha bisogno di stabilire una connessione con se stesso, ma lo scopo principale di un’interfaccia di rete è quello di fornire un percorso attraverso il quale i dati locali possono essere inviati e i dati remoti possono essere ricevuti. Se l’interfaccia di rete non è configurata correttamente, il sistema operativo non sarà in grado di comunicare con le altre macchine della rete.

Nella maggior parte dei casi le impostazioni corrette dell’interfaccia sono definite di default o personalizzate durante l’installazione del sistema operativo. Tuttavia, queste impostazioni spesso devono essere controllate o addirittura modificate quando la comunicazione non funziona correttamente o quando il comportamento dell’interfaccia richiede una personalizzazione.

Ci sono molti comandi Linux per elencare quali interfacce di rete sono presenti sul sistema, ma non tutti sono disponibili in tutte le distribuzioni. Il comando ip, tuttavia, fa parte dell’insieme di base degli strumenti di rete forniti nelle moderne distribuzioni Linux e può essere usato per elencare le interfacce di rete. Il comando completo per mostrare le interfacce è ip link show:

$ ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
        link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp3s5: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP mode DEFAULT group default qlen 1000
        link/ether 00:16:3e:8d:2b:5b brd ff:ff:ff:ff:ff:ff

Se disponibile, può essere usato anche il comando nmcli device:

$ nmcli device
DEVICE      TYPE      STATE      CONNECTION
enp3s5      ethernet  connected  Gigabit Powerline Adapter
lo          loopback  unmanaged  --

I comandi mostrati negli esempi non modificano alcuna impostazione nel sistema, quindi possono essere eseguiti da un utente senza privilegi. Entrambi i comandi elencano due interfacce di rete: lo (l’interfaccia di loopback) e enp3s5 (un’interfaccia ethernet).

I desktop e i portatili con Linux hanno di solito due o tre interfacce di rete predefinite, una per l’interfaccia virtuale di loopback e le altre assegnate all’hardware di rete trovato dal sistema. I server e le apparecchiature di rete con Linux, d’altra parte, possono avere decine di interfacce di rete, ma gli stessi principi si applicano senza differenze sostanziali. L’astrazione fornita dal sistema operativo permette la configurazione delle interfacce di rete utilizzando gli stessi metodi, indipendentemente dall’hardware sottostante.

Tuttavia, conoscere i dettagli sull’hardware sottostante di un’interfaccia può essere utile per capire meglio che cosa stia succedendo quando la comunicazione non funziona come previsto. In un sistema in cui sono disponibili molte interfacce di rete, potrebbe, per esempio, non essere ovvio quale corrisponde al wi-fi e quale all’ethernet. Per questo motivo, Linux utilizza una convenzione di denominazione delle interfacce che aiuta a identificare quale interfaccia di rete corrisponde a quale dispositivo e porta.

Nomi di Interfaccia

Le vecchie distribuzioni Linux chiamavano le interfacce di rete ethernet eth0, eth1 e così via, numerate secondo l’ordine in cui il kernel le identificava. Le interfacce wireless erano chiamate wlan0, wlan1 e così via. Questa convenzione di denominazione, tuttavia, non chiarisce quale specifica porta ethernet corrisponde all’interfaccia eth0. A seconda di come veniva rilevato l’hardware, era anche possibile che due interfacce di rete si scambiassero i nomi dopo un riavvio.

Per superare questa ambiguità, i sistemi Linux più recenti impiegano una specifica convenzione di denominazione per le interfacce di rete, creando una relazione più stretta tra il nome dell’interfaccia e la connessione hardware sottostante.

Nelle distribuzioni Linux che usano lo schema di denominazione systemd, tutti i nomi delle interfacce iniziano con un prefisso di due caratteri che indica il tipo di interfaccia:

en

Ethernet

ib

InfiniBand

sl

Serial line IP (slip)

wl

Wireless local area network (WLAN)

ww

Wireless wide area network (WWAN)

Dalla più alta alla più bassa priorità, vengono utilizzate dal sistema operativo per nominare e numerare le interfacce di rete le seguenti regole:

  1. Denominare l’interfaccia rispetto all’indice fornito dal BIOS/UEFI o dal firmware dei dispositivi embedded, per esempio eno1.

  2. Denominare l’interfaccia rispetto all’indice dello slot PCI express, fornito dal BIOS/UEFI o dal firmware, per esempio ens1.

  3. Denominare l’interfaccia rispetto al suo indirizzo sul bus corrispondente, per esempio enp3s5.

  4. Denominare l’interfaccia rispetto al suo MAC address , per esempio enx78e7d1ea46da.

  5. Denominare l’interfaccia usando la convenzione legacy, per esempio eth0.

È corretto supporre, per esempio, che l’interfaccia di rete enp3s5 sia stata chiamata così perché non si adattava ai primi due metodi di denominazione, quindi è stato usato il suo indirizzo nel bus e nello slot corrispondente. L’indirizzo del dispositivo 03:05.0, trovato nell’output del comando lspci, rivela il dispositivo associato:

$ lspci | fgrep Ethernet
03:05.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8110SC/8169SC Gigabit Ethernet (rev 10)

Le interfacce di rete sono create dal kernel Linux stesso, ma ci sono molti comandi che possono essere utilizzati per interagire con esse. Normalmente, la configurazione avviene automaticamente e non c’è bisogno di cambiare le impostazioni manualmente. Tuttavia, con il nome dell’interfaccia, è possibile dire al kernel, se necessario, come procedere nella configurazione.

Gestione dell’Interfaccia

Nel corso degli anni, sono stati sviluppati diversi programmi per interagire con le funzionalità di rete fornite dal kernel Linux. Anche se il vecchio comando ifconfig può ancora essere usato per fare semplici configurazioni e interrogazioni di interfacce, è ora deprecato a causa del suo limitato supporto di interfacce "non-ethernet". Il comando ifconfig è stato sostituito dal comando ip, che è in grado di gestire molti altri aspetti delle interfacce, come rotte e tunnel.

Le molte capacità del comando ip possono essere eccessive per la maggior parte dei compiti ordinari, quindi ci sono comandi ausiliari per facilitare l’attivazione e la configurazione delle interfacce di rete. I comandi ifup e ifdown possono essere usati per configurare le interfacce di rete in base alle definizioni di interfaccia che si trovano nel file /etc/network/interfaces. Sebbene possano essere invocati manualmente, questi comandi sono normalmente eseguiti automaticamente durante l’avvio del sistema.

Tutte le interfacce di rete gestite da ifup e ifdown dovrebbero essere elencate nel file /etc/network/interfaces. Il formato usato nel file è semplice: le linee che iniziano con la parola auto sono usate per identificare le interfacce fisiche che devono essere attivate quando ifup viene eseguito con l’opzione -a. Il nome dell’interfaccia dovrebbe seguire la parola auto sulla stessa linea. Tutte le interfacce marcate auto sono attivate all’avvio, nell’ordine in cui sono elencate.

Warning

I metodi di configurazione della rete usati da ifup e ifdown non sono standardizzati in tutte le distribuzioni Linux. CentOS, per esempio, mantiene le impostazioni di interfaccia in file individuali nella directory /etc/sysconfig/network-scripts/ e il formato di configurazione usato in essi è leggermente diverso da quello usato in /etc/network/interfaces.

La configurazione vera e propria dell’interfaccia viene scritta in un’altra riga che inizia con la parola iface, seguita dal nome dell’interfaccia, dal nome della famiglia di indirizzi che l’interfaccia utilizza e dal nome del metodo utilizzato per configurare l’interfaccia. L’esempio seguente mostra un file di configurazione di base per le interfacce lo (loopback) e enp3s5:

auto lo
iface lo inet loopback

auto enp3s5
iface enp3s5 inet dhcp

La famiglia di indirizzi dovrebbe essere inet per la rete IPv4, ma c’è anche il supporto per la rete IPX (ipx), e la rete IPv6 (inet6). Le interfacce loopback usano il metodo di configurazione loopback. Con il metodo dhcp, l’interfaccia userà le impostazioni IP fornite dal server DHCP della rete. Le impostazioni della configurazione di esempio permettono l’esecuzione del comando ifup utilizzando come argomento il nome dell’interfaccia enp3s5:

# ifup enp3s5
Internet Systems Consortium DHCP Client 4.4.1
Copyright 2004-2018 Internet Systems Consortium.
All rights reserved.
For info, please visit https://www.isc.org/software/dhcp/

Listening on LPF/enp3s5/00:16:3e:8d:2b:5b
Sending on   LPF/enp3s5/00:16:3e:8d:2b:5b
Sending on   Socket/fallback
DHCPDISCOVER on enp3s5 to 255.255.255.255 port 67 interval 4
DHCPOFFER of 10.90.170.158 from 10.90.170.1
DHCPREQUEST for 10.90.170.158 on enp3s5 to 255.255.255.255 port 67
DHCPACK of 10.90.170.158 from 10.90.170.1
bound to 10.90.170.158 -- renewal in 1616 seconds.

In questo esempio il metodo scelto per l’interfaccia enp3s5 era dhcp, quindi il comando ifup richiama un programma client DHCP per ottenere le impostazioni IP dal server DHCP. Allo stesso modo, il comando ifdown enp3s5 può essere usato per disattivare l’interfaccia.

In reti senza un server DHCP il metodo static potrebbe essere usato inserendo manualmente le impostazioni IP nel file /etc/network/interfaces:

iface enp3s5 inet static
    address 192.168.1.2/24
    gateway 192.168.1.1

Le interfacce che usano il metodo static non hanno bisogno di una direttiva auto corrispondente, dato che sono avviate ogni volta che viene rilevato l’hardware di rete.

Se la stessa interfaccia ha più di una voce iface, allora tutti gli indirizzi e le opzioni configurati saranno applicati quando si avvia quell’interfaccia. Questo è utile per configurare sia indirizzi IPv4 che IPv6 sulla stessa interfaccia, così come la configurazione di più indirizzi dello stesso tipo su una singola interfaccia.

Nomi Locali e Remoti

Una configurazione TCP/IP funzionante è solo il primo passo verso la piena usabilità della rete. Oltre a essere in grado di identificare i nodi della rete tramite i loro indirizzi IP, il sistema deve essere in grado di identificarli con nomi più facilmente comprensibili per gli esseri umani.

Il nome con cui il sistema si identifica è personalizzabile ed è buona pratica definirlo, anche se la macchina non è destinata a entrare in una rete. Il nome locale spesso corrisponde al nome di rete della macchina, ma questo non è necessariamente sempre vero. Se il file /etc/hostname esiste, il sistema operativo userà il contenuto della prima linea come nome locale, in seguito chiamato semplicemente hostname. Le linee che iniziano con # all’interno di /etc/hostname vengono ignorate.

Il file /etc/hostname può essere modificato direttamente, ma l’hostname della macchina può anche essere definito attraverso il comando hostnamectl. Quando viene fornito con il sottocomando set-hostname, il comando hostnamectl prenderà il nome dato come argomento e lo scriverà in /etc/hostname:

# hostnamectl set-hostname storage
# cat /etc/hostname
storage

L’hostname definito in /etc/hostname è l’hostname statico, cioè il nome che viene usato per inizializzare l’hostname del sistema all’avvio. L’hostname statico può essere una stringa a forma libera lunga fino a 64 caratteri. Si raccomanda di utilizzare solo caratteri ASCII minuscoli senza spazi o punti. Ci si dovrebbe anche limitare nella scelta del nome al formato consentito per i nomi di dominio DNS, anche se questo non è un requisito necessario.

Il comando hostnamectl può impostare altri due tipi di hostname oltre all’hostname statico:

Pretty hostname

A differenza dell’hostname statico, il pretty hostname può includere tutti i tipi di caratteri speciali. Può essere usato per impostare un nome più descrittivo per la macchina, per esempio “LAN Shared Storage”:

# hostnamectl --pretty set-hostname "LAN Shared Storage"
Transient hostname

Usato quando l’hostname statico non è impostato o quando è il nome di default localhost. Il transient hostname è di norma il nome impostato insieme ad altre configurazioni automatiche, ma può anche essere modificato dal comando hostnamectl come nel seguente esempio:

# hostnamectl --transient set-hostname generic-host

Se non vengono usate né l’opzione --pretty né l’opzione --transient, allora tutti e tre i tipi di hostname saranno impostati al nome dato. Per impostare l’hostname statico, ma non gli altri due, dovrebbe invece essere usata l’opzione --static. In tutti i casi, solo l’hostname statico è memorizzato nel file /etc/hostname. Il comando hostnamectl può anche essere usato per visualizzare varie informazioni descrittive e di identità sul sistema in esecuzione:

$ hostnamectl status
     Static hostname: storage
     Pretty hostname: LAN Shared Storage
  Transient hostname: generic-host
           Icon name: computer-server
             Chassis: server
          Machine ID: d91962a957f749bbaf16da3c9c86e093
             Boot ID: 8c11dcab9c3d4f5aa53f4f4e8fdc6318
    Operating System: Debian GNU/Linux 10 (buster)
              Kernel: Linux 4.19.0-8-amd64
        Architecture: x86-64

Questa è l’azione predefinita del comando hostnamectl, quindi il sottocomando status può essere omesso.

Per quanto riguarda il nome dei nodi di rete remoti, ci sono due modi fondamentali che il sistema operativo può implementare per abbinare nomi e indirizzi IP: utilizzare una fonte locale o utilizzare un server remoto per tradurre i nomi in indirizzi IP e viceversa. I metodi possono essere complementari tra loro e l’ordine di priorità è definito nel file di configurazione Name Service Switch: /etc/nsswitch.conf. Questo file è usato dal sistema e dalle applicazioni per determinare non solo le fonti per le corrispondenze nome-IP, ma anche le fonti da cui ottenere informazioni sul servizio dei nomi in una serie di categorie, chiamate database.

Il database hosts tiene traccia della mappatura tra nomi di host e indirizzi di host. La linea dentro /etc/nsswitch.conf che inizia con hosts definisce i servizi responsabili nel fornire le associazioni a tal scopo:

hosts: files dns

In questa voce di esempio files e dns sono i nomi dei servizi che specificano come funzionerà il processo di ricerca dei nomi host. Per prima cosa, il sistema cercherà le corrispondenze nei file locali, poi chiederà al servizio DNS le corrispondenze.

Il file locale per il database degli host è /etc/hosts, un semplice file di testo che associa indirizzi IP a nomi di host, una linea per indirizzo IP. Per esempio:

127.0.0.1 localhost

L’indirizzo IP 127.0.0.1 è l’indirizzo predefinito dell’interfaccia di loopback, da cui la sua associazione con il nome localhost.

È anche possibile legare alias opzionali allo stesso IP. Gli alias possono fornire denominazioni alternative, nomi di host più brevi e dovrebbero essere aggiunti alla fine della linea come di seguito:

192.168.1.10 foo.mydomain.org foo

Le regole di formattazione per il file /etc/hosts sono:

  • I campi della singola voce sono separati da un numero qualsiasi di spazi vuoti e/o caratteri di tabulazione.

  • Le linee che iniziano con # sono un commento e vengono ignorate.

  • I nomi degli host possono contenere solo caratteri alfanumerici, segni di meno (-) e punti (.).

  • I nomi degli host devono iniziare con un carattere alfabetico e finire con un carattere alfanumerico.

Gli indirizzi IPv6 possono anche essere aggiunti a /etc/hosts. La seguente voce si riferisce all’indirizzo di loopback IPv6:

::1 localhost ip6-localhost ip6-loopback

Dopo la specifica del servizio files, la specifica dns dice al sistema di chiedere a un servizio DNS l’associazione nome macchina/IP. L’insieme delle routine responsabili di questo metodo è chiamato resolver e il suo file standard di configurazione è /etc/resolv.conf. L’esempio seguente mostra un generico /etc/resolv.conf contenente voci per i server DNS pubblici di Google:

nameserver 8.8.4.4
nameserver 8.8.8.8

Come mostrato nell’esempio, la parola chiave nameserver indica l’indirizzo IP del server DNS. È richiesto un solo nameserver, ma possono esserne indicati fino a tre. Quelli supplementari saranno usati come fallback. Se non sono presenti voci di nameserver, il comportamento predefinito è quello di utilizzare il server dei nomi sulla macchina locale (se presente).

Il resolver può essere configurato anche per aggiungere automaticamente un nome di dominio ai nomi host brevi. Per esempio:

nameserver 8.8.4.4
nameserver 8.8.8.8
domain mydomain.org
search mydomain.net mydomain.com

La voce domain imposta mydomain.org come nome di dominio locale, così le query per i nomi all’interno di questo dominio saranno autorizzate ad usare nomi brevi relativi al dominio locale. La voce search ha uno scopo simile, ma accetta una lista di domini da provare quando viene fornito un nome breve. Per impostazione predefinita, contiene solo il nome del dominio locale.

Esercizi Guidati

  1. Quali comandi possono essere usati per elencare le schede di rete presenti nel sistema?

  2. Qual è il tipo di adattatore di rete il cui nome di interfaccia è wlo1?

  3. Che ruolo ha il file /etc/network/interfaces durante l’avvio?

  4. Quale voce in /etc/network/interfaces configura l’interfaccia eno1 per ottenere le sue impostazioni IP attraverso un DHCP server?

Esercizi Esplorativi

  1. Come si potrebbe usare il comando hostnamectl per cambiare in firewall solo l’hostname statico della macchina locale?

  2. Quali dettagli diversi dagli hostname possono essere modificati dal comando hostnamectl?

  3. Quale voce in /etc/hosts associa entrambi i nomi firewall e router all’IP 10.8.0.1?

  4. Come si potrebbe modificare il file /etc/resolv.conf per inviare tutte le richieste DNS a 1.1.1.1?

Sommario

Questa lezione mostra i cambiamenti persistenti possibili alla configurazione della rete locale usando file e comandi standard di Linux. Linux si aspetta che le impostazioni TCP/IP siano in percorsi specifici e può essere necessario effettuare cambiamenti quando le impostazioni predefinite non sono appropriate. La lezione tratta i seguenti argomenti:

  • Come Linux identifica le interfacce di rete.

  • L’attivazione delle interfacce durante l’avvio e la configurazione IP di base.

  • Come il sistema operativo associa i nomi agli host.

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

  • Convenzioni relative alla denominazione delle interfacce.

  • Elenco delle interfacce di rete con ip e nmcli.

  • Attivazione delle interfacce con ifup e ifdown.

  • Il comando hostnamectl e il file /etc/hostname.

  • I file /etc/nsswitch.conf, /etc/hosts e /etc/resolv.conf.

Risposte agli Esercizi Guidati

  1. Quali comandi possono essere usati per elencare le schede di rete presenti nel sistema?

    I comandi ip link show, nmcli device e il legacy ifconfig.

  2. Qual è il tipo di adattatore di rete il cui nome di interfaccia è wlo1?

    Il nome inizia con wl, quindi è un adattatore LAN wireless.

  3. Che ruolo ha il file /etc/network/interfaces durante l’avvio?

    Include le configurazioni utilizzate dal comando ifup per attivare le interfacce corrispondenti durante l’avvio.

  4. Quale voce in /etc/network/interfaces configura l’interfaccia eno1 per ottenere le sue impostazioni IP attraverso un DHCP server?

    La voce iface eno1 inet dhcp.

Risposte agli Esercizi Esplorativi

  1. Come si potrebbe usare il comando hostnamectl per cambiare in firewall solo l’hostname statico della macchina locale?

    Con l’opzione --static: hostnamectl --static set-hostname firewall.

  2. Quali dettagli diversi dagli hostname possono essere modificati dal comando hostnamectl?

    hostnamectl può anche impostare il nome dell’icona predefinita per la macchina locale, il tipo di sistema, la posizione e l’ambiente di distribuzione.

  3. Quale voce in /etc/hosts associa entrambi i nomi firewall e router all’IP 10.8.0.1?

    La linea 10.8.0.1 firewall router.

  4. Come si potrebbe modificare il file /etc/resolv.conf per inviare tutte le richieste DNS a 1.1.1.1?

    Usando nameserver 1.1.1.1 come sua unica voce nameserver.

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.2 Configurazione di rete persistente (109.2 Lezione 2)

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.