Vai al contenuto

Impostazioni cookie

Scelga per ogni tipo quali cookie consente. Può modificare la sua scelta in qualsiasi momento tramite Impostazioni cookie in fondo a ogni pagina. Informativa sulla privacy

Necessari

Sempre attivi

Servono per accedere, conservare il carrello e ricordare le sue scelte. Sono sempre attivi.

Quali cookie?
  • weboke_sessie, weboke_klant, weboke_remember: la sua sessione e la permanenza dell'accesso
  • weboke_basket: il suo carrello
  • wkBtwIncl: visualizzazione dei prezzi con o senza IVA
  • wok_cookies: la sua scelta sui cookie, 12 mesi

Misurano quale annuncio porta a una visita o a un ordine, così non paghiamo annunci che non funzionano.

Quali cookie?
  • Google Ads tramite Google Tag Manager (_gcl_au, _gcl_aw), fino a 90 giorni
  • OpenAI Ads, annunci in ChatGPT
  • wok_aff: tramite quale partner è arrivato da noi (programma di affiliazione), 60 giorni

4,6

Paese e lingua

Ogni paese ha il suo sito, con i prezzi e l'IVA di quel paese.

Vedi

Gestione dei pacchetti con apt

Modulo 4: Software e aggiornamenti · Tempo di lettura: 10 minuti

Obiettivo della lezione: Dopo questa lezione Lei sarà in grado di installare, aggiornare e rimuovere software con apt, di vedere da dove proviene un pacchetto e di riconoscere quali aggiornamenti sono aggiornamenti di sicurezza.

Concetti chiave: pacchetto, sorgente dei pacchetti (repository), sources.list, file .sources (deb822), signed-by, apt update, apt upgrade, apt full-upgrade, remove, purge, autoremove, apt-cache policy, sorgente di sicurezza, dnf

Perché un gestore di pacchetti?

Su Windows si scarica un programma di installazione da un sito web. Su un server Linux non lo si fa quasi mai. Il software arriva sotto forma di pacchetto da una sorgente dei pacchetti (repository): un server della distribuzione con migliaia di programmi, tutti compilati e testati per la Sua versione di Debian o Ubuntu. Il programma che scarica, installa e aggiorna questi pacchetti si chiama gestore di pacchetti. Su Debian e Ubuntu è apt (che si appoggia a dpkg), su AlmaLinux e Rocky Linux è dnf.

Questo offre tre grandi vantaggi:

  1. Un solo comando aggiorna tutto. Il server web, il server SSH, le librerie e il kernel provengono dalla stessa sorgente. Non deve controllare sul sito di ogni programma se è uscita una nuova versione.
  2. La provenienza è verificata. Ogni sorgente dei pacchetti è firmata con una chiave. apt rifiuta i pacchetti la cui firma non è corretta.
  3. Le dipendenze vengono gestite. Se nginx ha bisogno di una libreria, apt la installa automaticamente e in seguito la rimuove di nuovo.

Le sorgenti dei pacchetti: da dove arriva il software?

Le sorgenti usate da apt sono indicate in /etc/apt/. Per molto tempo si trattava di un unico file sources.list con righe come:

deb http://deb.debian.org/debian bookworm main

Ubuntu 24.04 e versioni successive, le immagini cloud di Debian e un numero crescente di nuove installazioni usano il più recente formato deb822: file separati con estensione .sources in /etc/apt/sources.list.d/. Un vecchio sources.list si può convertire con sudo apt modernize-sources (apt 3, Debian 13). Ad esempio su Debian 13:

anna@web1:~$ cat /etc/apt/sources.list.d/debian.sources
Types: deb
URIs: http://deb.debian.org/debian
Suites: trixie trixie-updates
Components: main
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Types: deb
URIs: http://deb.debian.org/debian-security
Suites: trixie-security
Components: main
Signed-By: /usr/share/keyrings/debian-archive-keyring.gpg

Si legge così: la suite è la versione (trixie è Debian 13; noble è Ubuntu 24.04), il component è una parte della sorgente (main su Debian; main, universe, restricted e multiverse su Ubuntu) e Signed-By indica con quale chiave deve essere firmata la sorgente. Quest'ultimo punto è importante: una chiave appartiene a una sola sorgente, non a tutte contemporaneamente. Se in seguito aggiunge una sorgente di un produttore (Docker, Caddy, PostgreSQL), questa riceve un proprio file di chiave e una propria riga Signed-By (lezione 9.2).

La sorgente con -security nel nome è la sorgente di sicurezza. Da lì arrivano gli aggiornamenti di sicurezza, di solito lo stesso giorno in cui una vulnerabilità diventa nota. Su Ubuntu questa suite si chiama noble-security (o con il nome della Sua versione).

