Configurare aggiornamenti di sicurezza automatici su Ubuntu 16.04

Questo articolo mostra, passo dopo passo, come installare e configurare unattended-upgrades su Ubuntu 16.04 per scaricare e applicare automaticamente solo gli aggiornamenti di sicurezza. Include controlli, log, notifiche via email, riavvio automatico e procedure operative consigliate per amministratori.
Perché è importante
Gli aggiornamenti di sicurezza vanno applicati entro 30 giorni dalla loro pubblicazione per ridurre la finestra di esposizione. Anche se Linux è tra i sistemi più sicuri, le vulnerabilità esistono e vanno corrette tempestivamente.
Cosa faremo
- Installare unattended-upgrades su Ubuntu 16.04
- Configurare unattended-upgrades per aggiornamenti di sicurezza
- Abilitare gli aggiornamenti automatici periodici
- Verificare i pacchetti aggiornati e controllare i log
Prerequisiti
- Server Ubuntu 16.04
- Privilegi di root (o sudo)
- Accesso SSH al server
1 — Installare unattended-upgrades
Accedi al server via SSH:
ssh root@hakase-labs
Aggiorna gli elenchi dei pacchetti e installa unattended-upgrades:
sudo apt update
sudo apt install unattended-upgrades
Dopo l’installazione, il file di configurazione principale si trova in /etc/apt/apt.conf.d/50unattended-upgrades. Lo modificheremo per limitare gli upgrade solo ai pacchetti di sicurezza e per abilitare alcune opzioni utili.
2 — Configurare unattended-upgrades
Apri il file di configurazione:
cd /etc/apt/apt.conf.d/
vim 50unattended-upgrades
Definire il tipo di upgrade
Per applicare solo aggiornamenti di sicurezza, lascia solo la riga che include “${distro_id}:${distro_codename}-security” nel blocco Unattended-Upgrade::Allowed-Origins. Esempio:
Unattended-Upgrade::Allowed-Origins {
// "${distro_id}:${distro_codename}";
"${distro_id}:${distro_codename}-security";
// "${distro_id}ESM:${distro_codename}";
// "${distro_id}:${distro_codename}-updates";
// "${distro_id}:${distro_codename}-proposed";
// "${distro_id}:${distro_codename}-backports";
};
Alt immagine: Schermata del file di configurazione 50unattended-upgrades con la riga -security mantenuta.
Blacklist di pacchetti
Se vuoi escludere pacchetti critici dagli aggiornamenti automatici, usa Unattended-Upgrade::Package-Blacklist. Esempio:
Unattended-Upgrade::Package-Blacklist {
"vim";
"mysql-server";
"mysql-client";
// "libc6";
};
Questa blacklist è utile quando certi pacchetti devono essere aggiornati manualmente per motivi di compatibilità.
Opzioni aggiuntive importanti
Abilita notifiche email, pulizia automatica dei dipendenti inutilizzati e riavvio automatico (se necessario).
- Notifica email (invia al root):
Unattended-Upgrade::Mail "root";
Nota: assicurati di avere mailx o sendmail installati:
sudo apt install -y sendmail
- Rimuovere dipendenze inutilizzate:
Unattended-Upgrade::Remove-Unused-Dependencies "true";
- Riavvio automatico dopo aggiornamenti (solo se necessario):
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "00:00";
Impostando Automatic-Reboot, il server verrà riavviato automaticamente se un aggiornamento lo richiede. Puoi specificare l’orario con Automatic-Reboot-Time.
Salva e chiudi il file.
Importante: il riavvio automatico ridurrà la disponibilità; valuta finestre di manutenzione per servizi critici.
3 — Abilitare gli aggiornamenti automatici periodici
Modifica il file 20auto-upgrades per programmare l’esecuzione quotidiana di aggiornamenti e download:
cd /etc/apt/apt.conf.d/
vim 20auto-upgrades
Contenuto consigliato:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "3";
APT::Periodic::Unattended-Upgrade "1";
Significato rapido:
- Update-Package-Lists: 1 abilita l’aggiornamento dell’elenco pacchetti.
- Download-Upgradeable-Packages: 1 abilita il download automatico dei pacchetti aggiornabili.
- AutocleanInterval: giorni per pulire la cache dei pacchetti.
- Unattended-Upgrade: 1 abilita l’esecuzione di unattended-upgrades.
Dopo questa configurazione, gli aggiornamenti di sicurezza verranno scaricati e installati automaticamente secondo le impostazioni.
4 — Verificare i pacchetti aggiornati
Controllare i log di unattended-upgrades
I log si trovano in /var/log/unattended-upgrades. Elenca i file:
cd /var/log/unattended-upgrades
ls -lah
Alt immagine: Elenco dei file di log della cartella /var/log/unattended-upgrades.
I file principali:
- unattended-upgrades-dpkg.log — azioni dpkg (installazioni, rimozioni).
- unattended-upgrades.log — elenco pacchetti, blacklist e messaggi di errore.
- unattended-upgrades-shutdown.log — log relativi al riavvio pianificato.
Esempi di comandi utili:
sudo tail -n 200 /var/log/unattended-upgrades/unattended-upgrades.log
sudo grep "upgrade" /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
Notifiche a login SSH
All’accesso SSH può comparire una notifica che segnala l’esistenza di aggiornamenti o che gli aggiornamenti sono stati appena applicati.
Alt immagine: Messaggio di notifica al login SSH che indica aggiornamenti disponibili.
Alt immagine: Messaggio che conferma la corretta applicazione degli aggiornamenti di sicurezza.
Notifiche via email
Se hai abilitato la mail, controlla /var/mail/root:
cd /var/mail/
cat root
Le email contengono informazioni su pacchetti aggiornati, esclusi e rimossi.
Verifica riavvii
Per vedere gli ultimi riavvii:
last reboot
Questa lista aiuta a verificare se e quando il server è stato riavviato dopo un aggiornamento.
Alt immagine: Output del comando last che mostra i riavvii del sistema prima e dopo gli aggiornamenti.
Procedure operative consigliate (SOP)
- Testare la configurazione su un ambiente di staging identico in versione e pacchetti.
- Abilitare first pass in staging senza riavvio automatico per 2 settimane.
- Abilitare notifica email a un indirizzo di monitoraggio (non solo root).
- Abilitare riavvio automatico solo per server non critici o in finestre di manutenzione.
- Monitorare i log quotidianamente per 7 giorni dopo l’attivazione.
Playbook rapido per sysadmin
- Controllo pre-attivazione:
- Verifica spazio disco:
df -h
. - Verifica servizi critici e dipendenze.
- Verifica spazio disco:
- Attivazione:
- Installare unattended-upgrades.
- Modificare 50unattended-upgrades come sopra.
- Configurare 20auto-upgrades.
- Post-attivazione:
- Verificare log e inviare test email.
- Pianificare backup prima di grandi aggiornamenti.
Checklist per ruoli
- Amministratore di sistema:
- Assicurarsi di avere backup recenti.
- Testare procedure di rollback.
- Responsabile servizio:
- Definire finestre di manutenzione.
- Autorizzare o negare riavvii automatici.
Quando la soluzione fallisce (controesempi)
- Se il server non ha accesso a Internet, i pacchetti non vengono scaricati.
- Se la configurazione di APT è corrotta, unattended-upgrades può fallire.
- Pacchetti non presenti nei canali security non verranno aggiornati (es. backports non abilitati).
- In ambienti con policy di change control rigide, gli aggiornamenti automatici possono violare processi interni.
Approcci alternativi
- gestire aggiornamenti via cron + apt-get upgrade (più manuale e meno sicuro);
- usare strumenti di gestione centralizzata come Landscape o Ansible per orchestrare aggiornamenti;
- Canonical Livepatch per patchare il kernel senza riavvio (utile per kernel critici).
Minimodello decisionale (Mermaid)
flowchart TD
A[Hai backup recenti?] -->|No| B[Esegui backup]
A -->|Sì| C[Ambiente con accesso Internet?]
C -->|No| D[Configura repository interni]
C -->|Sì| E[Abilita unattended-upgrades]
E --> F{Server critico?}
F -->|Sì| G[Disabilita riavvio automatico]
F -->|No| H[Abilita riavvio automatico]
Test e criteri di accettazione
- Criterio 1: unattended-upgrades installato e attivo.
- Test:
systemctl status unattended-upgrades
restituisce active.
- Test:
- Criterio 2: vengono scaricati pacchetti di sicurezza.
- Test:
grep "security" /var/log/unattended-upgrades/unattended-upgrades.log
mostra eventi recenti.
- Test:
- Criterio 3: notifiche email test inviate e ricevute.
- Test: inviare una mail di test e verificare in /var/mail/root.
Troubleshooting comune
- Problema: nessuna mail inviata.
- Controlla che sendmail sia installato e configurato.
- Problema: pacchetti rimossi non previsti.
- Controlla il log unattended-upgrades-dpkg.log per capire perché dpkg ha rimosso pacchetti.
- Problema: aggiornamenti bloccati da dpkg.
- Esegui
sudo dpkg --configure -a
e poisudo apt -f install
.
- Esegui
Sicurezza e hardening
- Mantieni separati gli account con privilegi elevati.
- Limita accesso SSH con chiavi e firewall.
- Tieni aggiornati anche gli strumenti di gestione (Ansible, Puppet, ecc.).
Glossario 1 riga
- unattended-upgrades: pacchetto che applica automaticamente aggiornamenti APT.
- ESM: Extended Security Maintenance, supporto esteso a pagamento per versioni legacy.
Compatibilità e migrazione
Questa guida è specifica per Ubuntu 16.04: su versioni più recenti (18.04, 20.04) la struttura dei file è simile, ma verifica sempre le differenze nella nomenclatura dei repository e nei pacchetti disponibili.
Piccola metodologia (come adottare questa configurazione in un team)
- Documentare la configurazione desiderata in un repo centralizzato di configurazione.
- Eseguire test trimestrali su un gruppo di macchine non critiche.
- Gradualmente estendere l’attivazione a tutti i server dopo 30 giorni di monitoraggio.
Domande frequenti (brevi)
- Posso aggiornare anche gli aggiornamenti non-security? Sì: aggiungi le origini -updates o -backports in Allowed-Origins, ma aumenta il rischio di regressioni.
- Come escludo pacchetti critici? Usa Unattended-Upgrade::Package-Blacklist.
- Come faccio rollback di un aggiornamento? Dipende dal pacchetto: restore da backup o ripristino di snapshot LVM/VM.
Riepilogo
Abbiamo installato e configurato unattended-upgrades per applicare automaticamente gli aggiornamenti di sicurezza su Ubuntu 16.04, abilitando notifiche via email, pulizia dei pacchetti e riavvio automatico opzionale. Sono incluse procedure operative, checklist, troubleshooting e alternative per la gestione centralizzata.
Reference
Materiali simili

Digitare più velocemente con Fleksy sul telefono
Fix PCR7 binding e abilitare crittografia in Windows 11

Ritardare le app di avvio su Mac con DelayedLauncher

Account ospite su Mac: guida rapida e sicura

Scaricare immagini da Google Docs: 6 metodi pratici
