Segnalo che con Ksplice (ora Oracle) è possibile applicare gli aggiornamenti di sicurezza (in particolare quelli del kernel) senza dover riavviare. Un’opportunità davvero interessante per tutti i server che devono mantenere un certo uptime e che, di conseguenza, non possono essere riavviati facilmente. Il servizio è disponibile a pagamento per le versioni di Ubuntu server, mentre è gratuito per le versioni desktop. Ecco come installarlo:
- Richiedere una chiave di accesso che vi verrà recapitata via email
- Loggatevi come utente root, e create il file
/etc/apt/sources.list.d/ksplice.list
- Incollate nel file le seguenti direttive che servono ad aggiungere le sorgenti dei pacchetti da installare:
deb https://www.ksplice.com/apt oneiric ksplice
deb-src https://www.ksplice.com/apt oneiric ksplice
- Lanciate i seguenti comandi, che servono ad installare i pacchetti di Ksplice:
apt-get install ca-certificates
wget -N https://www.ksplice.com/apt/ksplice-archive.asc
apt-key add ksplice-archive.asc
apt-get update
apt-get install uptrack
- Modificate il file
/etc/uptrack/uptrack.conf
impostando l’opzioneautoinstall
al valoreyes
- Lanciate il comando
uptrack-upgrade -y
Tutti gli updates di sicurezza del kernel verranno quindi installati automaticamente, senza dover riavviare. Comodo, vero? Dal 2005 al 2008, Ksplice ha applicato con successo 64 patch senza dover riavviare.
Per i più curiosi: come funziona Ksplice? Il segreto sta nel fatto che Ksplice aggiorna dinamicamente il kernel, direttamente in memoria, grazie ad un confronto sugli oggetti ELF allocati in memoria. Questo processo è di per sé rischioso e deve essere fatto con la massima attenzione: prima di fare un patch “a caldo” di un oggetto, viene freezata l’esecuzione del processo che accede a tale oggetto, sostituita la chiamata ai vecchi oggetti con la chiamata ai nuovi oggetti, e viene quindi ripresa l’esecuzione.