GNU/Linux >> Linux Esercitazione >  >> Debian

Installa/Abilita e configura aggiornamenti automatici su Debian 11

Mantenere aggiornato il tuo sistema è un fattore importante per chiunque, da semplici utenti desktop, sviluppatori, amministratori di sistema; beh, ammettiamolo, chiunque abbia un dispositivo particolarmente connesso a Internet. Debian, per impostazione predefinita, non è impostata per gli aggiornamenti automatici. Tuttavia, con l'abilitazione e la configurazione di pacchetti di aggiornamenti automatici, puoi facilmente applicare aggiornamenti di sicurezza, pacchetti o persino nuove funzionalità in modo facile, semplice ed efficiente se non hai 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 automatici 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 o accesso root (comando su) .

Aggiornamento del sistema operativo

Aggiorna la tua 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 sudoers. Devi avere accesso alla password root per usare il comando su oppure visita il nostro tutorial su Come aggiungere un utente a Sudoer su Debian.

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, dovrebbe essere installato.

Dovrai anche installare 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ò, usa il seguente comando di seguito:

sudo apt install apt-config-auto-update

Per gli utenti di laptop, dovrai installare il pacchetto powermgmt-base se prevedi di utilizzare eventuali opzioni automatiche che utilizzano 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:

I seguenti comandi systemctl spiegherà le opzioni che devi avviare, interrompere, abilitare all'avvio, disabilitare all'avvio o riavviare il servizio di aggiornamenti automatici:

Per avviare i servizi automatici:

sudo systemctl start unattended-upgrades

Per interrompere i servizi non presidiati:

sudo systemctl stop unattended-upgrades

Per abilitare all'avvio i servizi automatici:

sudo systemctl enable unattended-upgrades

Per disabilitare all'avvio i servizi automatici:

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 i 50aggiornamenti automatici config utilizzando il tuo editor di testo del terminale preferito. Da qui, puoi configurare gli aggiornamenti automatici 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:

Origini consentite e aggiornamenti

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 avessi mai disabilitato gli aggiornamenti di sicurezza; tuttavia, puoi aggiungere ulteriori opzioni qui.

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

Cambia da:

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

Modifica per abilitare:

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

Esempio di configurazione 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:

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 imposti questo set per inserire nella lista nera alcuni pacchetti che sai causeranno problemi se aggiornati incustoditi, come spiegato più avanti nel tutorial.
  • "${distro_id}:${distro_codename}-proposto"; – questa opzione estrarrà gli aggiornamenti dal test, questo è decisamente sconsigliato a tutti gli utenti poiché i pacchetti sono instabili e potrebbero non arrivare nemmeno a un ambiente live.
  • "${distro_id}:${distro_codename}-backports"; – 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 attivarla 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 con ModSecurity compilato si interromperà; spesso non avrai bisogno di riempire nulla qui; questo è solo per server dedicati che eseguono pacchetti che necessitano di 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:

Rimuovi le dipendenze inutilizzate

Quindi, procedi con la rimozione automatica delle dipendenze inutilizzate che hanno tre opzioni; il valore predefinito è falso. Tuttavia, facoltativamente puoi abilitare queste impostazioni. Fondamentalmente, 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 è normalmente sempre sicuro da fare per la maggior parte degli utenti.

Se non desideri farlo, lascia la riga intatta.

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";

Anche esempio di modifica:

// 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:

Notifiche e-mail

Si consiglia di configurare le notifiche e-mail, soprattutto se si eseguono server incustoditi. Nella configurazione, un'ottima opzione è selezionare l'e-mail "in 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 la modifica perché dovresti sapere quali aggiornamenti sono in corso nel tuo sistema. Puoi anche impostare un indirizzo email qui:

Nota, ciò richiederà che le e-mail siano configurate 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. "[email protected]"
//Unattended-Upgrade::Mail "";

Anche esempio di modifica:

// 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. "[email protected]"
Unattended-Upgrade::Mail "[email protected]";

Esempio in un ambiente live:

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

Di seguito è riportato un esempio di 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";

Anche esempio di modifica:

// 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:

Opzioni di riavvio automatico

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

Tuttavia, supponiamo che i tuoi servizi servano solo a poche persone. In tal caso, questa opzione potrebbe essere praticabile. I sistemi Linux/Ubuntu si riavvieranno in genere solo a causa di un aggiornamento del kernel Linux che è fondamentale, ma ho notifiche automatiche per le modifiche. Saprò che dovrà essere fatto 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";

Anche esempio di modifica:

// 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:

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 disconnettersi a causa di un riavvio possono causare interruzioni agli ambienti di lavoro, per non parlare della frustrazione di quell'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";

Anche esempio di modifica:

// 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:

Se disponi di un server di piccole dimensioni in un determinato fuso orario e conosci un buon momento per riavviare, ad esempio alle 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";

Anche esempio di modifica:

// 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:

Elenco di controllo finale per aggiornamenti automatici

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 di comando qui sotto 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 vuoi disabilitarlo, puoi cambiarlo in "0". Se non ti piace controllare ogni giorno, procedi a cambiare il numero in "2", che effettua il controllo automatico degli aggiornamenti a giorni alterni. Nella nostra guida, ad esempio, solo l'abbiamo modificato in 2. Consigliamo di lasciare questo set su "1":

Esempio in un ambiente live:

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

Crea Cronjob per aggiornamenti automatici

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

sudo crontab -e

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

Di seguito dimostreremo di correre esattamente ogni 3 giorni, alle 4:00.

Esempio:

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

Esempio in un ambiente live:

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

Come accedere ai registri degli aggiornamenti automatici

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

/var/log/unattended-upgrades/

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 log o le email è 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 comando seguente 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 necessitasse di un riavvio manuale, verrebbe elencato qui nell'output.


Debian
  1. Come installare Tomcat 8.5 su Debian 9

  2. Come installare MongoDB su Debian 9

  3. Come installare Nginx su Debian 9

  4. Come installare Apache su Debian 9

  5. Come installare Jenkins su Debian 9

Come installare e configurare Wine (WineHQ) su Debian 11 Bullseye

Installa e configura GitLab su Debian 11 Bullseye

Come installare e configurare Git su Debian 11

Come installare e configurare Fail2ban su Debian 11

Installa/Abilita SSH su Debian 11 Bullseye

Come installare Vai su Debian 11