diff --git a/docs/gemstones/xorriso.de.md b/docs/gemstones/xorriso.de.md index a1ba24d1cf..549c877036 100644 --- a/docs/gemstones/xorriso.de.md +++ b/docs/gemstones/xorriso.de.md @@ -1,6 +1,7 @@ --- title: Mit Xorriso auf physische CDs/DVDs brennen author: Joseph Brinkman +contributors: Steven Spencer --- ## Einleitung @@ -28,13 +29,24 @@ Eine ISO-Datei auf eine physische CD/DVD brennen. **ISO auf Festplatte schreiben**: ```bash - sudo xorriso -as cdrecord -v dev/=/dev/sr0 -blank=as_needed -dao Rocky-10.1-x86_64-boot.iso + sudo xorriso -as cdrecord -v dev=/dev/sr0 -blank=as_needed -dao Rocky-10.1-x86_64-boot.iso -eject ``` ## Zusätzliche Informationen -Xorriso verwendet die C-Bibliothek `libisofs`. Mehr über libisofs erfahren Sie im [Fedora-Paketbeobachter](https://packages.fedoraproject.org/pkgs/libisofs/libisofs/index.html). +Xorriso verwendet eine C-Bibliothek namens `libisofs`. Mehr über `libisofs` erfahren Sie im [Fedora-Package-Watcher](https://packages.fedoraproject.org/pkgs/libisofs/libisofs/index.html). ## Zusammenfassung -In diesem Kurs haben Sie gelernt, wie man mit Xorriso eine ISO-Datei auf eine physische Disk schreibt! Beachten Sie, dass Xorriso auch zum Schreiben anderer Dateitypen auf physische Datenträger verwendet werden kann, aber der Autor fand es besonders praktisch für das hybride ISO-Format, mit dem grafische Tools nicht umgehen konnten. +In diesem Kurs haben Sie gelernt, wie man mit Xorriso eine ISO-Datei auf eine physische Disk schreibt! Beachten Sie, dass `Xorriso` auch zum Schreiben anderer Dateitypen auf physische Datenträger verwendet werden kann, aber der Autor fand es besonders praktisch für das hybride ISO-Format, mit dem grafische Tools nicht umgehen konnten. +

