Come abilitare e configurare gli aggiornamenti automatici su Debian 11

Mantenere aggiornato il proprio sistema è un fattore importante per chiunque, da semplici utenti desktop, sviluppatori, amministratori di sistema; beh, diciamocelo, chiunque abbia un dispositivo particolarmente connesso a Internet. Debian, per impostazione predefinita, non è configurato per gli aggiornamenti automatici. Tuttavia, con l'abilitazione e la configurazione di pacchetti di aggiornamenti automatici, è possibile applicare facilmente aggiornamenti di sicurezza, pacchetti o anche nuove funzionalità in modo facile, semplice ed efficiente se non si ha sempre il tempo di controllare o dimenticare. Si consiglia vivamente all'IT di abilitarlo solo per motivi di sicurezza.

Il seguente tutorial dimostrerà come installare e/o abilitare e configurare gli aggiornamenti non presidiati su Debian 11.

Prerequisiti

  • Sistema operativo consigliato: Debian 11 Bullseye o Debian 10, 9 o qualsiasi sistema Debian ancora aggiornato.
  • Account utente: Un account utente con privilegi sudo or accesso root (comando su).

Aggiornamento del sistema operativo

Aggiorna il tuo Debian 11 sistema operativo per assicurarsi che tutti i pacchetti esistenti siano aggiornati:

sudo apt update && sudo apt upgrade

Accesso root o sudo

Per impostazione predefinita, quando crei il tuo account all'avvio con Debian rispetto ad altre distribuzioni, non riceve automaticamente lo stato di sudoers. Devi avere accesso a password di root usare il comando su o visita il nostro tutorial su Come aggiungere un utente a Sudoers su Debian.


pubblicità


Installa il pacchetto di aggiornamenti automatici

Innanzitutto, se non hai installato aggiornamenti automatici o hai rimosso il pacchetto, devi reinstallarlo con il seguente comando:

sudo apt install unattended-upgrades

Per impostazione predefinita, questo dovrebbe essere installato.

Dovrai anche farlo installa il pacchetto apt-config-auto-update se vuoi che il tuo sistema Debian si riavvii dopo aver applicato gli aggiornamenti che richiedono il riavvio automatico del sistema. Per fare ciò, utilizzare il seguente comando di seguito:

sudo apt install apt-config-auto-update

Per gli utenti di laptop, sarà necessario installare il pacchetto powermgmt-base se prevedi di utilizzare qualsiasi opzione non presidiata che utilizza le opzioni della batteria.

sudo apt install powermgmt-base

Una volta completata l'installazione, per impostazione predefinita Debian dovrebbe avviare il processo. Per verificare, utilizzare il seguente comando:

sudo systemctl status unattended-upgrades

Esempio di output:

Come abilitare e configurare gli aggiornamenti automatici Debian 11

Le seguenti comandi systemctl spiegherà le opzioni che devi avviare, interrompere, abilitare all'avvio, disabilitare all'avvio o riavviare il servizio di aggiornamento automatico:

Per avviare i servizi non presidiati:

sudo systemctl start unattended-upgrades

Per interrompere i servizi non presidiati:

sudo systemctl stop unattended-upgrades

Per abilitare all'avvio i servizi non presidiati:

sudo systemctl enable unattended-upgrades

Per disabilitare all'avvio i servizi non presidiati:

sudo systemctl disable unattended-upgrades

Per riavviare sui servizi non presidiati:


sudo systemctl restart unattended-upgrades

Configura aggiornamenti automatici

Dopo aver verificato o installato un aggiornamento automatico, ora modifichiamo il 50 aggiornamenti non presidiati config utilizzando il tuo editor di testo del terminale preferito. Da qui, puoi configurare gli aggiornamenti non presidiati da alcuni degli esempi in questo tutorial ed esplorare alcune delle altre opzioni meno utilizzate; la documentazione nel file di configurazione fornisce una buona spiegazione di ciascuna impostazione da sola.

