Come impostare e configurare gli aggiornamenti non presidiati su Ubuntu 20.04

Mantenere aggiornato il proprio sistema è un fattore essenziale per chiunque, da semplici utenti desktop, sviluppatori, amministratori di sistema; beh, diciamocelo, chiunque abbia un dispositivo connesso principalmente a Internet. Ubuntu, 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 Ubuntu 20.04 LTS.

Prerequisiti

  • Sistema operativo consigliato: Ubuntu 20.04 - facoltativo (Ubuntu 21.04)
  • Account utente: Un account utente con privilegi sudo or accesso root (comando su).

Aggiornamento del sistema operativo

Aggiorna il tuo Ubuntu 20.04 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 Ubuntu.


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 Ubuntu dovrebbe avviare il processo. Per verificare, utilizzare il seguente comando:

sudo systemctl status unattended-upgrades

Esempio di output:

Come abilitare e configurare gli aggiornamenti non presidiati su Ubuntu 20.04

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 stop 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.

QUANTO SEGUENTE È UN ESEMPIO DI CONFIGURAZIONE SOLO A SCOPI DI APPRENDIMENTO. OGNI UTENTE HA ESIGENZE DIVERSE, ADEGUATEVI ALLE VOSTRE ESIGENZE POICHÉ QUELLO CHE FUNZIONA PER UN UTENTE NON FUNZIONA O NON SARÀ DESIDERATO PER UN ALTRO.

Innanzitutto, apri il file di configurazione degli aggiornamenti automatici 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 non presidiati su Ubuntu 20.04

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 aggiornamenti regolari dei pacchetti che sono 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 non presidiati su Ubuntu 20.04

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 fallirà; 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 non presidiati su Ubuntu 20.04

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. Se aggiorni 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 di solito è sempre sicuro 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 non presidiati su Ubuntu 20.04

Si noti che mentre la pulizia delle dipendenze inutilizzate è una buona opzione, può impedire il ripristino dei vecchi pacchetti poiché non esisteranno più. Se ti trovi in ​​un ambiente di produzione o simile e non disponi di un sistema di backup sonoro, impostare questa opzione su false o lasciarla oscurata sarebbe una buona idea.


pubblicità


Notifiche e-mail

Si consiglia di impostare le notifiche e-mail, soprattutto se i server sono in esecuzione non presidiati. Nella configurazione, un'ottima opzione è selezionare l'e-mail "in caso di modifica", in modo da ricevere notifiche solo quando il software è cambiato. In alternativa, puoi scegliere "solo in caso di errore", 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 e-mail 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 non presidiati su Ubuntu 20.04

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 non presidiati su Ubuntu 20.04

Opzioni di riavvio automatico

Scorri verso il basso fino all'opzione Riavvio automatico. Per impostazione predefinita, questo è disattivato. Quasi tutti i desktop e in particolare i server che eseguono software e/o servizi dedicati non avranno questo in quanto può spesso causare interruzioni significative 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 non presidiati su Ubuntu 20.04

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 non presidiati su Ubuntu 20.04

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 non presidiati su Ubuntu 20.04

Nota, assicurati di cambiarlo in false se non puoi permetterti che gli utenti vengano disconnessi.

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. La raccomandazione è di lasciare questo set a "1":

Esempio in un ambiente live:

Come abilitare e configurare gli aggiornamenti non presidiati su Ubuntu 20.04

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 controllo completo 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 non presidiati su Ubuntu 20.04

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 con aggiornamenti automatici applicati invece di controllare i registri o le e-mail è eseguire il comando checkrestart per informarti 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 necessita di un riavvio manuale, sarebbe elencato qui nell'output.

Commenti e Conclusione

L'impostazione degli aggiornamenti non presidiati è un lavoro fondamentale in cui investi. 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.

Lascia un tuo commento