Home
» LINUX
»
Come configurare aggiornamenti automatici di Debian senza interfaccia grafica con Unattended-Upgrades
Come configurare aggiornamenti automatici di Debian senza interfaccia grafica con Unattended-Upgrades
Cosa fa unattended-upgrades su un server Debian senza interfaccia grafica
unattended-upgradesè il pacchetto di Debian per il download e l'installazione automatica di aggiornamenti APT selezionati senza un login interattivo. Su un server senza interfaccia grafica, risulta utile per la manutenzione della sicurezza quando non è disponibile una sessione desktop e non è previsto che nessuno esegua il processo apt upgradequotidianamente.
A partire da ottobre 2026, Debian 13 "trixie" è la versione stabile di Debian e il unattended-upgradespacchetto stabile è la versione 2.12. Il pacchetto è destinato ai normali aggiornamenti dei pacchetti, in particolare agli aggiornamenti di sicurezza e stabili. Non sostituisce la procedura separata e pianificata di aggiornamento da una versione principale di Debian a un'altra.
Il modello pratico è semplice: il meccanismo periodico di APT aggiorna gli indici dei pacchetti, apt-daily-upgrade.servicerichiama il backend unattended-upgrade a intervalli regolari e la tua policy decide quali origini dei pacchetti sono consentite. Debian registra il risultato in /var/log/unattended-upgrades/.
L'installazione del pacchetto può essere ripetuta senza problemi: APT segnalerà semplicemente che è già installato se il sistema host lo possiede già. Debian descrive il pacchetto come un programma di installazione automatico per gli aggiornamenti di sicurezza e altri aggiornamenti selezionati in base alle policy.
Esempio di schermata del terminale per l'installazione di unattended-upgrades. I nomi dei repository e il numero di pacchetti variano a seconda della versione di Debian e del sistema host.
Per un parco macchine, non dare per scontato che ogni immagine abbia lo stesso stato predefinito. Alcune installazioni Debian includono già gli aggiornamenti automatici; altre no, e una configurazione esistente potrebbe essere stata disabilitata. Dopo l'installazione, verifica la configurazione effettiva invece di presumere che la presenza di un pacchetto implichi che la policy desiderata sia attiva.
2. Abilitare aggiornamenti periodici dell'elenco dei pacchetti ed esecuzioni automatiche
Il file README di Debian indica che per una configurazione manuale sono necessari questi due valori periodici di APT:
Impostazioni periodiche di APT che richiedono aggiornamenti giornalieri dell'elenco dei pacchetti ed esecuzioni automatiche degli aggiornamenti.
Non interpretate questo come una promessa che un'attività inizierà esattamente a mezzanotte ogni giorno. Sui sistemi Debian basati su systemd, APT utilizza unità di timer e un comportamento di pianificazione casuale. Per le attività operative, verificate lo stato effettivo del timer e il prossimo trigger sull'host, anziché progettare il monitoraggio basandovi su un orario ipotetico.
3. Definire quali repository possono aggiornare automaticamente i pacchetti
La policy chiave risiede nella versione Unattended-Upgrade::Origins-Patternprecedente Allowed-Origins. La documentazione di Debian 2.12 raccomanda di creare un frammento APT locale che ordina dopo il 50unattended-upgradesfile impacchettato, ad esempio:
Questo è preferibile alla modifica permanente del file distribuito, poiché gli aggiornamenti del pacchetto possono sostituire o entrare in conflitto con la configurazione gestita dal fornitore. Prima di scrivere i pattern, esaminare i metadati di rilascio effettivamente visualizzati da APT:
apt-cache policy
Per la maggior parte dei server headless, una politica prudente prevede di limitare gli aggiornamenti automatici ai canali stabili e di sicurezza standard di Debian. Le modalità esatte possono variare a seconda della configurazione del repository, dei mirror, dei fornitori di terze parti e delle regole di pinning, quindi è consigliabile considerare queste informazioni apt-cache policycome fonte di riferimento per ogni singolo ambiente.
Esempio di visualizzazione dell'editor delle policy. Associa le origini ai repository segnalati dalla policy apt-cache sul tuo server, anziché copiare le etichette ciecamente.
Comandi opzionali da conoscere
La configurazione 2.12 supporta blacklist e whitelist di pacchetti, riavvii automatici, report via e-mail, rimozione di dipendenze non utilizzate, limiti di larghezza di banda, restrizioni sul giorno di aggiornamento e output syslog. Alcune opzioni sono particolarmente rilevanti sui server remoti:
Configura la posta solo se la macchina dispone di un trasporto di posta funzionante. Se abiliti il riavvio automatico, il comportamento predefinito di Debian è importante: quando Automatic-Rebootè impostato su true ed /var/run/reboot-requiredesiste, l'host può riavviarsi senza conferma. Puoi impostare Unattended-Upgrade::Automatic-Reboot-Timela pianificazione di tale riavvio per una finestra di manutenzione.
Per molti sistemi di produzione, lasciare il riavvio automatico disabilitato è più sicuro, a meno che il servizio non sia ridondante, non siano definite finestre di manutenzione e non siano automatizzati i controlli di integrità post-riavvio.
4. Verificare i timer di systemd ed eseguire un test a secco
Su una normale installazione Debian basata su systemd, controlla i timer di APT anziché cercare un'unità inventata unattended-upgrades.timer:
systemctl status apt-daily.timer apt-daily-upgrade.timer
systemctl list-timers apt-daily.timer apt-daily-upgrade.timer
apt-daily.timerè associato all'attività di routine di download/indicizzazione dei pacchetti, mentre apt-daily-upgrade.timerattiva il percorso di servizio di aggiornamento/pulizia utilizzato dagli aggiornamenti automatici.
Stato del timer Systemd per le attività giornaliere di APT. Le date mostrate sono indicative; utilizzare il comando `systemctl list-timers` per visualizzare la data effettiva della prossima esecuzione sul proprio host.
Successivamente, testa la policy senza modificare i pacchetti:
sudo unattended-upgrade --debug --dry-run
Questo è il controllo preliminare più utile perché valuta la configurazione APT reale e registra i dettagli di debug. Esamina l'output per individuare i pacchetti che verrebbero selezionati o bloccati, origini di terze parti inaspettate, problemi di dipendenza e richieste relative ai file di configurazione.
Se la simulazione non seleziona nulla, è perfettamente normale quando il server è aggiornato. Verifica che siano effettivamente presenti aggiornamenti in sospeso apt list --upgradable, quindi confronta la loro origine e i criteri con i modelli configurati.
5. Monitorare gli aggiornamenti automatici e gestire i riavvii in modo mirato
Il pacchetto scrive il suo registro attività principale e l'output di dpkg in:
sudo tail -n 100 /var/log/unattended-upgrades/unattended-upgrades.log
sudo journalctl -u apt-daily-upgrade.service --since "7 days ago"
test -f /var/run/reboot-required && cat /var/run/reboot-required
Per un singolo computer da laboratorio domestico, la revisione periodica dei log potrebbe essere sufficiente. Per i sistemi aziendali, è opportuno inviare gli errori a un sistema di monitoraggio centralizzato o al syslog, in modo che un errore silenzioso del repository, un filesystem pieno, una dipendenza interrotta o uno stato dpkg alterato non rimangano inosservati.
Impostazioni di riferimento per le policy comuni del server
Scenario
Politica
Nota operativa
Server incentrato sulla sicurezza
Consenti gli aggiornamenti di sicurezza e stabili di Debian; mantieni il riavvio manuale
Una buona soluzione predefinita quando un'interruzione del servizio è più costosa di un riavvio ritardato.
Nodo senza stato o ridondante
Consenti gli aggiornamenti e il riavvio automatico programmato
Abbinare a controlli di salute e svuotamento del bilanciatore di carico
Apparecchio sensibile al kernel
Utilizzare una blacklist di pacchetti solo con una procedura di eccezione documentata.
L'inserimento in una lista nera può lasciare senza correzione le vulnerabilità note.
Server con repository del fornitore
Non consentire l'origine del fornitore finché la sua politica di aggiornamento non sarà stata rivista.
Prima di procedere, verifica la firma, le politiche di supporto e le aspettative relative al rollback.
Guida rapida alla risoluzione dei problemi
Il timer è attivo ma non sono installati pacchetti
Verifica se sono presenti aggiornamenti in sospeso, se l'origine del repository corrisponde alla policy consentita e se una blacklist o un vincolo di dipendenza ne impedisce la selezione. Esegui sudo unattended-upgrade --debug --dry-runi test per avere prove concrete, anziché modificare la policy a caso.
Il server attende la configurazione del pacchetto
unattended-upgradesÈ progettato per evitare aggiornamenti che richiederebbero la risoluzione di problemi di configurazione di dpkg. Se un pacchetto viene ripetutamente bloccato, esamina il registro e decidi se la decisione relativa al file di configurazione debba essere gestita manualmente.
Gli aggiornamenti non vengono mai eseguiti dopo la clonazione di un'immagine di macchina virtuale.
Verifica che i timer siano abilitati e attivi, quindi ispeziona apt-config dump. Le immagini master spesso contengono frammenti APT locali, mascheramento o override delle policy che differiscono dalle impostazioni predefinite del pacchetto.
È necessario interrompere gli aggiornamenti automatici
Utilizzare il percorso di riconfigurazione supportato da Debian:
sudo dpkg-reconfigure -plow unattended-upgrades
La disattivazione del pacchetto non sostituisce la normale gestione delle patch; si limita a restituire la responsabilità al processo di orchestrazione manuale o esterno.
Lista di controllo per la convalida finale
unattended-upgradesviene installato da un repository Debian affidabile.
L'aggiornamento periodico dell'elenco dei pacchetti APT e l'aggiornamento automatico sono abilitati.
La politica locale viene memorizzata in un file di override successivo, ad esempio 52unattended-upgrades-local.
Le origini consentite sono state verificate rispetto a apt-cache policy.