Se usa ancora il vecchio sources.list, tutto continua a funzionare normalmente. Eviti però di indicare la stessa sorgente in entrambi i formati, altrimenti apt segnala righe duplicate.

update, upgrade e full-upgrade

La differenza tra questi tre concetti è la prima trappola per chi inizia.

ComandoChe cosa fa
apt updateScarica l'elenco dei pacchetti e delle versioni presenti nelle sorgenti. Non installa nulla.
apt upgradeAggiorna i pacchetti installati alla versione più recente presente in quell'elenco. Non rimuove mai nulla. Un aggiornamento che richiederebbe la rimozione di un altro pacchetto viene saltato.
apt full-upgradeFa lo stesso, ma può anche rimuovere pacchetti o installarne di nuovi se necessario. Serve per un upgrade di release (lezione 4.3) e talvolta per un nuovo kernel.

Quindi sempre prima update, poi upgrade:

anna@web1:~$ sudo apt update
Hit:1 http://deb.debian.org/debian trixie InRelease
Get:2 http://deb.debian.org/debian-security trixie-security InRelease [43.4 kB]
...
3 packages can be upgraded. Run 'apt list --upgradable' to see them.
anna@web1:~$ apt list --upgradable
Listing... Done
libssl3t64/trixie-security 3.5.1-1+deb13u1 amd64 [upgradable from: 3.5.1-1]
openssh-server/trixie-security 1:10.0p1-7+deb13u1 amd64 [upgradable from: 1:10.0p1-7]
tzdata/trixie-updates 2026b-0+deb13u1 all [upgradable from: 2026a-0+deb13u1]

(I numeri di versione qui sopra sono un esempio.) Dopo il nome è indicata la suite da cui proviene la nuova versione. Tutto ciò che riporta -security è un aggiornamento di sicurezza: va installato il prima possibile. -updates sono altri aggiornamenti stabili, come nuovi dati sui fusi orari.

Poi:

anna@web1:~$ sudo apt upgrade

apt mostra che cosa cambia e chiede conferma. Legga quell'elenco. Se compare "The following packages will be REMOVED" (i pacchetti seguenti verranno rimossi), sta succedendo qualcosa di particolare ed è bene capire prima il perché.

Installare, rimuovere e fare pulizia

anna@web1:~$ sudo apt install nginx
anna@web1:~$ sudo apt remove nginx       # programma rimosso, la configurazione in /etc resta
anna@web1:~$ sudo apt purge nginx        # programma e configurazione rimossi
anna@web1:~$ sudo apt autoremove         # rimuovere ciò che non serve più a nessuno

La differenza tra remove e purge è utile: se vuole togliere qualcosa temporaneamente e reinstallarlo in seguito con le stesse impostazioni, usi remove. Se vuole davvero ripartire da zero, purge.

Cercare e ottenere più informazioni:

anna@web1:~$ apt search fail2ban
anna@web1:~$ apt show fail2ban
anna@web1:~$ apt-cache policy openssh-server
openssh-server:
  Installed: 1:10.0p1-7
  Candidate: 1:10.0p1-7+deb13u1
  Version table:
     1:10.0p1-7+deb13u1 500
        500 http://deb.debian.org/debian-security trixie-security/main amd64 Packages
 *** 1:10.0p1-7 500
        500 http://deb.debian.org/debian trixie/main amd64 Packages

apt-cache policy è il comando da usare quando vuole sapere da dove proviene un pacchetto e quale versione sceglierà apt. Il *** si trova accanto alla versione installata, Candidate è ciò che installerebbe un upgrade.

Versioni di Debian e versione di un programma

Una lamentela frequente: "Debian contiene una vecchia versione di nginx." È vero ed è voluto. Debian e Ubuntu congelano le versioni al momento della pubblicazione di una release e in seguito aggiungono solo correzioni di sicurezza e riparazioni gravi, senza nuove funzionalità. Per questo un pacchetto con un numero di versione "vecchio" può comunque contenere tutte le correzioni di sicurezza recenti: sono state riportate (backport) nella vecchia versione. Lo si riconosce dal suffisso, come +deb13u1 o ubuntu0.1.

Non confronti quindi mai soltanto il numero di versione con il sito del produttore per valutare se è vulnerabile. Consulti gli avvisi di sicurezza della Sua distribuzione: il Debian Security Tracker (security-tracker.debian.org) e gli Ubuntu Security Notices (ubuntu.com/security/notices) indicano per ogni vulnerabilità se la Sua versione è stata corretta.