+🌐 Übersetzungen: +crowdin.com/project/rockydocs +
+🌍 Übersetzer: +rockydocs/activity-stream +, rockylinux.org +
+🖋 Mitmachen: +github.com/rocky-linux +
diff --git a/docs/gemstones/xorriso.it.md b/docs/gemstones/xorriso.it.md index 44ccfc923d..c32ce045f8 100644 --- a/docs/gemstones/xorriso.it.md +++ b/docs/gemstones/xorriso.it.md @@ -1,6 +1,7 @@ --- title: Scrivere su CD/DVD fisici con Xorriso author: Joseph Brinkman +contributors: Steven Spencer --- ## Introduzione @@ -28,7 +29,7 @@ Masterizza un ISO su un CD/DVD fisico. **Scrivere la ISO su Disco**: ```bash - sudo xorriso -as cdrecord -v dev/=/dev/sr0 -blank=as_needed -dao Rocky-10.1-x86_64-boot.iso + sudo xorriso -as cdrecord -v dev=/dev/sr0 -blank=as_needed -dao Rocky-10.1-x86_64-boot.iso -eject ``` ## Informazioni aggiuntive diff --git a/docs/guides/file_sharing/sftp.it.md b/docs/guides/file_sharing/sftp.it.md index d8a45fadcc..01e9e71de8 100644 --- a/docs/guides/file_sharing/sftp.it.md +++ b/docs/guides/file_sharing/sftp.it.md @@ -1,5 +1,5 @@ --- -title: Server sicuro - sftp +title: Server sicuro - `sftp` author: Steven Spencer contributors: Ezequiel Bruni, Ganna Zhyrnova tested_with: 8.5, 8.6, 9.0 @@ -12,18 +12,19 @@ tags: - multisite --- -# Server sicuro - SFTP con procedure di blocco SSH + +## (con procedure di blocco SSH) ## Introduzione -Quando il protocollo SSH stesso è sicuro, può sembrare strano avere un documento dedicato all'uso "sicuro" di SFTP (una parte del pacchetto openssh-server). Ma la maggior parte degli amministratori di sistema non vuole aprire SSH a tutti per implementare SFTP per tutti. Questo documento descrive l'implementazione di un jail di change root (**chroot**) per SFTP che limita l'accesso a SSH. +Essendo il protocollo SSH stesso sicuro, può sembrare strano avere un documento dedicato all'uso "sicuro" di SFTP (una parte del pacchetto openssh-server). Ma la maggior parte degli amministratori di sistema non vuole aprire SSH a tutti gli utenti per implementare SFTP per tutti. Questo documento descrive l'implementazione di un jail di change root (**chroot**) per SFTP che limita l'accesso a SSH. Molti documenti trattano la creazione di un jail chroot SFTP, ma la maggior parte non considera un caso d'uso in cui l'utente potrebbe accedere a una directory web su un server con molti siti web. Questo documento se ne occupa. Se questo non è il vostro caso d'uso, potete adattare rapidamente questi concetti a situazioni diverse. -L'autore ritiene inoltre che sia necessario, nel redigere il documento sul jail chroot per SFTP, discutere anche delle altre cose che dovreste fare come amministratori di sistema per ridurre al minimo l'obiettivo che offrite al mondo tramite SSH. Per questo motivo, il presente documento è suddiviso in quattro parti: +L'autore ritiene inoltre necessario, nel redigere il documento relativo alla chroot jail per `sftp`, discutere gli altri aspetti che un amministratore di sistema deve considerare per ridurre al minimo l'esposizione al mondo esterno tramite SSH. A tale scopo, questo documento è suddiviso in quattro parti: 1. La prima riguarda le informazioni generali che verranno utilizzate per l'intero documento. -2. Il secondo riguarda la configurazione di chroot. Se vi fermate qui è una scelta che spetta a voi. +2. Il secondo riguarda la configurazione di chroot. Se decidete di fermarvi lì, dipende solo da voi. 3. La terza parte riguarda l'impostazione dell'accesso SSH a chiave pubblica/privata per gli amministratori di sistema e la disattivazione dell'autenticazione remota basata su password. 4. La quarta e ultima sezione di questo documento tratta la disattivazione dei login di root da remoto. @@ -31,29 +32,25 @@ Tutti questi passaggi vi permetteranno di offrire un accesso SFTP sicuro ai vost !!! Note "chroot jails per i principianti:" - le jail di chroot sono un modo per limitare le attività di un processo e di tutti i suoi vari processi figli sul computer. Consente di scegliere una directory o una cartella specifica sul computer e di renderla la directory "principale" per qualsiasi processo o programma. + le jail di chroot sono un modo per limitare le attività di un processo e di tutti i suoi vari sotto-processi sul computer. Consente di scegliere una directory o una cartella specifica sul computer e di renderla la directory "root" per qualsiasi processo o programma. Da quel momento in poi, quel processo o programma può accedere *solo* a quella cartella e alle sue sottocartelle. -!!! tip "Aggiornamenti per Rocky Linux 8.x e 9.x" - - Questo documento è stato aggiornato per includere le nuove modifiche apportate dalla versione 8.6 che renderanno questa procedura ancora più sicura. Se si utilizza la versione 8.6 o più recente, o una qualsiasi versione della 9.x, questa procedura dovrebbe funzionare. Le sezioni specifiche per Rocky Linux 8.5 sono state rimosse, in quanto l'attuale versione di 8 (8.8 al momento della riscrittura) dovrebbe essere al punto in cui si trova qualsiasi versione di 8.x dopo l'aggiornamento dei pacchetti. - ## Parte 1: Informazioni generali ### Presupposti e convenzioni I presupposti sono che: -- si è a proprio agio nell'eseguire i comandi dalla riga di comando. -- si può usare un editor a riga di comando, come `vi` (usato qui), `nano`, `micro`, ecc. -- si conoscono i comandi di base di Linux utilizzati per l'aggiunta di gruppi e utenti, o si è in grado di seguirli bene. -- il vostro sito web multisito è come questo: [Apache Multi Sito](../web/apache-sites-enabled.md) -- avete già installato `httpd` (Apache) sul server. +- Si sia a proprio agio nell'eseguire i comandi da riga di comando +- Si sappia usare un editor a riga di comando, come `vi` (usato qui), `nano`, `micro`, ecc. +- Si conoscano i comandi di base di Linux utilizzati per l'aggiunta di gruppi e utenti, o si sia in grado di seguirli bene. +- Il vostro sito web multisito sia come questo: [Apache Multisite](../web/apache-sites-enabled.md) +- Abbiate già installato `httpd` (Apache) sul server. !!! note "Nota" - Questi concetti possono essere applicati a qualsiasi server e a qualsiasi demone web. Anche se qui si ipotizza Apache, si può usare anche per Nginx. + Questi concetti possono essere applicati a qualsiasi server e a qualsiasi daemon web. Sebbene qui si ipotizzi l'uso di Apache, è possibile utilizzare questa procedura anche per Nginx. ### Siti, utenti, amministratori @@ -73,7 +70,7 @@ Si tratta di scenari fittizi. Qualsiasi somiglianza con persone o siti reali è ### Installazione -L'installazione non è difficile. È sufficiente avere installato `openssh-server`, che probabilmente è già installato. Inserisci questo comando per essere sicuro: +L'installazione non è difficile. È sufficiente avere installato `openssh-server`, che probabilmente lo è già. Inserire questo comando per esserne certi: ```bash dnf install openssh-server @@ -83,7 +80,7 @@ dnf install openssh-server #### Directories -La struttura del percorso della directory sarà `/var/www/sub-domains/[ext.domainname]/html` e la directory `html` in questo percorso sarà la chroot jail per l'utente SFTP. +La struttura del percorso della directory sarà `/var/www/sub-domains/[ext.domainname]/html` e la directory `html` in questo percorso sarà la chroot jail per l'utente `sftp`. Creare le directory di configurazione: @@ -99,11 +96,11 @@ mkdir -p /var/www/sub-domains/com.site1/html mkdir -p /var/www/sub-domains/com.site2/html ``` -La proprietà di queste directory verrà gestita in seguito nell'applicazione di script. +La proprietà di queste directory verrà gestita in seguito nello script. ### Configurazione `httpd` -È necessario modificare il file integrato `httpd.conf` per fargli caricare i file di configurazione nella directory `/etc/httpd/sites-enabled`. Per farlo, aggiungete una riga in fondo al file `httpd.conf`. +È necessario modificare il file `httpd.conf` già presente per fargli caricare i file di configurazione nella directory `/etc/httpd/sites-enabled`. Per farlo, aggiungete una riga in fondo al file `httpd.conf`. Modificare il file con l'editor preferito. L'autore utilizza `vi` qui: @@ -121,7 +118,7 @@ Salvare il file e uscire. ### Configurazione del sito web -È necessario creare due siti. Si creeranno le configurazioni in `/etc/httpd/sites-available` e si collegheranno a `../sites-enabled`: +You need two sites created. Si creeranno le configurazioni in `/etc/httpd/sites-available` e si collegheranno a `../sites-enabled`: ```bash vi /etc/httpd/sites-available/com.site1 @@ -129,7 +126,7 @@ vi /etc/httpd/sites-available/com.site1 !!! note "Nota" - L'esempio utilizza solo il protocollo HTTP. Qualsiasi sito web reale necessita della configurazione del protocollo HTTPS, dei certificati SSL e di molto altro ancora. + L'esempio utilizza solo il protocollo HTTP. Qualsiasi sito web reale avrebbe bisogno della configurazione del protocollo HTTPS, dei certificati SSL/TLS e possibilmente di altro ancora. ```bash @@ -187,7 +184,7 @@ vi /etc/httpd/sites-available/com.site2 ``` -Salvare il file e uscire. +Salva questo file ed esci. Una volta terminata la creazione dei due file di configurazione, collegarli all'interno di `/etc/httpd/sites-enabled`: @@ -204,7 +201,7 @@ systemctl enable --now httpd ### Creazione dell'utente -Per il nostro ambiente di esempio, si presume che nessuno degli utenti sia ancora esistente. Iniziate dagli utenti amministrativi. A questo punto del processo, è ancora possibile accedere come utente root per aggiungere gli altri utenti e configurarli nel modo desiderato. Quando gli utenti sono stati configurati e testati, è possibile rimuovere i login di root. +Per questo ambiente di esempio, si presume che nessuno degli utenti ancora esista. Iniziate dagli utenti amministrativi. A questo punto del processo, è ancora possibile accedere come utente root per aggiungere gli altri utenti e configurarli nel modo desiderato. Quando gli utenti sono stati configurati e testati, è possibile rimuovere i login di root. #### Amministratori @@ -213,9 +210,9 @@ useradd -g wheel ssimpson useradd -g wheel lblakely ``` -Aggiungendo i nostri utenti al gruppo "wheel" si concede loro l'accesso `sudo`. +Aggiungendo i vostri utenti al gruppo “wheel” si concede loro l'accesso `sudo`. -È comunque necessaria una password per l'accesso `sudo`. Ci sono modi per aggirare questo problema, ma nessuno è così sicuro. Francamente, se avete problemi di sicurezza usando `sudo` sul vostro server, allora avete problemi molto più grandi con la vostra intera configurazione. Impostare le due password amministrative con password sicure: +È comunque necessaria una password per l'accesso `sudo`. Impostare le due password amministrative con password sicure: ```bash passwd ssimpson @@ -240,7 +237,7 @@ Se questo funziona per tutti gli utenti amministrativi, sarete pronti per la fas #### Utenti web (SFTP) -È necessario aggiungere i nostri utenti web. La struttura della cartella `../html` esiste già, quindi non si vuole crearla quando si aggiunge l'utente, ma *si vuole* specificarla. Inoltre, non si vuole effettuare alcun login se non con SFTP, quindi è necessario utilizzare una shell che neghi i login. +È necessario aggiungere gli utenti web. La struttura della cartella `../html` esiste già, quindi non si vuole crearla quando si aggiunge l'utente, ma *si vuole* specificarla. Inoltre, non si desidera alcun login diverso da `sftp`, quindi si deve utilizzare una shell che neghi i login. ```bash useradd -M -d /var/www/sub-domains/com.site1/html -g apache -s /usr/sbin/nologin mybroken @@ -257,7 +254,7 @@ Scomponiamo un po' questi comandi: **Nota:** Per un server Nginx, si usa `nginx` come gruppo. -I nostri utenti SFTP hanno ancora bisogno di password. Impostare una password sicura per ciascuno di essi. L'output del comando è già stato visualizzato sopra: +Gli utenti `sftp` necessitano comunque di password. Impostare una password sicura per ciascuno di essi. Si è già visto l'output del comando in precedenza: ```bash passwd mybroken @@ -268,13 +265,13 @@ passwd myfixed !!! warning "Attenzione" - Prima di iniziare questo processo, si consiglia di fare un backup del file di sistema che si intende modificare: `/etc/ssh/sshd_config`. La compromissione di questo file e l'impossibilità di tornare all'originale potrebbero causare un sacco di problemi! + Prima di iniziare questo processo, si consiglia di fare un backup del file di sistema che si intende modificare: `/etc/ssh/sshd_config`. La compromissione di questo file e l'impossibilità di tornare all'originale potrebbero causare un sacco di grattacapi! ``` vi /etc/ssh/sshd_config ``` -È necessario apportare una modifica al file `/etc/ssh/sshd_config`. Si costruirà un modello per apportare le modifiche alla cartella web al di fuori del file di configurazione e si scriveranno le aggiunte necessarie. +È necessario apportare una modifica al file `/etc/ssh/sshd_config`. Si svilupperà un modello per apportare modifiche alla directory web al di fuori del file di configurazione e si scriverà uno script con le aggiunte necessarie. Per prima cosa, effettuare la modifica manuale necessaria: @@ -289,7 +286,7 @@ In fondo al file si trova questo: Subsystem sftp /usr/libexec/openssh/sftp-server ``` -Si desidera modificare il testo come segue: +Si dovrà modificare il testo come segue: ```bash # override default of no subsystems @@ -299,15 +296,15 @@ Subsystem sftp internal-sftp Salvare e uscire dal file. -Il `sftp-server` e l'`internal-sftp` fanno parte di OpenSSH. L'`internal-sftp`, pur non essendo molto diverso dallo `sftp-server`, semplifica le configurazioni usando `ChrootDirectory` per forzare una diversa root del file system sui client. Ecco perché si usa `internal-sftp`. +Il `sftp-server` e l'`internal-sftp` fanno parte di OpenSSH. Il comando `internal-sftp`, pur non essendo molto diverso dal comando `sftp-server`, semplifica la configurazione utilizzando `ChrootDirectory` per forzare una root del file system diversa sui client. Ecco perché si usa `internal-sftp`. ### Il template e lo script -Perché state creando un modello e uno script per la parte successiva? Il motivo è evitare il più possibile l'errore umano. Non avete ancora finito di modificare il file `/etc/ssh/sshd_config`, ma volete eliminare il maggior numero possibile di errori ogni volta che dovete fare queste modifiche. Tutto questo verrà creato in `/usr/local/sbin`. +Perché create un modello e uno script per la parte successiva? Il motivo è evitare il più possibile l'errore umano. Non si è ancora finito di modificare il file `/etc/ssh/sshd_config`, ma si vuole eliminare il maggior numero possibile di errori ogni volta che si devono fare queste modifiche. Tutto questo verrà creato in `/usr/local/sbin`. #### Il template -Per prima cosa, create il vostro template: +Per prima cosa, creare il template: ```bash vi /usr/local/sbin/sshd_template @@ -336,9 +333,9 @@ mkdir /usr/local/sbin/templates #### Lo script e le modifiche di `sshd_config` -Con i rilasci di Rocky Linux 8.6 e 9.0, una nuova opzione per il file `sshd_config` consente di effettuare configurazioni drop-in. Si tratta di un **GRANDE** cambiamento. Ciò significa che si apporterà una singola modifica aggiuntiva al file `sshd_config` e il nostro script costruirà le modifiche a sftp in un file di configurazione separato. Questa nuova modifica rende le cose ancora più sicure. La sicurezza è buona!! +Con le recenti versioni di Rocky Linux, una nuova opzione per il file `sshd_config` consente configurazioni drop-in. Si tratta di un **GRANDE** cambiamento. Ciò significa che si dovrà apportare una sola modifica aggiuntiva al file `sshd_config` e lo script creerà le modifiche `sftp` in un file di configurazione separato. Questa nuova modifica rende le cose ancora più sicure. -Grazie alle modifiche introdotte per il file `sshd_config` in Rocky Linux 8.6 e 9.0, il nostro script utilizzerà un nuovo file di configurazione: `/etc/ssh/sftp/sftp_config`. +Lo script utilizzerà un nuovo file di configurazione drop-in: `/etc/ssh/sftp/sftp_config`. Per iniziare, creare la directory: @@ -346,25 +343,25 @@ Per iniziare, creare la directory: mkdir /etc/ssh/sftp ``` -Ora fate una copia di backup di `sshd_config`: +Eseguire una copia di backup del file `sshd_config`: ```bash cp /etc/ssh/sshd_config /etc/ssh/sshd_config.bak ``` -Infine, modificate il file `sshd_config`, scorrete fino in fondo al file e aggiungete questa riga: +Ora fare una copia di backup di `sshd_config`: ```bash Include /etc/ssh/sftp/sftp_config ``` -Salvare le modifiche e uscire dal file. È necessario riavviare `sshd`, ma il nostro script lo farà per noi dopo aver aggiornato il file `sftp_config`, quindi create lo script ed eseguitelo. +Salvare le modifiche e uscire dal file. Riavviare `sshd`, ma lo script lo farà per voi dopo aver aggiornato il file `sftp_config`, quindi creare lo script ed eseguilo. ```bash vi /usr/local/sbin/webuser ``` -E inserite questo codice: +Aggiungere questo codice al file: ```bash #!/bin/bash @@ -430,11 +427,11 @@ E inserite questo codice: !!! tip "Suggerimento" - Se si dà un'occhiata allo script qui sopra, si noterà il cambiamento del delimitatore che `sed` usa di default da `/` a `,`. `sed` consente di utilizzare qualsiasi carattere a singolo byte come delimitatore. Il file che si sta cercando contiene una serie di caratteri "/" e per cercare e sostituire queste stringhe è necessario eseguire l'escape di ciascuno di essi (aggiungendo una "\" davanti). Cambiare il delimitatore rende questa operazione infinitamente più semplice, perché elimina la necessità di eseguire gli escape. + Se si esamina lo script sopra riportato, si noterà che il delimitatore utilizzato di default da `sed` è stato modificato da `/` a `,`. `sed` consente di utilizzare qualsiasi carattere a singolo byte come delimitatore. Il file che si sta cercando contiene una serie di caratteri "/" e per cercare e sostituire queste stringhe è necessario eseguire l'escape di ciascuno di essi (aggiungendo una "\" davanti). Cambiare il delimitatore rende questa operazione infinitamente più semplice, perché elimina la necessità di eseguire gli escape. -Un paio di cose sono degne di nota sullo script e su una chroot SFTP in generale. In primo luogo, si richiedono le informazioni necessarie e le si ripropone all'utente per la verifica. Se si risponde "N" alla domanda di conferma, lo script si blocca e non fa nulla. Lo script per 8.5 crea un backup di `sshd_config` (`/etc/ssh/sshd_config.bak`) come era prima dell'esecuzione dello script. Lo script 8.6 o 9.0 fa lo stesso per il file `sftp_config` (`/etc/ssh/sftp/sftp_config.bak`). In questo modo, se si commettono errori in una voce, è possibile ripristinare il file di backup appropriato e riavviare `sshd` per far funzionare nuovamente le cose. +Ci sono un paio di cose degne di nota riguardo allo script e al chroot `sftp` in generale. In primo luogo, si richiedono le informazioni necessarie e le si ripropone all'utente per la verifica. Se si risponde "N" alla domanda di conferma, lo script si blocca e non fa nulla. Lo script crea una copia di backup del file `sftp_config` (`/etc/ssh/sftp/sftp_config.bak`). In questo modo, se si commettono errori in una voce, è possibile ripristinare il file di backup appropriato e riavviare `sshd` per far funzionare nuovamente le cose. -Il chroot SFTP richiede che il percorso indicato in `sshd_config` sia di proprietà di root. Per questo motivo, non è necessario aggiungere la cartella `html` alla fine del percorso. Una volta che l'utente si è autenticato, il chroot cambierà la directory home dell'utente, in questo caso la directory `../html`, con il dominio inserito. Il vostro script ha opportunamente cambiato il proprietario della directory `../html` con l'utente sftp e il gruppo apache. +Un paio di cose sono degne di nota sullo script e su una chroot SFTP in generale. Per questo motivo, non è necessario aggiungere la cartella `html` alla fine del percorso. Una volta che l'utente si è autenticato, il chroot cambierà la directory home dell'utente, in questo caso la directory `../html`, con il dominio inserito. Lo script per 8.5 crea un backup di `sshd_config` (`/etc/ssh/sshd_config.bak`) come era prima dell'esecuzione dello script. Rendere lo script eseguibile: @@ -446,7 +443,7 @@ Eseguire lo script per i due domini di prova. ### Verifica del rifiuto di SSH e dell'accesso SFTP -Per prima cosa, eseguire un test con `ssh` da un'altra macchina alla nostra macchina host come uno degli utenti SFTP. Si dovrebbe ricevere questo messaggio dopo aver inserito la password: +Per prima cosa, provare con `ssh` da un altro computer al vostro computer host come uno degli utenti `sftp`. Si dovrebbe ricevere questo messaggio dopo aver inserito la password: ```bash This service allows sftp connections only. @@ -454,32 +451,32 @@ This service allows sftp connections only. #### Test con strumenti grafici -Se *ricevete* questo messaggio, la prossima cosa da fare è testare l'accesso SFTP. Per facilitare i test, è possibile utilizzare un'applicazione FTP grafica che supporti SFTP, come Filezilla. In questi casi, i campi avranno un aspetto simile a questo: +Se si riceve quel messaggio, la cosa successiva da fare è testare l'accesso `sftp`. Per facilitare il test, è possibile utilizzare un'applicazione FTP grafica che supporti `sftp`, come Filezilla. In questi casi, i campi saranno simili ai seguenti: - **Host:** sftp://hostname_o_IP_del_server - **Username:** (Esempio: myfixed) - **Password:** (la password dell'utente SFTP) - **Port:** Se si utilizzano SSH e SFTP sulla porta 22 predefinita, immettere tale porta -Una volta compilato, si può fare clic sul pulsante "Quickconnect" (Filezilla) e ci si collegherà alla directory `../html` del sito appropriato. Fare doppio clic sulla directory "html" per posizionarsi al suo interno e provare a inviare un file nella directory. Se il risultato è positivo, tutto funziona correttamente. +Once filled in, you can click the "Quickconnect" (Filezilla) button and you will connect to the `../html` directory of the appropriate site. Fare doppio clic sulla cartella “html” per accedervi e provare a trascinare un file all'interno della cartella. Se il risultato è positivo, tutto funziona correttamente. #### Test con strumenti a riga di comando È possibile eseguire tutte queste operazioni dalla riga di comando su una macchina con SSH installato (la maggior parte delle installazioni Linux). Ecco una breve panoramica del metodo di connessione da riga di comando e di alcune opzioni: -- sftp username (Esempio: myfixed@ hostname o IP del server: sftp myfixed@192.168.1.116) -- Immettere la password quando viene richiesta -- cd html (passare alla directory html) -- pwd (dovrebbe mostrare che ci si trova nella directory html) -- lpwd (dovrebbe mostrare la directory di lavoro locale) -- lcd PATH (dovrebbe cambiare la propria directory di lavoro locale in qualcosa che si vuole utilizzare) -- put filename (copierà un file nella directory `..html`.) +- `sftp` username (Esempio: myfixed@ hostname o IP del server: sftp myfixed@192.168.1.116) +- Immettere la password quando richiesta +- `cd html` (passare alla directory html) +- `pwd` (dovrebbe mostrare che ci si trova nella directory html) +- `lpwd` (dovrebbe mostrare la directory di lavoro locale) +- `lcd` PATH (dovrebbe cambiare la propria directory di lavoro locale in qualcosa che si vuole utilizzare) +- `put filename` (copierà un file nella directory `..html`.) -Per un elenco esaustivo delle opzioni e altro ancora, consultare la pagina del manuale [SFTP](https://man7.org/linux/man-pages/man1/sftp.1.html). +Per un elenco completo delle opzioni e altro ancora, consultare la [pagina del manuale di `sftp`](https://man7.org/linux/man-pages/man1/sftp.1.html). ### File di test per il web -Per i nostri domini fittizi, vogliamo creare un paio di file `index.html` con cui popolare la directory `../html`. Una volta creati, è necessario inserirli nella directory di ciascun dominio con le credenziali SFTP di quel dominio. Questi file sono semplicistici. Si vuole solo verificare che i siti siano attivi e funzionanti e che SFTP funzioni come previsto. Ecco un esempio di questo file. Se lo si desidera, è possibile modificarlo: +Per i domini di prova, è necessario creare un paio di file `index.html` che è possibile inserire nella directory `../html`. Una volta creati, è necessario inserirli nella directory di ciascun dominio con le credenziali `sftp` relative a quel dominio. Questi file sono semplicistici. Si vuole solo qualcosa che permetta di verificare che i siti siano attivi e funzionanti e che `sftp` funzioni come previsto. Ecco un esempio di questo file. Se lo si desidera, è possibile modificarlo: ```html @@ -498,7 +495,7 @@ Per i nostri domini fittizi, vogliamo creare un paio di file `index.html` con cu ### Test sul web -È necessario modificare il file _hosts_ sulla propria workstation per verificare che questi file vengano visualizzati e caricati come previsto. Per Linux sarà `sudo vi /etc/hosts` e aggiungete gli IP e i nomi degli host con cui state facendo i test in questo modo: +È necessario modificare il file *hosts* sulla propria workstation per verificare che questi file vengano visualizzati e caricati come previsto. Una volta creati, è necessario inserirli nella directory di ciascun dominio con le credenziali SFTP di quel dominio. ```bash 127.0.0.1 localhost @@ -524,7 +521,7 @@ Si noti che qui si utilizzeranno i concetti discussi nel documento [SSH Public a ### Creazione delle coppie di chiavi pubbliche/private -Dalla riga di comando di una delle stazioni di lavoro dell'utente amministrativo (esempio: lblakely), eseguire le seguenti operazioni: +Da una delle workstation dell'utente amministrativo (esempio: lblakely), eseguire le seguenti operazioni a riga di comando: ```bash ssh-keygen -t rsa @@ -537,25 +534,25 @@ Generating public/private rsa key pair. Enter file in which to save the key (/home/lblakely/.ssh/id_rsa): ``` -Premete invio per creare la chiave privata nella posizione indicata. Si aprirà questa finestra di dialogo: +Premere ++Invio++ per creare la chiave privata nella posizione indicata. Si aprirà questa finestra di dialogo: ```text Enter passphrase (empty for no passphrase): ``` -Dovrete decidere personalmente se avete bisogno di una passphrase per questo passaggio. L'autore si limita sempre a premere invio qui. +Dovrete decidere personalmente se avete bisogno di una passphrase per questo passaggio. L'autore preme sempre solo ++enter++ qui. ```text Enter same passphrase again: ``` -Ripetere la passphrase immessa in precedenza o non immetterla. +Ripetere la passphrase inserita in precedenza oppure ++enter++ per nessuna. -A questo punto esistono le chiavi pubbliche e private. Ripetete questo passaggio per l'altro utente amministratore di sistema di esempio. +A questo punto esistono le chiavi pubbliche e private. Ripetere questo passaggio per l'altro utente amministratore di sistema di esempio. -### Trasferimento della chiave pubblica al server SFTP +### Trasferire la chiave pubblica al server `sftp` -Il passo successivo consiste nell'esportare la nostra chiave sul server. In realtà, un amministratore di sistema responsabile della gestione di più server trasferirà la propria chiave pubblica a tutti i server di cui è responsabile. +Il passo successivo è esportare la chiave sul server. In realtà, un amministratore di sistema responsabile della gestione di più server trasferirà la propria chiave pubblica a tutti i server di cui è responsabile. L'utente può inviare la chiave al server in modo sicuro con `ssh-id-copy` al momento della creazione: @@ -563,15 +560,14 @@ L'utente può inviare la chiave al server in modo sicuro con `ssh-id-copy` al mo ssh-id-copy lblakely@192.168.1.116 ``` -Il server richiederà una volta la password dell'utente e copierà la chiave in authorized_keys. Riceverete anche voi questo messaggio: +Il server richiederà una volta la password dell'utente e copierà la chiave in *authorized_keys*. Riceverete anche voi questo messaggio: ```bash Number of key(s) added: 1 - -Now try logging into the machine, with: "ssh 'lblakely@192.168.1.116'" -and check to make sure that only the key(s) you wanted were added. ``` +Provare ad accedere al computer con: “ssh ‘lblakely@192.168.1.116’” e verificare che siano state aggiunte solo le chiavi desiderate. + Se si riesce ad accedere con questo account, ripetere la procedura con l'altro amministratore. ### Consentire SOLO login basati su chiavi @@ -624,7 +620,7 @@ systemctl restart sshd Il tentativo di accedere al server come uno degli utenti amministrativi utilizzando le loro chiavi dovrebbe funzionare come prima. In caso contrario, ripristinare il backup, assicurarsi di aver seguito tutti i passaggi e riprovare. -## Parte 4: Disattivare l'accesso root da remoto +## Parte 4: Disattivare l'accesso di root da remoto In pratica l'avete già fatto. Se si tenta di accedere al server con l'utente root, si otterrà il seguente risultato: @@ -632,9 +628,9 @@ In pratica l'avete già fatto. Se si tenta di accedere al server con l'utente ro root@192.168.1.116: Permission denied (publickey,gssapi-keyex,gssapi-with-mic). ``` -Ma si vuole garantire che qualcuno non possa creare una chiave pubblica/privata per l'utente root e accedere così al server. A tal fine, è necessario un ultimo passo. Farete questo cambiamento... Avete indovinato! ... nel file `sshd_config`. +Ma si vuole garantire che nessuno possa creare una chiave pubblica/privata per l'utente root e accedere così al server. A tal fine, è necessario un ultimo passo. Fare tale modifica nel file `sshd_config`. -Come per tutti gli altri passaggi, quando si modifica il file `sshd_config`, è necessario fare una copia di backup del file prima di continuare: +Come in precedenza, è consigliabile eseguire una copia di backup del file prima di continuare: ```bash cp -f /etc/ssh/sshd_config /etc/ssh/sshd_config.bak @@ -674,7 +670,7 @@ Non è ancora stato discusso cosa succede quando si aggiunge un altro amministra Questa soluzione presuppone l'accesso fisico al server e che il server sia hardware fisico e non virtuale (container o VM): -- Aggiungere l'utente al gruppo "wheel" sul server SFTP +- Aggiungere l'utente al gruppo "wheel" sul server `sftp` - Chiedete all'utente di generare le sue chiavi pubbliche e private SSH - Utilizzando un'unità USB, copiate la chiave pubblica sull'unità, portatela fisicamente sul server e installatela manualmente nella directory del nuovo amministratore di sistema `/home/[nomeutente]/.ssh` @@ -683,8 +679,8 @@ Questa soluzione presuppone l'accesso fisico al server e che il server sia hardw Questa soluzione è soggetta all'errore umano, ma poiché non è praticata spesso, è probabilmente accettabile se eseguita con cura: - Aggiungere l'utente al gruppo "wheel" sul server SFTP -- Chiedete a un altro amministratore di sistema, che ha già un'autenticazione basata su chiavi, di attivare temporaneamente "PasswordAuthentication yes" nel file `sshd_config` e di riavviare `sshd` -- Chiedete al nuovo amministratore di sistema di eseguire `ssh-copy-id` utilizzando la propria password per copiare la chiave ssh sul server. +- Chiedere a un altro amministratore di sistema, che ha già un'autenticazione basata su chiavi, di attivare temporaneamente "PasswordAuthentication yes" nel file `sshd_config` e di riavviare `sshd` +- Chiedere al nuovo amministratore di sistema di eseguire `ssh-copy-id` utilizzando la propria password per copiare la chiave ssh sul server. ### Soluzione tre - script del processo @@ -701,17 +697,16 @@ Questo processo utilizza un amministratore di sistema che ha già un accesso bas /usr/bin/sed -i '0,/PasswordAuthentication no/ s/PasswordAuthentication no/PasswordAuthentication yes/' /etc/ssh/sshd_config /usr/bin/systemctl restart sshd -echo "Have the user send his keys, and then hit enter." -read yn +echo "Have the user send his keys, and then hit enter." read yn /usr/bin/sed -i '0,/PasswordAuthentication yes/ s/PasswordAuthentication yes/PasswordAuthentication no/' /etc/ssh/sshd_config /usr/bin/systemctl restart sshd echo "Changes reversed" ``` -Spiegazione dello script: Non rendere questo script eseguibile. Il motivo è che non si vuole che venga eseguito accidentalmente. Lo script viene eseguito (come indicato sopra) in questo modo: `bash /usr/local/sbin/quickswitch`. Questo script crea una copia di backup del file `sshd_config` proprio come tutti gli altri esempi precedenti. Quindi modificare il file `sshd_config` esistente e cercare nel file la *PRIMA* presenza di `PasswordAuthentication no` e modificarla in `PasswordAuthentication yes` quindi riavviare `sshd` e attendere che l'utente dello script prema ++enter++ prima di proseguire. L'amministratore di sistema che esegue lo script sarebbe in comunicazione con il nuovo amministratore di sistema e, una volta che quest'ultimo esegue `ssh-copy-id` per copiare la sua chiave sul server, l'amministratore di sistema che sta eseguendo lo script preme invio e inverte la modifica. +Spiegazione dello script: Non rendere questo script eseguibile. Il motivo è che non si vuole che venga eseguito accidentalmente. Lo script viene eseguito (come indicato sopra) in questo modo: `bash /usr/local/sbin/quickswitch`. Questo script crea una copia di backup del file `sshd_config`. Quindi modificare il file `sshd_config` e cercare la *PRIMA* occorrenza di `PasswordAuthentication no` per cambiarla in `PasswordAuthentication yes`, quindi riavviare `sshd` e attendere che l'utente dello script prema ++enter++ prima di continuare. L'amministratore di sistema che esegue lo script dovrebbe essere in comunicazione con il nuovo amministratore di sistema. Quando il nuovo amministratore di sistema esegue `ssh-copy-id` per copiare la sua chiave sul server, l'amministratore di sistema che sta eseguendo lo script preme ++enter++ e questo annulla la modifica. In breve, esistono molti modi per aggiungere un altro amministratore di sistema dopo l'implementazione delle procedure di blocco SSH. ## Conclusione -Questo documento è molto esteso. Rende un server web multisito più sicuro e meno soggetto a vettori di attacco su SSH quando si attiva SFTP per l'accesso dei clienti. SFTP è molto più sicuro di FTP, anche se si usa un server FTP veramente *BUONO* e lo si configura nel modo più sicuro possibile, come indicato in questo [documento su VSFTPD](secure_ftp_server_vsftpd.md). Implementando *tutti* i passaggi di questo documento, potrete sentirvi tranquilli nell'aprire la porta 22 (SSH) alla vostra zona pubblica, sapendo che il vostro ambiente è sicuro. +Questo documento è molto esteso. Rende un server web multisito più sicuro e meno soggetto a vettori di attacco su SSH quando si attiva `sftp` per l'accesso dei clienti. `sftp` è molto più sicuro di FTP, anche se si usa un server FTP veramente *BUONO* e lo si configura nel modo più sicuro possibile, come indicato in questo [documento su VSFTPD](secure_ftp_server_vsftpd.md). Implementando *tutti* i passaggi di questo documento, potrete sentirvi tranquilli nell'aprire la porta 22 (SSH) alla vostra zona pubblica, sapendo che il vostro ambiente è sicuro. diff --git a/docs/guides/network/basic_network_configuration.it.md b/docs/guides/network/basic_network_configuration.it.md index 68b30181a1..0213d8c113 100644 --- a/docs/guides/network/basic_network_configuration.it.md +++ b/docs/guides/network/basic_network_configuration.it.md @@ -8,717 +8,334 @@ tags: - network --- -# Configurazione della Rete +## Introduzione -Al giorno d'oggi non si può fare molto con un computer senza la connettività di rete. Sia che dobbiate aggiornare i pacchetti su un server, sia che dobbiate semplicemente navigare su siti web esterni dal vostro portatile, avrete bisogno di un accesso alla rete! Questa guida si propone di fornire agli utenti di Rocky Linux le conoscenze di base sull'impostazione della connettività di rete. +You cannot do much with a computer these days without network connectivity. Sia che dobbiate aggiornare i pacchetti su un server o navigare su siti web esterni dal tuo laptop, avrete bisogno di un accesso alla rete. Questa guida ha lo scopo di fornire agli utenti di Rocky Linux le conoscenze di base sulla configurazione della connettività di rete. + +Molto è cambiato nella configurazione di rete a partire da Rocky Linux 10. Una delle modifiche principali è la rimozione di Network-Scripts (deprecato in Rocky Linux 9) a favore dell'uso di Network Manager e dei file chiave. `NetworkManager` dalla versione 10 in poi, preferisce i `keyfiles` rispetto ai precedenti file `ifcfg`. Questa guida intende illustrare l'utilizzo di Network Manager e le ultime modifiche apportate a Rocky Linux 10. ## Prerequisiti - Una certa comodità nell'operare dalla riga di comando -- Privilegi elevati o amministrativi sul sistema (per esempio root, `sudo` e così via) +- Privilegi elevati o amministrativi sul sistema (ad esempio, root, `sudo` e così via) - Opzionale: familiarità con i concetti di rete -=== "9" - - ## Configurazione di rete - Rocky Linux 9 - - A partire da Rocky Linux 9 sono cambiate molte cose nella configurazione di rete. Uno dei cambiamenti principali è il passaggio da Network-Scripts (ancora disponibile per l'installazione, ma di fatto deprecato) all'uso di Network Manager e di file chiave, piuttosto che di file basati su `ifcfg'. A partire dal 9, `NetworkManager` dà priorità ai `keyfiles` rispetto ai precedenti `ifcfg`. Dal momento che questa è l'impostazione predefinita, l'operazione di configurazione della rete dovrebbe considerare l'impostazione predefinita come il modo corretto di fare le cose, dato che altri cambiamenti nel corso degli anni hanno comportato la deprecazione e la rimozione di utilità più vecchie. Questa guida cercherà di guidarvi nell'uso di Network Manager e delle ultime modifiche apportate a Rocky Linux 9. - - ## Prerequisiti - - - Una certa dimestichezza nell'operare dalla riga di comando - - Privilegi elevati o amministrativi sul sistema (per esempio root, `sudo` e così via) - - Opzionale: familiarità con i concetti di rete - - - ## Usare il servizio NetworkManager - - A livello utente, lo stack di rete è gestito da `NetworkManager`. Questo strumento viene eseguito come servizio ed è possibile verificarne lo stato con il seguente comando: - - ```bash - systemctl status NetworkManager - ``` - - - ## File di configurazione - - Come indicato all'inizio, i file di configurazione predefiniti sono ora file keys. È possibile vedere come `NetworkManager` assegna la priorità a questi file eseguendo il seguente comando: - - ``` - NetworkManager --print-config - ``` - - Si ottiene così un risultato simile a questo: - - ``` - [main] - # plugins=keyfile,ifcfg-rh - # rc-manager=auto - # auth-polkit=true - # iwd-config-path= - dhcp=dhclient - configure-and-quit=no - - [logging] - # backend=journal - # audit=false - - [device] - # wifi.backend=wpa_supplicant - - # no-auto-default file "/var/lib/NetworkManager/no-auto-default.state" - ``` - - Notate all'inizio del file di configurazione il riferimento al `keyfile` seguito da `ifcfg-rh`. Questo significa che l'impostazione predefinita è il `keyfile`. Ogni volta che si esegue uno degli strumenti di `NetworkManager` per configurare un'interfaccia (ad esempio: `nmcli` o `nmtui`), questo costruisce o aggiorna automaticamente i file delle chiavi. - - !!! tip "Configurazione posizione di archiviazione" - - In Rocky Linux 8, la posizione di memorizzazione per la configurazione di rete era in `/etc/sysconfig/Network-Scripts/`. Con Rocky Linux 9, il nuovo percorso di archiviazione predefinito per i file chiave è in `/etc/NetworkManager/system-connections`. - - L'utilità principale (ma non l'unica) utilizzata per configurare un'interfaccia di rete è il comando `nmtui`. Questo può essere fatto anche con il comando `nmcli`, ma è molto meno intuitivo. Possiamo mostrare l'interfaccia come è attualmente configurata usando `nmcli` con: - - ``` - nmcli device show enp0s3 - GENERAL.DEVICE: enp0s3 - GENERAL.TYPE: ethernet - GENERAL.HWADDR: 08:00:27:BA:CE:88 - GENERAL.MTU: 1500 - GENERAL.STATE: 100 (connected) - GENERAL.CONNECTION: enp0s3 - GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1 - WIRED-PROPERTIES.CARRIER: on - IP4.ADDRESS[1]: 192.168.1.151/24 - IP4.GATEWAY: 192.168.1.1 - IP4.ROUTE[1]: dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 100 - IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 192.168.1.1, mt = 100 - IP4.DNS[1]: 8.8.8.8 - IP4.DNS[2]: 8.8.4.4 - IP4.DNS[3]: 192.168.1.1 - IP6.ADDRESS[1]: fe80::a00:27ff:feba:ce88/64 - IP6.GATEWAY: -- - IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 1024 - ``` - - - !!! tip "**Suggerimento:**" - - Esistono alcuni modi o meccanismi per assegnare ai sistemi le informazioni di configurazione IP. I due metodi più comuni sono: lo schema **Configurazione IP statica** e lo schema **Configurazione IP dinamica**. - - Lo schema di configurazione IP statico è molto diffuso nei sistemi o nelle reti di tipo server. - - L'approccio IP dinamico è molto diffuso nelle reti domestiche e di ufficio o nei sistemi di classe workstation e desktop in ambiente aziendale. Lo schema dinamico di solito richiede *qualcosa* di aggiuntivo che sia disponibile localmente e che possa fornire informazioni di configurazione IP adeguate alle workstation e ai desktop che ne fanno richiesta. Questo *qualcosa* si chiama Dynamic Host Configuration Protocol (DHCP). In una rete domestica, e anche nella maggior parte delle reti aziendali, questo servizio è fornito da un server DHCP configurato allo scopo. Può trattarsi di un server separato o di una parte della configurazione del router. - - - ## Indirizzi IP - - Nella sezione precedente, la configurazione visualizzata per l'interfaccia `enp0s3` è generata dal file `.ini` `/etc/NetworkManager/system-connections/enp0s3.nmconnection`. Questo indica che l'indirizzo IP4.ADDRESS[1] è stato configurato staticamente e non dinamicamente tramite DHCP. Se si vuole riportare questa interfaccia a un indirizzo allocato dinamicamente, il modo più semplice è usare il comando `nmtui`. - - 1. Per prima cosa, eseguire il comando `nmtui` alla riga di comando, che dovrebbe mostrare quanto segue - - ![nmtui](images/nmtui_first.png) - - 2. È già presente la selezione "Modifica una connessione", quindi premete il tasto ++tab++ in modo da evidenziare "OK" e premete ++enter++ - - 3. Verrà visualizzata una schermata che mostra le connessioni Ethernet della macchina e consentirà di sceglierne una. Nel nostro caso, ce n'è *solo uno*, quindi è già evidenziato, dobbiamo semplicemente premere il tasto ++tab++ finché non viene evidenziato "Modifica" e poi premere ++enter++ - - ![nmtui_edit](images/nmtui_edit.png) - - 4. Una volta fatto questo, ci troveremo nella schermata che mostra la nostra configurazione attuale. È necessario passare da "Manuale" ad "Automatico", quindi premere più volte il tasto ++tab++ fino ad evidenziare "Manuale" e premere ++enter++. - - ![nmtui_manual](images/nmtui_manual.png) - - 5. La freccia verso l'alto fino a evidenziare "Automatico", quindi premere ++enter++ - - ![nmtui_automatic](images/nmtui_automatic.png) - - 6. Una volta che l'interfaccia è passata ad "Automatico", è necessario rimuovere l'IP assegnato staticamente, quindi premere il tasto ++tab++ finché non viene evidenziato "Rimuovi" accanto all'indirizzo IP e premere ++enter++. - - ![nmtui_remove](images/nmtui_remove.png) - - 7. Infine, premete più volte il tasto ++tab++ finché non arrivate in fondo alla schermata `nmtui` e non viene evidenziato "OK" e premete ++enter++ - - È possibile disattivare e riattivare l'interfaccia anche con `nmtui`, ma facciamo questo con `nmcli`. In questo modo è possibile regolare la disattivazione dell'interfaccia e la sua riattivazione, in modo che l'interfaccia non sia mai inattiva per molto tempo: - - ``` - nmcli con down enp0s3 && nmcli con up enp0s3 - ``` - - È l'equivalente del vecchio `ifdown enp0s3 && ifup enp0s3` usato nelle vecchie versioni del sistema operativo. - - Per verificare che abbia funzionato, controllate con il comando `ip addr` o con il comando `nmcli device show enp0s3` che abbiamo usato in precedenza. - - ``` - ip_addr - ``` - - In caso di successo, si dovrebbe vedere che l'IP statico è stato rimosso e che è stato aggiunto un indirizzo allocato dinamicamente, come in questo caso: - - ```bash - 2: enp0s3: mtu 1500 qdisc fq_codel state UP group default qlen 1000 - link/ether 08:00:27:ba:ce:88 brd ff:ff:ff:ff:ff:ff - inet 192.168.1.137/24 brd 192.168.1.255 scope global dynamic noprefixroute enp0s3 - valid_lft 6342sec preferred_lft 6342sec - inet6 fe80::a00:27ff:feba:ce88/64 scope link noprefixroute - valid_lft forever preferred_lft forever - ``` - - - ### Modifica dell'indirizzo IP con `nmcli` - - L'uso di `nmtui` è piacevole, ma se si vuole solo riconfigurare rapidamente l'interfaccia di rete senza dover passare tra una schermata e l'altra, probabilmente è meglio usare `nmcli` da solo. Vediamo l'esempio precedente di un IP assegnato staticamente e i passi per riconfigurare l'interfaccia in DHCP usando solo `nmcli`. - - Prima di iniziare, è necessario sapere che per riconfigurare l'interfaccia in DHCP è necessario: - - - Rimuovere il gateway IPv4 - - Rimuovere l'indirizzo IPv4 assegnato staticamente - - Cambiare il metodo IPv4 in automatico - - Disattivare e riattivare l'interfaccia - - Si noti anche che non stiamo usando esempi che dicono di usare -ipv4.address ecc. Questi non cambiano completamente l'interfaccia. Per farlo, è necessario impostare ipv4.address e ipv4.gateway su una stringa vuota. Anche in questo caso, per risparmiare il più possibile tempo con il nostro comando, li uniremo tutti in un'unica riga: - - ``` - nmcli con mod enp0s3 ipv4.gateway '' && nmcli con mod enp0s3 ipv4.address '' && nmcli con mod enp0s3 ipv4.method auto && nmcli con down enp0s3 && nmcli con up enp0s3 - ``` - - Eseguendo nuovamente il comando `ip addr` si otterranno gli stessi risultati di quando abbiamo eseguito le modifiche con `nmtui`. Ovviamente potremmo fare tutto anche al contrario (cambiando il nostro indirizzo DHCP con uno statico). Per farlo, si eseguono i comandi al contrario, iniziando con il cambiare `ipv4.method` in manual, impostando `ipv4.gateway` e quindi impostando `ipv4.address`. Poiché in tutti questi esempi stiamo riconfigurando completamente l'interfaccia e non aggiungendo o sottraendo valori ad essa, non utilizzeremo gli esempi che parlano dell'uso di `+ipv4.method`,`+ipv4.gateway`, and `+ipv4.address`. Se si usassero questi comandi al posto di quelli usati sopra, si otterrebbe un'interfaccia con *sia* un indirizzo assegnato da DHCP che uno assegnato staticamente. Detto questo, a volte può essere molto utile. Se si dispone di un servizio Web in ascolto su un IP e di un server SFTP in ascolto su un altro IP. È molto utile disporre di un metodo per assegnare più IP a un'interfaccia. - - - ## Risoluzione DNS - - L'impostazione dei server DNS può essere effettuata con `nmtui` o `nmcli`. Sebbene l'interfaccia `nmtui` sia facile da navigare e molto più intuitiva, il processo è molto più lento. L'operazione con `nmcli` è molto più veloce. Nel caso dell'indirizzo assegnato dal DHCP, di solito non è necessario impostare i server DNS, perché di solito vengono inoltrati dal server DHCP. Detto questo, *è possibile* aggiungere staticamente i server DNS a un'interfaccia DHCP. Nel caso di un'interfaccia assegnata staticamente, sarà *NECESSARIO* fare questa operazione, poiché dovrà sapere come ottenere la risoluzione DNS e non avrà un metodo assegnato automaticamente. - - Poiché l'esempio migliore per tutto questo è un IP assegnato staticamente, torniamo al nostro indirizzo statico originale della nostra interfaccia di esempio (enp0s3). Prima di modificare i parametri DNS, dobbiamo vedere quali sono gli attuali valori. Per ottenere una risoluzione corretta dei nomi, rimuovere i server DNS già impostati e aggiungerne di diversi. Attualmente `ipv4.dns` è impostato su `8.8.8.8.8.8.4.4.192.168.1.1`. In questo caso, non è necessario impostare ipv4.dns come una stringa vuota. Possiamo semplicemente usare il comando seguente per sostituire i nostri valori: - - ``` - nmcli con mod enp0s3 ipv4.dns '208.67.222.222,208.67.220.220,192.168.1.1' - ``` - - L'esecuzione di `nmcli con show enp0s3 | grep ipv4.dns` dovrebbe mostrare che la modifica dei server DNS è avvenuta con successo. Per attivare tutto, disattiviamo e riattiviamo l'interfaccia in modo che le modifiche vengano attivate: - - ``` - nmcli con down enp0s3 && nmcli con up enp0s3 - ``` - - Per verificare se la risoluzione dei nomi viene *effettuata*, provare a eseguire il ping di un host noto. Utilizzeremo google.com come esempio: - - ```bash - ping google.com - PING google.com (172.217.4.46) 56(84) bytes of data. - 64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=1 ttl=119 time=14.5 ms - 64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=2 ttl=119 time=14.6 ms - 64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=3 ttl=119 time=14.4 ms - ^C - ``` - - - ## Usare l'utilità `ip` - - Il comando `ip` (fornito dal pacchetto *iproute2*) è un potente strumento per ottenere informazioni e configurare la rete di un sistema Linux moderno come Rocky Linux. +## Usare il servizio NetworkManager - In questo esempio, assumeremo i seguenti parametri: +A livello utente, la gestione dello stack di rete è affidata a `NetworkManager`. Questo tool è eseguito come un servizio. È possibile verificarne lo stato con il seguente comando: - - nome dell'interfaccia: enp0s3 - - indirizzo ip: 192.168.1.151 - - maschera di sottorete: 24 - - gateway: 192.168.1.1 +```bash +systemctl status NetworkManager +``` +## File di configurazione - ### Ottenere informazioni di carattere generale +Come indicato all'inizio, i file di configurazione predefiniti sono ora key file. È possibile vedere come `NetworkManager` assegna la priorità a questi file eseguendo il seguente comando: - Per vedere lo stato dettagliato di tutte le interfacce, usare +``` +NetworkManager --print-config +``` - ```bash - ip a - ``` +Il comando darà questo risultato o uno simile: - !!! hint "**"Suggerimenti professionali:**" +``` +[main] +# plugins=keyfile +# rc-manager=auto +# auth-polkit=true +# iwd-config-path= +dhcp=dhclient +configure-and-quit=no - * usare il flag `-c` per ottenere un output colorato più leggibile: `ip -c a`. - * `ip` accetta l'abbreviazione quindi `ip a`, `ip addr` e `ip address` sono equivalenti +[logging] +# backend=journal +# audit=false +[device] +# wifi.backend=wpa_supplicant - ### Porta l'interfaccia su o giù +# no-auto-default file "/var/lib/NetworkManager/no-auto-default.state" +``` - !!! note "Nota" +Notare il riferimento a `keyfile` nella parte superiore del file di configurazione. Ogni volta che si esegue uno degli tools di `NetworkManager` per configurare un'interfaccia (ad esempio: `nmcli` o `nmtui`), questo costruisce o aggiorna automaticamente i key files. - Sebbene sia ancora possibile utilizzare questo metodo per portare l'interfaccia su e giù in Rocky Linux 9, il comando reagisce molto più lentamente rispetto al semplice comando `nmcli`. +!!! tip "Configurazione posizione di archiviazione" - Per far cadere e ripartire il *enp0s3* possiamo semplicemente usare: + Con Rocky Linux 10, il nuovo percorso di archiviazione predefinita per i keyfile è in `/etc/NetworkManager/system-connections`. - ``` - ip link set enp0s3 down && ip link set enp0s3 up - ``` +L'utilità principale (ma non l'unica) utilizzata per configurare un'interfaccia di rete è il comando `nmtui`. È possibile eseguire questa operazione anche con il comando `nmcli`, ma è molto meno intuitivo. È possibile visualizzare l'interfaccia così come è attualmente configurata utilizzando `nmcli` con: +``` +nmcli device show enp0s3 +GENERAL.DEVICE: enp0s3 +GENERAL.TYPE: ethernet +GENERAL.HWADDR: 08:00:27:BA:CE:88 +GENERAL.MTU: 1500 +GENERAL.STATE: 100 (connected) +GENERAL.CONNECTION: enp0s3 +GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1 +WIRED-PROPERTIES.CARRIER: on +IP4.ADDRESS[1]: 192.168.1.151/24 +IP4.GATEWAY: 192.168.1.1 +IP4.ROUTE[1]: dst = 192.168.1.0/24, nh = 0.0.0.0, mt = 100 +IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 192.168.1.1, mt = 100 +IP4.DNS[1]: 8.8.8.8 +IP4.DNS[2]: 8.8.4.4 +IP4.DNS[3]: 192.168.1.1 +IP6.ADDRESS[1]: fe80::a00:27ff:feba:ce88/64 +IP6.GATEWAY: -- +IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 1024 +``` - ### Assegnare all'interfaccia un indirizzo statico +!!! tip "**Suggerimenti:**" - Attualmente, la nostra interfaccia enp0s3 ha un indirizzo IP di 192.168.1.151. Per passare a 192.168.1.152, si rimuove il vecchio IP con - - ```bash - ip addr delete 192.168.1.151/24 dev enp0s3 && ip addr add 192.168.1.152/24 dev enp0s3 - ``` - - Se si volesse assegnare un secondo IP all'interfaccia, invece di rimuovere l'indirizzo 192.168.1.151, sarebbe sufficiente aggiungere il secondo indirizzo con: - - ```bash - ip addr add 192.168.1.152/24 dev enp0s3 - ``` - - Si può verificare se l'indirizzo IP è stato aggiunto con - - ```bash - ip a show dev enp0s3 - ``` - - verrà visualizzato: - - ```bash - 2: enp0s3: mtu 1500 qdisc fq_codel state UP group default qlen 1000 - link/ether 08:00:27:ba:ce:88 brd ff:ff:ff:ff:ff:ff - inet 192.168.1.151/24 brd 192.168.1.255 scope global noprefixroute enp0s3 - valid_lft forever preferred_lft forever - inet 192.168.1.152/24 scope global secondary enp0s3 - valid_lft forever preferred_lft forever - inet6 fe80::a00:27ff:feba:ce88/64 scope link noprefixroute - valid_lft forever preferred_lft forever - ``` - - Mentre porta l'interfaccia su e giù usando l'utilità `ip` è molto più lenta di `nmcli`, `ip` ha un vantaggio distinto quando si impostano indirizzi IP nuovi o aggiuntivi, come accade in tempo reale, senza portare l'interfaccia giù e su. - - - ### Configurazione del gateway - - - Ora che l'interfaccia ha un indirizzo, dobbiamo impostare il suo percorso predefinito. Questo può essere fatto con: - - ```bash - ip route add default via 192.168.1.1 dev enp0s3 - ``` - - La tabella di routing del kernel può essere visualizzata con - - ```bash - ip route - ``` - - o `ip r` in breve. - - Il risultato dovrebbe essere simile a questo: - - ```bash - default via 192.168.1.1 dev enp0s3 - 192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.151 metric 100 - ``` - - - ## Controllo della connettività di rete - - Negli esempi precedenti abbiamo effettuato alcuni test. La cosa migliore da fare è iniziare con il ping del gateway predefinito. Questo dovrebbe funzionare sempre: - - ```bash - ping -c3 192.168.1.1 - PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. - 64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.437 ms - 64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.879 ms - 64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.633 ms - ``` - - Quindi, verificare se il routing LAN funziona completamente eseguendo il ping di un host sulla rete locale: - - ```bash - ping -c3 192.168.1.10 - PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data. - 64 bytes from 192.168.1.10: icmp_seq=2 ttl=255 time=0.684 ms - 64 bytes from 192.168.1.10: icmp_seq=3 ttl=255 time=0.676 ms - ``` - - Eseguire un test per assicurarsi di poter vedere un host raggiungibile esterno alla rete. Per il test che segue, utilizziamo il server DNS aperto di Google: - - ```bash - ping -c3 8.8.8.8 - PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. - 64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=19.8 ms - 64 bytes from 8.8.8.8: icmp_seq=2 ttl=119 time=20.2 ms - 64 bytes from 8.8.8.8: icmp_seq=3 ttl=119 time=20.1 ms - ``` - - Il test finale consiste nel verificare che la risoluzione DNS funzioni. Per questo esempio, utilizziamo google.com: - - ```bash - ping -c3 google.com - PING google.com (172.217.4.46) 56(84) bytes of data. - 64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=1 ttl=119 time=14.5 ms - 64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=2 ttl=119 time=15.1 ms - 64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=3 ttl=119 time=14.6 ms - ``` - - Se la macchina dispone di diverse interfacce e si desidera eseguire il test da una particolare interfaccia, è sufficiente utilizzare l'opzione `-I` con ping: - - ```bash - ping -I enp0s3 -c3 192.168.1.10 - ``` - - - ## Conclusione - - In Rocky Linux 9 sono state apportate molte modifiche allo stack di rete. Tra queste c'è la priorità dei `keyfile` rispetto ai file `ifcfg` usati in precedenza e presenti in Network-Scripts. Poiché la direzione del cambiamento nelle future versioni di Rocky Linux prevede la deprecazione e la rimozione degli script di rete, è meglio concentrare l'attenzione su metodologie come `nmcli`, `nmtui` e, in alcuni casi, `ip`, per la configurazione della rete. - -=== "8" - - ## Configurazione della rete - Rocky Linux 8 + Esistono diversi meccanismi attraverso i quali i sistemi ottengono le informazioni relative alla configurazione IP. + I due metodi più comuni sono: lo schema di **configurazione IP statica** e lo schema di **configurazione IP dinamica**. - ## Utilizzo del servizio NetworkManager + Lo schema di configurazione IP statico è molto diffuso nei sistemi o nelle reti di tipo server. - A livello utente, lo stack di rete è gestito da *NetworkManager*. Questo strumento viene eseguito come servizio ed è possibile verificarne lo stato con il seguente comando: - - ```bash - systemctl status NetworkManager - ``` - - - ### File di configurazione - - NetworkManager applica semplicemente una configurazione letta dai file presenti in `/etc/sysconfig/network-scripts/ifcfg-`. - Ogni interfaccia di rete ha il suo file di configurazione. Di seguito è riportato un esempio di configurazione predefinita di un server: - - ```bash - TYPE=Ethernet - PROXY_METHOD=none - BROWSER_ONLY=no - BOOTPROTO=none - DEFROUTE=yes - IPV4_FAILURE_FATAL=no - IPV6INIT=no - NAME=enp1s0 - UUID=74c5ccee-c1f4-4f45-883f-fc4f765a8477 - DEVICE=enp1s0 - ONBOOT=yes - IPADDR=10.0.0.10 - PREFIX=24 - GATEWAY=10.0.0.1 - DNS1=10.0.0.1 - DNS2=1.1.1.1 - IPV6_DISABLED=yes - ``` - - - Il nome dell'interfaccia è **enp1s0**, quindi il nome del file sarà `/etc/sysconfig/network-scripts/ifcfg-enp1s0`. - - !!! tip "**Consigli:**" - - Esistono alcuni modi o meccanismi per assegnare ai sistemi le informazioni di configurazione IP. I due metodi più comuni sono: lo schema di **configurazione IP statica** e lo schema di **configurazione IP dinamica**. - - Lo schema di configurazione IP statico è molto diffuso nei sistemi o nelle reti di tipo server. - - L'approccio IP dinamico è molto diffuso nelle reti domestiche e di ufficio o nei sistemi di classe workstation e desktop. Lo schema dinamico di solito richiede *qualcosa* di aggiuntivo disponibile localmente che possa fornire informazioni di configurazione IP adeguate alle workstation e ai desktop che ne fanno richiesta. Questo *qualcosa* si chiama Dynamic Host Configuration Protocol (DHCP). - - Gli utenti di casa o dell'ufficio spesso non devono preoccuparsi del DHCP. Questo perché qualcosa di diverso se ne occupa automaticamente in background. L'utente finale deve connettersi fisicamente o in modalità wireless alla rete giusta (e naturalmente assicurarsi che i suoi sistemi siano accesi)! - - ### Indirizzo IP - - Nel precedente elenco `/etc/sysconfig/network-scripts/ifcfg-enp1s0`, vediamo che il valore del parametro o chiave `BOOTPROTO` è impostato su `none`. Il sistema configurato è impostato su uno schema di indirizzi IP statici. - - Se invece si vuole configurare il sistema per utilizzare uno schema di indirizzi IP dinamici, si dovrà cambiare il valore del parametro `BOOTPROTO` da `none` a `dhcp` e rimuovere anche le linee `IPADDR`, `PREFIX` e `GATEWAY`. Questo si rende necessario dal momento che tutte le informazioni saranno ottenute automaticamente da qualsiasi server DHCP disponibile. - - Per configurare l'attribuzione di un indirizzo IP statico, impostare quanto segue: - - * IPADDR: l'indirizzo IP da assegnare all'interfaccia - * PREFIX: la maschera di sottorete in [CIDR notation](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing#CIDR_notation) - * GATEWAY: il gateway predefinito - - Il parametro `ONBOOT` impostato su `yes` indica che questa connessione sarà attivata durante l'avvio. - - - ### Risoluzione DNS - - Per ottenere una risoluzione corretta dei nomi, è necessario impostare i seguenti parametri: - - * DNS1: indirizzo IP del nameserver principale - * DNS2: l'indirizzo IP del nameserver secondario - - - ### Controllo della configurazione - - È possibile verificare che la configurazione sia stata applicata correttamente con il seguente comando `nmcli`: - - ```bash - [user@server ~]$ sudo nmcli device show enp1s0 - ``` - - che dovrebbe fornire il seguente risultato: - - ```conf - GENERAL.DEVICE: enp1s0 - GENERAL.TYPE: ethernet - GENERAL.HWADDR: 6E:86:C0:4E:15:DB - GENERAL.MTU: 1500 - GENERAL.STATE: 100 (connecté) - GENERAL.CONNECTION: enp1s0 - GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1 - WIRED-PROPERTIES.CARRIER: marche - IP4.ADDRESS[1]: 10.0.0.10/24 - IP4.GATEWAY: 10.0.0.1 - IP4.ROUTE[1]: dst = 10.0.0.0/24, nh = 0.0.0.0, mt = 100 - IP4.ROUTE[2]: dst = 0.0.0.0/0, nh = 10.0.0.1, mt = 100 - IP4.DNS[1]: 10.0.0.1 - IP4.DNS[2]: 1.1.1.1 - IP6.GATEWAY: -- - ``` - - - ### CLI - - La funzione principale di NetworkManager è la gestione delle "connessioni", che mappano un dispositivo fisico a più componenti di rete logici, come l'indirizzo IP e le impostazioni DNS. Per visualizzare le connessioni esistenti gestite da NetworkManager, è possibile eseguire `nmcli connection show`. - - ```bash - [user@server ~]$ sudo nmcli connection show - NAME UUID TYPE DEVICE - enp1s0 625a8aef-175d-4692-934c-2c4a85f11b8c ethernet enp1s0 - ``` - - Dall'output precedente, possiamo determinare che NetworkManager gestisce una connessione (`NAME`) chiamata `enp1s0` che si riferisce al dispositivo fisico (`DEVICE`) `enp1s0`. - - !!! tip "Nome della connessione" - - In questo esempio, la connessione e il dispositivo condividono lo stesso nome, ma ciò potrebbe non essere sempre vero. È comune vedere una connessione chiamata `System eth0` che mappa un dispositivo chiamato `eth0`, ad esempio. - - Ora che conosciamo il nome della nostra connessione, possiamo visualizzarne le impostazioni. A tale scopo, utilizzare il comando `nmcli connection show [connection]`, che stamperà tutte le impostazioni registrate da NetworkManager per la connessione in questione. - - ```bash - [user@server ~]$ sudo nmcli connection show enp1s0 - ... - ipv4.method: auto - ipv4.dns: -- - ipv4.dns-search: -- - ipv4.dns-options: -- - ipv4.dns-priority: 0 - ipv4.addresses: -- - ipv4.gateway: -- - ipv4.routes: -- - ipv4.route-metric: -1 - ipv4.route-table: 0 (unspec) - ipv4.routing-rules: -- - ipv4.ignore-auto-routes: no - ipv4.ignore-auto-dns: no - ipv4.dhcp-client-id: -- - ipv4.dhcp-iaid: -- - ipv4.dhcp-timeout: 0 (default) - ipv4.dhcp-send-hostname: yes - ... - ``` + L'approccio IP dinamico è molto diffuso nelle reti domestiche e di ufficio o nei sistemi di classe workstation e desktop in ambiente aziendale. Lo schema dinamico richiede solitamente *qualcosa* in più che sia disponibile localmente e che possa fornire informazioni adeguate sulla configurazione IP alle workstation e ai desktop che ne fanno richiesta. Questo *qualcosa* si chiama Dynamic Host Configuration Protocol (DHCP). In una rete domestica, e anche nella maggior parte delle reti aziendali, questo servizio è fornito da un server DHCP configurato allo scopo. Può trattarsi di un server separato o di una parte della configurazione del router. - Nella colonna di sinistra si trova il nome dell'impostazione e in quella di destra il valore. +## Indirizzo IP - Ad esempio, possiamo vedere che il metodo `ipv4.method` qui è attualmente impostato su `auto`. Ci sono molti valori consentiti per l'impostazione `ipv4.method`, ma i due principali che molto probabilmente si vedranno sono: +Nella sezione precedente, la configurazione visualizzata per l'interfaccia `enp0s3` viene generata dal file `.ini` `/etc/NetworkManager/system-connections/enp0s3.nmconnection`. Ciò dimostra che IP4.ADDRESS[1] è configurato in modo statico, anziché dinamico con DHCP. Se si desidera riportare questa interfaccia a un indirizzo allocato dinamicamente, il modo più semplice è utilizzare il comando `nmtui`. - - `auto`: per l'interfaccia viene utilizzato il metodo automatico appropriato (DHCP, PPP, ecc.) e la maggior parte delle altre proprietà possono essere lasciate non impostate. - - `manual`: viene utilizzato un indirizzamento IP statico e almeno un indirizzo IP deve essere indicato nella proprietà 'addresses'. + 1. Per prima cosa, eseguire il comando `nmtui` a riga di comando, che dovrebbe mostrare quanto segue - Se invece si desidera configurare il sistema in modo che utilizzi uno schema di indirizzi IP statici, è necessario modificare il valore di `ipv4.method` in `manual` e specificare anche `ipv4.gateway` e `ipv4.addresses`. + ![nmtui](images/nmtui_first.png) - Per modificare un'impostazione, è possibile utilizzare il comando nmcli nmcli connection modify \[connection\] \[setting\] [value]. + 2. È già presente la selezione "Modifica una connessione", quindi premere il tasto ++tab++ in modo da evidenziare "OK" e premete ++enter++ - ```bash - # set 10.0.0.10 as the static ipv4 address - [user@server ~]$ sudo nmcli connection modify enp1s0 ipv4.addresses 10.0.0.10 + 3. Verrà visualizzata una schermata che mostra le connessioni Ethernet della macchina e consentirà di sceglierne una. In questo caso, ce n'è *SOLO* uno, quindi è già evidenziato. È necessario premere il tasto ++tab++ fino a quando non viene evidenziata la voce “Modifica”, quindi premere ++enter++. - # set 10.0.0.1 as the ipv4 gateway - [user@server ~]$ sudo nmcli connection modify enp1s0 ipv4.gateway 10.0.0.1 + ![nmtui_edit](images/nmtui_edit.png) - # change ipv4 method to use static assignments (set in the previous two commands) - [user@server ~]$ sudo nmcli connection modify enp1s0 ipv4.method manual - ``` + 4. Una volta fatto questo, ci troveremo nella schermata che mostra la nostra configurazione attuale. È necessario passare da "Manuale" ad "Automatico", quindi premere più volte il tasto ++tab++ fino ad evidenziare "Manuale" e premere ++enter++. - !!! tip "Quando viene aggiornata la connessione?" + ![nmtui_manual](images/nmtui_manual.png) - `nmcli connection edit` non modificherà la configurazione *runtime*, ma aggiornerà i file di configurazione `/etc/sysconfig/network-scripts` con i valori appropriati in base a ciò che si è detto a `nmcli` di configurare. + 5. La freccia verso l'alto fino a evidenziare "Automatico", quindi premere ++enter++ - Per configurare i server DNS con NetworkManager tramite la CLI, è possibile modificare l'impostazione `ipv4.dns`. + ![nmtui_automatic](images/nmtui_automatic.png) - ```bash - # set 10.0.0.1 and 1.1.1.1 as the primary and secondary DNS servers - [user@server ~]$ sudo nmcli connection modify enp1s0 ipv4.dns '10.0.0.1 1.1.1.1' - ``` + 6. Una volta impostata l'interfaccia su “Automatico”, è necessario rimuovere l'IP assegnato staticamente. Premere il tasto ++tab++ fino a quando non viene evidenziata la voce “Rimuovi” accanto all'indirizzo IP, quindi premere ++Invio++. + ![nmtui_remove](images/nmtui_remove.png) - ### Applicare la configurazione + 7. Infine, premete più volte il tasto ++tab++ finché non arrivate in fondo alla schermata `nmtui` e non viene evidenziato "OK" e premete ++enter++ - Per applicare la configurazione di rete, si può usare il comando `nmcli connection up [connection]`. +È possibile disattivare e riattivare l'interfaccia anche con `nmtui`, ma facciamo questo con `nmcli`. In questo modo è possibile concatenare la disattivazione dell'interfaccia e la sua riattivazione in modo che l'interfaccia non rimanga mai inattiva a lungo: - ```bash - [user@server ~]$ sudo nmcli connection up enp1s0 - Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/2) - ``` +``` +nmcli con down enp0s3 && nmcli con up enp0s3 +``` - Per ottenere lo stato della connessione, è sufficiente utilizzare: +Lo si consideri equivalente al vecchio `ifdown enp0s3 && ifup enp0s3` utilizzato nelle versioni precedenti del sistema operativo. - ```bash - [user@server ~]$ sudo nmcli connection show - NAME UUID TYPE DEVICE - enp1s0 625a8aef-175d-4692-934c-2c4a85f11b8c ethernet enp1s0 - ``` +Per verificare che funzioni, procedere e controllare utilizzando il comando `ip addr` o il comando `nmcli device show enp0s3` utilizzato in precedenza. - Puoi anche usare i comandi `ifup` e `ifdown` per portare l'interfaccia su e giù (sono semplici wrapper intorno a `nmcli`): +``` +ip addr +``` - ```bash - [user@server ~]$ sudo ifup enp1s0 - [user@server ~]$ sudo ifdown enp1s0 - ``` +Se l'operazione ha avuto esito positivo, si dovrebbe ora vedere che l'IP statico è stato rimosso e che è stato aggiunto un indirizzo assegnato dinamicamente, simile a questo: +```bash +2: enp0s3: mtu 1500 qdisc fq_codel state UP group default qlen 1000 +link/ether 08:00:27:ba:ce:88 brd ff:ff:ff:ff:ff:ff +inet 192.168.1.137/24 brd 192.168.1.255 scope global dynamic noprefixroute enp0s3 + valid_lft 6342sec preferred_lft 6342sec +inet6 fe80::a00:27ff:feba:ce88/64 scope link noprefixroute + valid_lft forever preferred_lft forever +``` - ## Usare l'utilità ip +### Modificare l'indirizzo IP con `nmcli` - Il comando `ip` (fornito dal pacchetto *iproute2*) è un potente strumento per ottenere informazioni e configurare la rete di un sistema Linux moderno come Rocky Linux. +L'uso di `nmtui` è comodo, ma se si vuole solo riconfigurare rapidamente l'interfaccia di rete senza dover passare tra una schermata e l'altra, probabilmente è meglio usare `nmcli` da solo. Si esamini l'esempio precedente di un IP assegnato staticamente e i passi per riconfigurare l'interfaccia in DHCP usando solo `nmcli`. - In questo esempio, assumeremo i seguenti parametri: +Prima di iniziare, è necessario sapere che per riconfigurare l'interfaccia in DHCP è necessario: - - nome dell'interfaccia: ens19 - - indirizzo ip: 192.168.20.10 - - maschera di sottorete: 24 - - gateway: 192.168.20.254 +- Rimuovere il gateway IPv4 +- Rimuovere l'indirizzo IPv4 che si è assegnato in modo statico +- Cambiare il metodo IPv4 in automatico +- Disattivare e riattivare l'interfaccia +Si noti anche che non si stanno usando esempi che dicono di usare -ipv4.address ecc. Questi non cambiano completamente l'interfaccia. Per farlo, è necessario impostare ipv4.address e ipv4.gateway su una stringa vuota. Anche in questo caso, per risparmiare il più possibile tempo con questi comandi, li uniremo tutti in un'unica riga: - ### Ottenere informazioni di carattere generale +```bash +nmcli con mod enp0s3 ipv4.gateway '' && nmcli con mod enp0s3 ipv4.address '' && nmcli con mod enp0s3 ipv4.method auto && nmcli con down enp0s3 && nmcli con up enp0s3 +``` - Per vedere lo stato dettagliato di tutte le interfacce, usare +Eseguendo nuovamente il comando `ip addr` si otterranno gli stessi risultati di quando si sono eseguite le modifiche con `nmtui`. Ovviamente si potrebbe fare tutto anche al contrario (cambiando l'indirizzo DHCP con uno statico). Per farlo, si eseguono i comandi al contrario, iniziando con il cambiare `ipv4.method` in manual, impostando `ipv4.gateway` e quindi impostando `ipv4.address`. Poiché in tutti questi esempi si stà riconfigurando completamente l'interfaccia e non aggiungendo o sottraendo valori ad essa, non si utilizzeranno gli esempi che parlano dell'uso di `+ipv4.method`,`+ipv4.gateway`, e `+ipv4.address`. Se si usassero questi comandi al posto di quelli usati sopra, si otterrebbe un'interfaccia con *sia* un indirizzo assegnato da DHCP che uno assegnato staticamente. Detto questo, a volte può essere molto utile. Se si dispone di un servizio Web in ascolto su un IP e di un server `sftp` in ascolto su un altro IP. Avere un metodo di assegnazione di IP multipli a un'interfaccia è abbastanza utile. - ```bash - ip a - ``` +## Risoluzione del DNS - !!! hint "**"Suggerimenti professionali:**" +È possibile impostare i server DNS con `nmtui` o `nmcli`. Sebbene l'interfaccia `nmtui` sia facile da navigare e molto più intuitiva, il processo è molto più lento. L'operazione con `nmcli` è molto più veloce. Nel caso dell'indirizzo assegnato dal DHCP, solitamente non è necessario impostare i server DNS poiché questi vengono normalmente inoltrati dal server DHCP. Detto questo, *è possibile* aggiungere staticamente i server DNS a un'interfaccia DHCP. Nel caso di un'interfaccia assegnata staticamente, sarà *NECESSARIO* fare questa operazione, poiché dovrà sapere come ottenere la risoluzione DNS e non avrà un metodo assegnato automaticamente. - - usare il flag `-c` per ottenere un output colorato più leggibile: `ip -c a`. - - `ip` accetta l'abbreviazione quindi `ip a`, `ip addr` e `ip address` sono equivalenti +Poiché l'esempio migliore per tutto ciò è un IP assegnato staticamente, torniamo all'indirizzo assegnato staticamente originale nell'interfaccia di esempio (enp0s3). Prima di modificare i valori DNS, è necessario verificare quali sono quelli attuali. Per ottenere una risoluzione corretta dei nomi, rimuovere i server DNS già impostati e aggiungerne di diversi. Attualmente `ipv4.dns` è `8.8.8.8,8.8.4.4,192.168.1.1`. In questo caso, non è necessario impostare ipv4.dns su una stringa vuota. È possibile utilizzare il seguente comando per sostituire i valori: +```bash +nmcli con mod enp0s3 ipv4.dns '208.67.222.222,208.67.220.220,192.168.1.1' +``` - ### Portare l'interfaccia su o giù +Eseguendo `nmcli con show enp0s3 | grep ipv4.dns` si dovrebbe vedere che sono stati modificati correttamente i server DNS. Per attivare il tutto, chiudere e riaprire l'interfaccia in modo che le modifiche siano attive: - Per portare l'interfaccia *ens19* su, basta usare `ip link set ens19 up` e per portarla giù, usare `ip link set ens19 down`. +```bash +nmcli con down enp0s3 && nmcli con up enp0s3 +``` +Per verificare che *funzioni* la risoluzione dei nomi, provare a eseguire il ping di un host noto. Prendiamo come esempio google.com: - ### Assegnare all'interfaccia un indirizzo statico +```bash +ping google.com +PING google.com (172.217.4.46) 56(84) bytes of data. +64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=1 ttl=119 time=14.5 ms +64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=2 ttl=119 time=14.6 ms +64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=3 ttl=119 time=14.4 ms +^C +``` - Il comando da utilizzare è del tipo: +## Utilizzo dell'utility `ip` - ```bash - ip addr add dev - ``` +Il comando `ip` (fornito dal pacchetto *iproute2*) è un potente strumento per ottenere informazioni e configurare la rete di un sistema Linux moderno come Rocky Linux. - Per assegnare i parametri dell'esempio precedente, utilizzeremo: +In questo esempio, si assumeranno i seguenti parametri: - ```bash - ip a add 192.168.20.10/24 dev ens19 - ``` +- nome dell'interfaccia: enp0s3 +- indirizzo ip: 192.168.1.151 +- subnet mask: 24 +- gateway: 192.168.1.1 - Quindi, controllare il risultato con: +### Ottenere informazioni di carattere generale - ```bash - ip a show dev ens19 - ``` +Per vedere lo stato dettagliato di tutte le interfacce, usare - verrà visualizzato: +```bash +ip a +``` - ```bash - 3: ens19: mtu 1500 qdisc fq_codel state UP group default qlen 1000 - link/ether 4a:f2:f5:b6:aa:9f brd ff:ff:ff:ff:ff:ff - inet 192.168.20.10/24 scope global ens19 - valid_lft forever preferred_lft forever - ``` +!!! hint "**"Suggerimenti professionali:**" - La nostra interfaccia è attiva e configurata, ma manca ancora qualcosa! + * usare il flag `-c` per ottenere un output colorato più leggibile: `ip -c a`. + * `ip` accetta l'abbreviazione, quindi `ip a`, `ip addr` e `ip address` sono equivalenti +### Porta l'interfaccia su o giù - ### Usare l'utilità ifcfg +!!! note "Nota" - Per aggiungere all'interfaccia *ens19* il nostro nuovo indirizzo IP di esempio, utilizzare il seguente comando: + Sebbene sia ancora possibile utilizzare questo metodo per attivare e disattivare l'interfaccia in Rocky Linux 10, il comando reagisce in modo molto più lento rispetto al semplice utilizzo del comando `nmcli`. - ```bash - ifcfg ens19 add 192.168.20.10/24 - ``` +Per disattivare e riattivare *enp0s3*, è sufficiente utilizzare: - Per rimuovere l'indirizzo: +```bash +ip link set enp0s3 down && ip link set enp0s3 up +``` - ```bash - ifcfg ens19 del 192.168.20.10/24 - ``` +### Assegnare all'interfaccia un indirizzo statico - Per disattivare completamente l'indirizzo IP su questa interfaccia: +Attualmente, l'interfaccia enp0s3 ha un indirizzo IP pari a 192.168.1.151. Per passare a 192.168.1.152, si dovrebbe rimuovere il vecchio IP con - ```bash - ifcfg ens19 stop - ``` +```bash +ip addr delete 192.168.1.151/24 dev enp0s3 && ip addr add 192.168.1.152/24 dev enp0s3 +``` - *Si noti che questa operazione non comporta la disattivazione dell'interfaccia, ma semplicemente la disassegnazione di tutti gli indirizzi IP dall'interfaccia.* +Se si desidera assegnare un secondo indirizzo IP all'interfaccia invece di rimuovere l'indirizzo 192.168.1.151, è sufficiente aggiungere il secondo indirizzo con: +```bash +ip addr add 192.168.1.152/24 dev enp0s3 +``` - ### Configurazione del gateway +È possibile verificare l'indirizzo IP aggiunto con: - Ora che l'interfaccia ha un indirizzo, dobbiamo impostare la sua rotta predefinita: +```bash +ip a show dev enp0s3 +``` - ```bash - ip route add default via 192.168.20.254 dev ens19 - ``` +Questo produrrà il seguente risultato: - La tabella di routing del kernel può essere visualizzata con +```bash +2: enp0s3: mtu 1500 qdisc fq_codel state UP group default qlen 1000 +link/ether 08:00:27:ba:ce:88 brd ff:ff:ff:ff:ff:ff +inet 192.168.1.151/24 brd 192.168.1.255 scope global noprefixroute enp0s3 + valid_lft forever preferred_lft forever +inet 192.168.1.152/24 scope global secondary enp0s3 + valid_lft forever preferred_lft forever +inet6 fe80::a00:27ff:feba:ce88/64 scope link noprefixroute + valid_lft forever preferred_lft forever +``` - ```bash - ip route - ``` +Sebbene l'utilizzo dell'utilità `ip` per disattivare e riattivare l'interfaccia sia molto più lento rispetto a `nmcli`, `ip` presenta un netto vantaggio quando si impostano indirizzi IP nuovi o aggiuntivi, poiché l'operazione avviene in tempo reale, senza disattivare e riattivare l'interfaccia. - o `ip r` in breve. +### Configurazione del gateway +Ora che l'interfaccia ha un indirizzo, si deve impostare il suo percorso predefinito. E' possibile farlo con: - ## Controllo della connettività di rete +```bash +ip route add default via 192.168.1.1 dev enp0s3 +``` - A questo punto, l'interfaccia di rete dovrebbe essere attiva e configurata correttamente. Esistono diversi modi per verificare la connettività. +È possibile visualizzare la tabella di routing del kernel con: - Facendo *il ping* un altro indirizzo IP della stessa rete (useremo `192.168.20.42` come esempio): +```bash +ip route +``` - ```bash - ping -c3 192.168.20.42 - ``` +o `ip r` in breve. - Questo comando emette 3 *ping* (noti come richieste ICMP) e attende una risposta. Se tutto è andato bene, si dovrebbe ottenere questo risultato: +Il risultato dovrebbe essere simile al seguente: - ```bash - PING 192.168.20.42 (192.168.20.42) 56(84) bytes of data. - 64 bytes from 192.168.20.42: icmp_seq=1 ttl=64 time=1.07 ms - 64 bytes from 192.168.20.42: icmp_seq=2 ttl=64 time=0.915 ms - 64 bytes from 192.168.20.42: icmp_seq=3 ttl=64 time=0.850 ms +```bash +default via 192.168.1.1 dev enp0s3 +192.168.1.0/24 dev enp0s3 proto kernel scope link src 192.168.1.151 metric 100 +``` - --- 192.168.20.42 ping statistics --- - 3 packets transmitted, 3 received, 0% packet loss, time 5ms - rtt min/avg/max/mdev = 0.850/0.946/1.074/0.097 ms - ``` +## Controllo della connettività di rete - Quindi, per assicurarsi che la configurazione del routing sia corretta, provare a *puntare* un host esterno, come questo noto resolver DNS pubblico: +Nel corso degli esempi riportati in questo documento si sono effettuati alcuni test. La cosa migliore da fare è iniziare con il ping del gateway predefinito. Questo dovrebbe funzionare sempre: - ```bash - ping -c3 8.8.8.8 - ``` +```bash +ping -c3 192.168.1.1 +PING 192.168.1.1 (192.168.1.1) 56(84) bytes of data. +64 bytes from 192.168.1.1: icmp_seq=1 ttl=64 time=0.437 ms +64 bytes from 192.168.1.1: icmp_seq=2 ttl=64 time=0.879 ms +64 bytes from 192.168.1.1: icmp_seq=3 ttl=64 time=0.633 ms +``` - Se la macchina dispone di diverse interfacce di rete e si desidera effettuare una richiesta ICMP attraverso un'interfaccia specifica, è possibile utilizzare la flag `-I`: +Quindi, verificare se il routing LAN funziona completamente eseguendo il ping di un host sulla rete locale: - ```bash - ping -I ens19 -c3 192.168.20.42 - ``` +```bash +ping -c3 192.168.1.10 +PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data. +64 bytes from 192.168.1.10: icmp_seq=2 ttl=255 time=0.684 ms +64 bytes from 192.168.1.10: icmp_seq=3 ttl=255 time=0.676 ms +``` - Ora è il momento di verificare che la risoluzione DNS funzioni correttamente. Come promemoria, la risoluzione DNS è un meccanismo utilizzato per convertire i nomi delle macchine a misura d'uomo nei loro indirizzi IP e viceversa (reverse DNS). +Esegui un test per assicurarsi di poter vedere un host raggiungibile esterno alla rete locale. Per questo test, l'esempio utilizza il server DNS aperto di Google: - Se il file `/etc/resolv.conf` indica un server DNS raggiungibile, dovrebbe funzionare quanto segue: +```bash +ping -c3 8.8.8.8 +PING 8.8.8.8 (8.8.8.8) 56(84) bytes of data. +64 bytes from 8.8.8.8: icmp_seq=1 ttl=119 time=19.8 ms +64 bytes from 8.8.8.8: icmp_seq=2 ttl=119 time=20.2 ms +64 bytes from 8.8.8.8: icmp_seq=3 ttl=119 time=20.1 ms +``` - ```bash - host rockylinux.org - ``` +Il test finale consiste nel verificare che la risoluzione DNS funzioni. Per questo esempio, utilizzando google.com: - Il risultato dovrebbe essere: +```bash +ping -c3 google.com +PING google.com (172.217.4.46) 56(84) bytes of data. +64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=1 ttl=119 time=14.5 ms +64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=2 ttl=119 time=15.1 ms +64 bytes from lga15s46-in-f14.1e100.net (172.217.4.46): icmp_seq=3 ttl=119 time=14.6 ms +``` - ```bash - rockylinux.org has address 76.76.21.21 - ``` +Se sul computer sono presenti diverse interfacce e si desidera eseguire il test da un'interfaccia specifica, utilizzare l'opzione `-I` con ping: +```bash +ping -I enp0s3 -c3 192.168.1.10 +``` - ## Conclusione +## Conclusione - Rocky Linux 8 dispone degli strumenti per configurare la rete dalla riga di comando. Questo documento dovrebbe consentirvi di utilizzare rapidamente questi strumenti. +Ci sono molte modifiche allo stack di rete in Rocky Linux 10. Tra queste vi è la rimozione di Network-Scripts e, con essa, la possibilità di utilizzare `ifcfg`. Rocky Linux 10 utilizza invece `keyfiles`. Questo documento si concentra sull'uso di Network Manager e degli strumenti sottostanti, `nmcli` e `nmtui`. Inoltre, questo documento illustra il comando `ip` insieme ad alcuni esempi del suo utilizzo per la configurazione di rete. diff --git a/docs/guides/network/glances_network_monitoring.it.md b/docs/guides/network/glances_network_monitoring.it.md index cc24cd438b..48f104ca1a 100644 --- a/docs/guides/network/glances_network_monitoring.it.md +++ b/docs/guides/network/glances_network_monitoring.it.md @@ -8,7 +8,13 @@ tags: - network --- -# Introduzione +!!! warning Avviso “Temporaneamente in Sospenso” + +``` +`glances` è attualmente assente dall'EPEL. Probabilmente verrà compilato. Il team Docs continuerà a testarne la disponibilità nell'EPEL non appena possibile. Per ora, l'unica opzione è compilare `glances` dal sorgente, ma le istruzioni per farlo non sono disponibili qui. +``` + +## Introduzione Questa guida vi mostrerà come impostare un **monitoraggio della rete o delle risorse** decente, con il minimo sforzo. Dal punto di vista dell'autore, Glances è simile a `vim` nel mondo degli strumenti di monitoraggio.