Puoi farlo con il seguente comando:

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

Esempio di apertura della finestra e primo sguardo:

Come abilitare e configurare gli aggiornamenti automatici Debian 11

Origini e aggiornamenti consentiti

Il pacchetto di aggiornamenti automatici non elaborerà le righe che iniziano con // sintassi. Per impostazione predefinita, vengono installati automaticamente solo gli aggiornamenti di sicurezza, come mostrato nelle righe seguenti. Sarebbe meglio se non disabilitassi mai gli aggiornamenti di sicurezza; tuttavia, puoi aggiungere ulteriori opzioni qui.

Ad esempio, per includere i normali aggiornamenti dei pacchetti disattivati ​​per impostazione predefinita:

Cambio da:

//      "${distro_id}:${distro_codename}-updates";

Modificare per abilitare:

       "${distro_id}:${distro_codename}-updates";

Configurazione di esempio fornita con l'impostazione predefinita (consigliata per la maggior parte degli utenti):

Unattended-Upgrade::Allowed-Origins {
        "${distro_id}:${distro_codename}";
        "${distro_id}:${distro_codename}-security";
        // Extended Security Maintenance; doesn't necessarily exist for
        // every release and this system may not have it installed, but if
        // available, the policy for updates is such that unattended-upgrades
        // should also install from here by default.
        "${distro_id}ESMApps:${distro_codename}-apps-security";
        "${distro_id}ESM:${distro_codename}-infra-security";
//      "${distro_id}:${distro_codename}-updates";
//      "${distro_id}:${distro_codename}-proposed";
//      "${distro_id}:${distro_codename}-backports";
};

Esempio in un ambiente live:

Come abilitare e configurare gli aggiornamenti automatici Debian 11

Per scomporre ulteriormente le opzioni che puoi abilitare oltre a quelle predefinite:

  • “${distro_id}:${distro_codename}-aggiornamenti”; – questa opzione sarà la stessa dell'esecuzione di sudo apt update nel terminale per estrarre gli aggiornamenti del pacchetto. Molto spesso, questo è sconsigliato poiché alcuni pacchetti richiedono un intervento manuale durante l'aggiornamento, se si imposta questo make set per inserire nella lista nera alcuni pacchetti che si sa causeranno problemi se aggiornati senza supervisione come spiegato più avanti nel tutorial.
  • “${distro_id}:${distro_codename}-proposto”; – questa opzione estrarrà gli aggiornamenti dal test, questo è provocatoriamente sconsigliato a tutti gli utenti in quanto i pacchetti sono instabili e potrebbero non essere nemmeno presenti in un ambiente live.
  • “${distro_id}:${distro_codename}-backport”; – questa opzione abiliterà i backport utilizzati principalmente per aggiornare i pacchetti, questo è normalmente più stabile di quanto proposto ma per una regola generale dovresti indagare prima di attivarlo poiché può causare instabilità.

Escludi pacchetti dagli aggiornamenti

Con gli aggiornamenti, alcuni pacchetti possono diventare instabili o rompersi completamente se non stai supervisionando il processo. Ad esempio, un aggiornamento automatico di Nginx per un utente che ha compilato ModSecurity si interromperà; spesso non avrai bisogno di riempire nulla qui; questo è solo per i server dedicati che eseguono pacchetti che richiedono un intervento.

Nota, è sempre meglio usare le espressioni Python per abbinare i pacchetti:

Esempio da