Alcune regole per un server tranquillo

  • Installi solo ciò che Le serve. Ogni pacchetto è codice da aggiornare e talvolta un servizio in ascolto (lezione 5.1).
  • Meglio dalla distribuzione che da un sito web. Un programma compilato da Lei o scaricato come file singolo non viene aggiornato da apt upgrade. In quel caso deve seguire Lei stesso gli avvisi di sicurezza.
  • Una sorgente aggiuntiva solo dal produttore stesso, con una propria chiave e Signed-By. Non aggiunga mai una chiave "valida per tutto" e mai una sorgente di un sito sconosciuto (lezione 4.3).
  • Legga ciò che chiede apt. Durante un upgrade apt può chiederLe se vuole sostituire un file di configurazione modificato con la nuova versione del produttore. Se non sa che cosa vi ha cambiato, scelga "keep the local version" (mantenere la versione locale, l'opzione predefinita) e in seguito controlli la differenza con diff: la nuova versione si trova accanto come .dpkg-dist.

Su AlmaLinux e Rocky Linux

Lì il gestore di pacchetti si chiama dnf e i pacchetti sono .rpm. I comandi somigliano a quelli di apt: dnf check-update (l'elenco), dnf upgrade (aggiornare, update e upgrade in uno), dnf install, dnf remove, dnf info. Le sorgenti si trovano in /etc/yum.repos.d/*.repo. Molto software aggiuntivo (come fail2ban) proviene dalla sorgente separata EPEL, che va prima attivata con dnf install epel-release. Per mostrare solo gli aggiornamenti di sicurezza si usa dnf updateinfo list --security.

In pratica: la schermata del VPS

Presso WebOké, e presso la maggior parte degli altri fornitori, l'installazione del Suo VPS configura già correttamente le sorgenti standard della distribuzione. Di solito non deve modificare nulla. Aggiorni il server subito dopo il primo accesso con apt update e apt upgrade (lezione 1.2) e, prima di modifiche importanti, crei uno snapshot nel pannello del Suo fornitore.

Riepilogo

  • Su Debian e Ubuntu il software proviene da sorgenti dei pacchetti firmate; apt scarica, installa, aggiorna e fa pulizia.
  • apt update scarica solo l'elenco; apt upgrade aggiorna senza rimuovere; apt full-upgrade può anche rimuovere.
  • Gli aggiornamenti di sicurezza provengono dalla suite con -security nel nome; apt list --upgradable e apt-cache policy mostrano da dove proviene una versione.
  • Un vecchio numero di versione con +deb13u1 o ubuntu0.x può contenere tutte le correzioni (backport): consulti gli avvisi di sicurezza della Sua distribuzione.
  • Una sorgente aggiuntiva solo dal produttore stesso, con una propria chiave in Signed-By.

Quiz

1. Digita sudo apt upgrade su un server su cui non ha fatto nulla da una settimana e apt segnala che è tutto aggiornato. Eppure sa che ieri è uscito un aggiornamento di OpenSSH. Qual è la spiegazione più probabile?



2. Qual è la differenza tra apt remove e apt purge?



3. In apt list --upgradable compare openssh-server/noble-security .... Che cosa indica la parte noble-security?



4. Sul sito di un programma è indicata la versione 2.8, mentre Debian fornisce la 2.6 con +deb13u2. Un collega dice: "Quindi Debian è vulnerabile a tutte le falle corrette nella 2.7 e nella 2.8." Che cosa è corretto?



5. Perché una sorgente dei pacchetti aggiuntiva deve avere una propria chiave con Signed-By?



Esercizio

Esercizio Z4.1: Quali aggiornamenti sono aggiornamenti di sicurezza? Il file di esempio apt-upgradable.txt contiene l'output di apt list --upgradable e apt-cache policy di un server Debian 13. Risponda: quali pacchetti provengono dalla sorgente di sicurezza, quale pacchetto proviene dalla sorgente di un produttore anziché da Debian, quale versione di openssh-server è attualmente installata e quale pacchetto è un normale aggiornamento stabile senza motivi di sicurezza? Il programma confronta le risposte con la soluzione fissa. Se ha già un server proprio, esegua gli stessi comandi e osservi che cosa vede.

Esercizio Z4.1: Quali aggiornamenti sono aggiornamenti di sicurezza?

File relativo a questo esercizio: apt-upgradable.txt





Quello che inserisce e quello che rileviamo non vengono salvati. Il Suo browser ricorda le Sue risposte e se ha superato l'esercizio. Se ha effettuato l'accesso, conserviamo in I miei corsi solo il fatto che l'esercizio era (quasi) corretto; anche lì può eliminarlo.

Per approfondire

Un momento…

Configuri i suoi domini

Per ogni dominio imposti i nameserver, il collegamento al suo hosting e chi ne diventa l'intestatario.

Caricamento dei suoi domini…