Guida alle tecnologie

Configurare aggiornamenti di sicurezza automatici su CentOS 7

6 min read Sicurezza Linux Aggiornato 17 Oct 2025
Aggiornamenti di sicurezza automatici su CentOS 7
Aggiornamenti di sicurezza automatici su CentOS 7

Introduzione

Gli aggiornamenti di sicurezza sono fondamentali per mantenere un sistema Linux affidabile e ridurre la superficie di attacco. In ambiente CentOS 7 è buona pratica applicare patch di sicurezza entro 30 giorni dalla loro pubblicazione, quando possibile. Questo articolo mostra come automatizzare il processo usando yum-cron, con attenzione a notifiche via email, esclusioni di pacchetti e controlli operativi.

Definizione rapida: yum-cron è un demone che esegue automaticamente comandi yum programmati e può scaricare e applicare aggiornamenti secondo la configurazione.

Cosa tratteremo

  • Installazione di yum-cron su CentOS 7
  • Configurazione per aggiornamenti di sicurezza automatici
  • Esclusione di pacchetti specifici dalle update automatiche
  • Controllo dei log e verifica
  • Controlli di accettazione, rollback e casi limite

Important: serve un server CentOS 7 e privilegi root o sudo.

1. Installare yum-cron su CentOS 7

Yum-cron è disponibile nei repository standard di CentOS 7. Per installarlo e attivarlo eseguire i comandi seguenti come root:

yum -y install yum-cron

Dopo l’installazione avviare il servizio e abilitarlo all’avvio:

systemctl start yum-cron
systemctl enable yum-cron

Verifica lo stato del servizio:

systemctl status yum-cron

Se lo stato è “active (running)”, yum-cron è installato e attivo.

2. Configurare yum-cron per aggiornamenti di sicurezza

Per configurare yum-cron editare il file principale di configurazione:

cd /etc/yum/
vim yum-cron.conf

Nota: potete usare qualsiasi editor (nano, vi, etc.).

Nel file cercare la riga che inizia con update_cmd e impostarla su security per limitare gli aggiornamenti alle patch di sicurezza:

update_cmd = security

Assicuratevi poi che i messaggi siano abilitati e che gli aggiornamenti vengano scaricati e applicati:

update_messages = yes
download_updates = yes
apply_updates = yes

Questo farà sì che, quando sono disponibili aggiornamenti di sicurezza, yum-cron scarichi i pacchetti e li applichi automaticamente.

Schermata di configurazione di Yum-Cron per aggiornamenti automatici

Notifiche via email

yum-cron può inviare notifiche via STDOUT o email. Per usare l’email impostare emit_via su email e configurare i campi email_from, email_to e email_host:

emit_via = email
email_from = root@hakase-labs
email_to = [email protected]
email_host = hakase-labs

Schermata configurazione email

Dopo le modifiche riavviare il servizio:

systemctl restart yum-cron

Da questo momento, yum-cron eseguirà quotidianamente il controllo e l’applicazione degli aggiornamenti di sicurezza.

Suggerimento operativo: usare un indirizzo email monitorato (ticket system o mailing list di ops) per garantire che gli avvisi non vengano ignorati.

3. Escludere pacchetti dalle update automatiche

In alcune situazioni potrebbe essere necessario escludere pacchetti (per es. kernel personalizzati, DB specifici, driver proprietari). Per farlo editare di nuovo yum-cron.conf e aggiungere nella sezione [base] la direttiva exclude con i nomi dei pacchetti:

cd /etc/yum/
vim yum-cron.conf

Sotto la sezione [base] aggiungete:

exclude = mysql* kernel*

Questo impedirà l’aggiornamento automatico dei pacchetti che corrispondono ai pattern indicati. Dopo aver salvato il file riavviare yum-cron:

systemctl restart yum-cron

Schermata esclusione pacchetti

Nota: l’esclusione impedisce l’aggiornamento automatico ma non blocca aggiornamenti manuali eseguiti con yum.

4. Verificare i log di yum-cron

I log dei job sono disponibili nella directory /var/log. Per vedere le voci correlate a yum-cron:

cd /var/log/
cat cron | grep yum-daily

Per vedere i singoli pacchetti aggiornati consultare yum.log:

cat yum.log | grep Updated

Per un monitoraggio in tempo reale potete usare tail:

tail -f /var/log/yum.log

Controlli di accettazione e test

Esempi di test per assicurare che la configurazione funzioni:

  • Il servizio yum-cron è attivo: systemctl status yum-cron deve mostrare “active (running)”.
  • Dopo un giorno verificare che nei log siano presenti voci di download/apply per aggiornamenti di sicurezza.
  • Ricevere email di notifica quando emit_via è impostato su email.
  • I pacchetti esclusi non compaiono nelle voci “Updated” di yum.log.