// Python regular expressions, matching packages to exclude from upgrading
Unattended-Upgrade::Package-Blacklist {
    // The following matches all packages starting with linux-
//  "linux-";

    // Use $ to explicitely define the end of a package name. Without
    // the $, "libc6" would match all of them.
//  "libc6$";
//  "libc6-dev$";
//  "libc6-i686$";

Anche la modifica dell'esempio esclude l'applicazione web Nginx:

// Python regular expressions, matching packages to exclude from upgrading
Unattended-Upgrade::Package-Blacklist {
    // The following matches all packages starting with linux-
  "nginx";

    // Use $ to explicitely define the end of a package name. Without
    // the $, "libc6" would match all of them.
//  "libc6$";
//  "libc6-dev$";
//  "libc6-i686$";

Esempio in un ambiente live:

Come abilitare e configurare gli aggiornamenti automatici Debian 11

Rimuovi le dipendenze inutilizzate

Quindi, procedi al rimuovere automaticamente le dipendenze inutilizzate, che hanno tre opzioni; l'impostazione predefinita è false. Tuttavia, opzionalmente puoi abilitare queste impostazioni. Fondamentalmente, se si aggiorna automaticamente un pacchetto, le dipendenze e/o il kernel ei vecchi resti non più in uso non sono più necessari; li pulirà e rimuoverà automaticamente per te. Questo è normalmente sempre sicuro da fare per la maggior parte degli utenti.

Se non desideri farlo, lascia intatta la linea.

Esempio da:

// Remove unused automatically installed kernel-related packages
// (kernel images, kernel headers and kernel version locked tools).
// Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";

// Do automatic removal of newly unused dependencies after the upgrade
// Unattended-Upgrade::Remove-New-Unused-Dependencies "true";

// Do automatic removal of unused packages after the upgrade
// (equivalent to apt-get autoremove)
// Unattended-Upgrade::Remove-Unused-Dependencies "false";

Cambia anche l'esempio:

// Remove unused automatically installed kernel-related packages
// (kernel images, kernel headers and kernel version locked tools).
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";

// Do automatic removal of newly unused dependencies after the upgrade
Unattended-Upgrade::Remove-New-Unused-Dependencies "true";

// Do automatic removal of unused packages after the upgrade
// (equivalent to apt-get autoremove)
Unattended-Upgrade::Remove-Unused-Dependencies "true";

Esempio in un ambiente live:

Come abilitare e configurare gli aggiornamenti automatici Debian 11

pubblicità


Notifiche e-mail

Si consiglia di impostare le notifiche e-mail, soprattutto se si eseguono server non presidiati. Nella configurazione, un'ottima opzione è selezionare l'e-mail "su modifica", in modo da ricevere notifiche solo quando il software è cambiato. In alternativa, puoi scegliere "only-on-error", in modo da ricevere notifiche solo quando si è verificato un errore.

Si consiglia di selezionare on-change perché dovresti sapere quali aggiornamenti stanno accadendo nel tuo sistema. Puoi impostare un indirizzo email anche qui:

Nota, questo richiederà di avere le e-mail impostate sul tuo server affinché le notifiche funzionino.

Esempio da:

// Send email to this address for problems or packages upgrades
// If empty or unset then no email is sent, make sure that you
// have a working mail setup on your system. A package that provides
// 'mailx' must be installed. E.g. "user@example.com"
//Unattended-Upgrade::Mail "";

Cambia anche l'esempio:

// Send email to this address for problems or packages upgrades
// If empty or unset then no email is sent, make sure that you
// have a working mail setup on your system. A package that provides
// 'mailx' must be installed. E.g. "user@example.com"
Unattended-Upgrade::Mail "EMAILNAME@YOURDOMAIN.COM";

Esempio in un ambiente live:

Come abilitare e configurare gli aggiornamenti automatici Debian 11

La seconda opzione per le notifiche e-mail è su cosa effettivamente segnalare. Per la maggior parte degli utenti è sufficiente solo in caso di errore o in caso di modifica; l'impostazione della segnalazione su sempre comporterà potenzialmente molte e-mail indesiderate, ma per i sistemi critici ciò potrebbe essere giustificato.

Di seguito è riportato un esempio per only-on-error, che va bene per gli utenti desktop in ambienti non di produzione/server web:

Esempio da:

// Set this value to one of:
//    "always", "only-on-error" or "on-change"
// If this is not set, then any legacy MailOnlyOnError (boolean) value
// is used to chose between "only-on-error" and "on-change"
//Unattended-Upgrade::MailReport "on-change";

Cambia anche l'esempio:

// Set this value to one of:
//    "always", "only-on-error" or "on-change"
// If this is not set, then any legacy MailOnlyOnError (boolean) value
// is used to chose between "only-on-error" and "on-change"
Unattended-Upgrade::MailReport "only-on-error";

Esempio in un ambiente live:

Come abilitare e configurare gli aggiornamenti automatici Debian 11

Opzioni di riavvio automatico

Scorri verso il basso fino all'opzione Riavvio automatico. Per impostazione predefinita, questo è disattivato e quasi tutti i desktop e in particolare i server che eseguono software e/o servizi dedicati non lo avranno in quanto spesso può causare grandi interruzioni a tali servizi software.

Tuttavia, supponi che i tuoi servizi servano solo poche persone. In tal caso, questa opzione potrebbe essere praticabile. I sistemi Linux/Ubuntu in genere si riavviano solo a causa di un aggiornamento del kernel Linux che è fondamentale, ma ho notifiche automatiche per il cambiamento. Saprò che avrà bisogno di fare e posso pianificare per questo.

Esempio da:

// Automatically reboot *WITHOUT CONFIRMATION* if
//  the file /var/run/reboot-required is found after the upgrade
//Unattended-Upgrade::Automatic-Reboot "false";

Cambia anche l'esempio:

// Automatically reboot *WITHOUT CONFIRMATION* if
//  the file /var/run/reboot-required is found after the upgrade
Unattended-Upgrade::Automatic-Reboot "true";

Esempio in un ambiente live:

Come abilitare e configurare gli aggiornamenti automatici Debian 11

Se abiliti l'opzione, puoi impostare il riavvio con gli utenti che hanno effettuato l'accesso o meno. Questo dovrebbe essere disabilitato, poiché gli utenti che hanno effettuato l'accesso ed essere costretti a uscire a causa di un riavvio possono causare interruzioni negli ambienti di lavoro, per non parlare della frustrazione dell'utente che ha effettuato l'accesso.

Tuttavia, se preferisci questo su:

Esempio da:

// Automatically reboot even if there are users currently logged in
// when Unattended-Upgrade::Automatic-Reboot is set to true
//Unattended-Upgrade::Automatic-Reboot-WithUsers "true";

Cambia anche l'esempio:

// Automatically reboot even if there are users currently logged in
// when Unattended-Upgrade::Automatic-Reboot is set to true
Unattended-Upgrade::Automatic-Reboot-WithUsers "true";

Esempio in un ambiente live:

Come abilitare e configurare gli aggiornamenti automatici Debian 11

Se hai un piccolo server in un particolare fuso orario e conosci un buon momento per riavviare, dì le 2 del mattino, quindi regola quanto segue:

Esempio da:

// If automatic reboot is enabled and needed, reboot at the specific
// time instead of immediately
//  Default: "now"
//Unattended-Upgrade::Automatic-Reboot-Time "02:00";

Cambia anche l'esempio:

// If automatic reboot is enabled and needed, reboot at the specific
// time instead of immediately
//  Default: "now"
Unattended-Upgrade::Automatic-Reboot-Time "02:00";

Esempio in un ambiente live:

Come abilitare e configurare gli aggiornamenti automatici Debian 11

Lista di controllo finale per gli aggiornamenti non presidiati

Per assicurarsi che i file di aggiornamento automatico siano presenti nella directory /etc/apt/apt.conf.d/ utilizzando i seguenti comandi:

cd /etc/apt/apt.conf.d
ls

Esempio di output:

ls
00CDMountPoint	      10periodic      20packagekit	     60icons
00trustcdrom	      15update-stamp  20snapd.conf	     70debconf
01autoremove	      20archive       50appstream
01autoremove-kernels  20listchanges   50unattended-upgrades

Ora apri il file /etc/apt/apt.conf.d/20auto-upgrades:

sudo nano /etc/apt/apt.conf.d/20auto-upgrades

Esempio di output:

Dovresti vedere il codice del comando di seguito nel file seguente. In caso contrario, copia e incolla:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

Per impostazione predefinita, l'impostazione "1" è abilitata. Tuttavia, se si desidera disabilitarlo, è possibile modificarlo in "0", se non si desidera controllare quotidianamente, procedere a modificare il numero in "2", che fa controllare gli aggiornamenti automatici a giorni alterni. Nella nostra guida, ad esempio, solo l'abbiamo cambiato in 2. Ti consigliamo di lasciare questo set a "1":

Esempio in un ambiente live:

Come abilitare e configurare gli aggiornamenti automatici Debian 11

Salva il file (CTRL+O), poi premere Y, poi per uscire premere (CTRL+X) per uscire dall'editor di testo.


pubblicità


Crea Cronjob per gli aggiornamenti non presidiati

Facoltativamente, se desideri il pieno controllo sui tempi dei tuoi aggiornamenti automatici, puoi creare un cronjob. Per fare ciò, per prima cosa, apri il crontab:

sudo crontab -e

Quindi, aggiungi questa riga in fondo all'ultima voce; puoi modificare il "timing" come preferisci. Se non conosci Linux, visita Crontab.Guru, che puoi ottenere aiuto, creare e testare le impostazioni di cron.

Di seguito dimostrerà di funzionare esattamente ogni 3 giorni, alle 4:00.

Esempio:

00 04 * * */3 /usr/bin/unattended-upgrade -v

Esempio in un ambiente live:

Come abilitare e configurare gli aggiornamenti automatici Debian 11

Salva il file (CTRL+O), poi premere Y, poi per uscire premere (CTRL+X) per uscire dall'editor di testo.

Come accedere ai log degli aggiornamenti automatici

Infine, i registri di aggiornamento automatico nella sua directory, quindi se desideri controllare i file di registro per eventuali problemi e trovare errori, puoi trovarli nel seguente percorso:

/var/log/unattended-upgrades/

pubblicità


Strumenti aggiuntivi – Controlla il riavvio (Debian Goodies)

Un ottimo programma per verificare se sei tornato su un server a cui sono stati applicati aggiornamenti automatici invece di controllare i registri o le e-mail è eseguire il comando checkrestart che ti informerà se alcuni pacchetti richiedono il riavvio.

Per installare checkrestart, esegui il seguente comando:

sudo apt install debian-goodies -y

Ora esegui il seguente comando per verificare la presenza di pacchetti che richiedono il riavvio:

sudo checkrestart


Esempio di output:

Found 0 processes using old versions of upgraded files

Come puoi vedere, la macchina utilizzata dal tutorial è aggiornata; tuttavia, se qualcosa avesse bisogno di un riavvio manuale, sarebbe elencato qui nell'output.

Commenti e Conclusione

L'impostazione degli aggiornamenti non presidiati è un lavoro fondamentale che investi nella configurazione. Come spiegato nella nostra guida, il processo ha così tante opzioni per soddisfare le esigenze di quasi tutti, e anche in questo caso, puoi fare alcuni fattori esterni per avere più opzioni, ad esempio con cronjob.

Come minimo, vorrai eseguire questa corsa ogni giorno per la sicurezza e la tranquillità generale.

2 pensieri su "Come abilitare e configurare gli aggiornamenti automatici su Debian 11"

  1. Ciao Joshua, hai un errore di battitura "copia/incolla":

    Per abilitare all'avvio i servizi non presidiati:

    sudo systemctl stop aggiornamenti automatici
    

    dovrebbe essere: sudo systemctl enable unattended-upgrades

    Grazie per la tua guida, mi fa risparmiare tempo per usarla come promemoria e riferimento.

    Rispondi

Lascia un tuo commento