Esempio di comando per simulare un controllo manuale degli aggiornamenti di sicurezza:

yum updateinfo list security

Questo mostra le advisory di sicurezza disponibili; l’effettiva applicazione avverrà tramite yum-cron.

Procedura di rollback e piano di emergenza

Se un aggiornamento causa problemi, usare la cronologia di yum per annullare le operazioni più recenti:

yum history
# identificare l'ID della transazione problematica
yum history undo 

Passaggi rapidi in caso di malfunzionamento dopo un aggiornamento automatico:

  1. Isolare il servizio impattato (stop, mettere in maintenance).
  2. Controllare yum.log e cron log per identificare la transazione.
  3. Eseguire yum history undo per ripristinare i pacchetti coinvolti.
  4. Riavviare i servizi e validare le funzionalità critiche.

Note: non sempre è possibile un rollback pulito (es. modifiche a schema DB). Per applicazioni critiche usare test pre-deploy o ambienti di staging.

Quando questa soluzione potrebbe non funzionare

  • Server senza accesso a Internet o con repository locali non aggiornati: yum-cron non potrà scaricare aggiornamenti.
  • Metadata di sicurezza non forniti dal repository: impostare update_cmd = security dipende dalle informazioni fornite dal repo.
  • Sistemi che richiedono reboot per completare la patch (kernel, librerie di basso livello): yum-cron applica i pacchetti ma non effettua reboot automatici per default.
  • Ambienti che necessitano di processi di change control: l’applicazione automatica potrebbe violare policy di conformità.

Alternative e approcci complementari

  • Usare strumenti di orchestrazione (Ansible, Salt, Puppet) per orchestrare roll-out controllati e verificati.
  • Soluzioni enterprise: Red Hat Satellite, Spacewalk o Katello per gestione centralizzata dei repository e dei patch.
  • Per distribuzioni basate su Debian/Ubuntu, lo strumento equivalente è unattended-upgrades.

Scegliere l’approccio in base a: livello di automazione desiderato, requisiti di conformità e capacità di rollback.

Modelli mentali e buone pratiche

  • Ridurre la finestra di esposizione: applicare patch rapidamente ma con controllo.
  • Separare download da deployment quando serve: scaricare automaticamente ma applicare con approvazione per sistemi critici.
  • Notifiche e audit: mantenere traccia di cosa è stato aggiornato e chi/come è stato informato.

Lista di controllo per ruoli

Amministratore di sistema:

  • Verificare che yum-cron sia installato e abilitato.
  • Configurare email di notifica e testare l’invio.
  • Definire pacchetti da escludere e documentare le ragioni.

DevOps/Team applicativo:

  • Validare l’impatto delle patch in staging.
  • Pianificare i reboot necessari e sincronizzarli con gli aggiornamenti.

Compliance/Security:

  • Assicurarsi che le policy di patching siano rispettate.
  • Conservare i log e le notifiche per audit.

Sicurezza e hardening operativi

  • Usare un server SMTP autenticato/TLS per l’invio di email di notifica.
  • Limitare i repository abilitati a quelli fidati e firmati.
  • Monitorare le email di yum-cron con un sistema di ticketing per evitare allarmi persi.

Glossario breve

  • yum-cron: demone che esegue automaticamente comandi yum pianificati.
  • update_cmd: direttiva che indica il tipo di aggiornamento (default, minimal, security).
  • exclude: direttiva per escludere pacchetti dalle update automatiche.

Riepilogo

  • Installare yum-cron, impostare update_cmd = security, abilitare download_updates e apply_updates.
  • Configurare notifiche via email e testare la ricezione.
  • Escludere pacchetti critici e documentare le esclusioni.
  • Monitorare i log e avere un piano di rollback pronto.

Importante: verificare la strategia di patching in funzione dei requisiti di business, della conformità e dei tempi di manutenzione.

Risorse utili

  • Documentazione ufficiale di CentOS e forum della community.

Riferimenti

Autore
Redazione

Materiali simili

Installare BIKA LIMS Inkosi su Ubuntu in 15 min
Guide tecniche

Installare BIKA LIMS Inkosi su Ubuntu in 15 min

Massimizzare la batteria dell'iPhone con l'ultimo iOS
Smartphone

Massimizzare la batteria dell'iPhone con l'ultimo iOS

Correggere errore 0x800F0909 in Windows 11
Troubleshooting

Correggere errore 0x800F0909 in Windows 11

Gestire più launcher Unity con launcher-list-indicator
Desktop Linux

Gestire più launcher Unity con launcher-list-indicator

Correggere errore 0x8007025D in Windows 10
Windows

Correggere errore 0x8007025D in Windows 10

Risolvi: Nessun dispositivo di uscita audio installato
Windows

Risolvi: Nessun dispositivo di uscita audio installato