Ricerca nel sito web

Come configurare gli aggiornamenti automatici del kernel senza riavvio nel server Linux


Su questa pagina

  1. Cos'è il live patching e come funziona
  2. Imposta gli aggiornamenti automatici del kernel senza riavvio nel server Linux

Patchare il kernel su un server Linux sembra semplice. Può essere fatto usando strumenti comuni come dpkg, apt-get o kexec. Questi metodi, tuttavia, diventano complicati se un'organizzazione esegue centinaia o migliaia di server. Molti server significano più distribuzioni da correggere, ognuna delle quali richiede l'attenzione personale di un amministratore di sistema o di un ingegnere.

Questi metodi di applicazione manuale delle patch sono anche rischiosi in quanto richiedono il riavvio. I riavvii comportano tempi di inattività del server, il che è sempre problematico, quindi di solito vengono eseguiti in cicli di riavvio. Poiché l'applicazione manuale di patch viene eseguita durante questi cicli, fornisce agli hacker una \finestra temporale in cui possono attaccare l'infrastruttura del server.

Per le organizzazioni che eseguono più di pochi server, l'applicazione di patch in tempo reale è un'opzione migliore. È un modo automatizzato per applicare patch a un kernel Linux mentre il server è in esecuzione, il che gli consente di essere più efficiente e più sicuro rispetto ai metodi manuali. Impariamo come configurare quattro dei sistemi di patch live più popolari di Canonical, Oracle, Red Hat e CloudLinux.

Che cos'è il live patching e come funziona

In definitiva, ci sono due metodi di live patching per kernel e librerie: temporaneo e persistente. Il metodo temporaneo applica una patch senza riavviare, ma in realtà richiede il riavvio del server in un secondo momento. Le patch live persistenti non richiedono il riavvio.

Il metodo provvisorio

Il metodo temporaneo (o patch \stack) viene eseguito con il software di gestione dei pacchetti (come il plug-in YUM). Le patch vengono consegnate ai repository e applicate in base ai flussi di lavoro di aggiornamento specificati dall'utente.

Le patch \stack equivalgono a riavvii del server e tempi di inattività, anche se potresti non aver bisogno di un riavvio subito dopo aver installato la patch, ma a causa dell'architettura di questo tipo di aggiornamenti in tempo reale, le patch di sicurezza si accumulano l'una sull'altra nel tempo , riducendo potenzialmente le prestazioni e la stabilità.L'unica soluzione a questo problema è riavviare il server per caricare un nuovo kernel in memoria.

I fornitori che forniscono patch temporanee sono:

  • Livepatch canonico
  • kGraph
  • Patch live del kernel Amazon Linux 2

Il metodo persistente

Nel caso di un metodo persistente, un server memorizza le patch più recenti e queste patch sono chiamate monolitiche in quanto contengono patch precedenti. Per aggiornare i server, un programma agente viene eseguito in background, controllando il server delle patch per le patch. Se c'è una patch per un kernel sul patch server, l'agente chiama il modulo di patching e applica la patch.

Il patching persistente presenta altri importanti vantaggi:

  • I server che utilizzano il metodo persistente rimangono attivi e funzionanti anche con vulnerabilità hardware che di solito richiedono il riavvio per la correzione, come Spectre, Meltdown e Zombieload;
  • Riduce il tempo e lo sforzo necessari per amministrare i server grazie all'automazione completa del processo di applicazione delle patch;
  • Consente ai server di rimanere attivi e funzionanti, spesso per anni alla volta.

Il metodo di patch persistente di solito comporta commissioni del fornitore, con periodi di prova gratuiti disponibili dalla maggior parte dei fornitori:

  • Ksplice
  • Kpatch
  • KernelCare

Imposta gli aggiornamenti automatici del kernel senza riavvio nel server Linux

Di seguito ti mostreremo come configurare gli aggiornamenti del kernel senza riavvio nel server Linux utilizzando i servizi Livepatch, Kpatch, Ksplice e KernelCare.

Nota: prima di iniziare a implementare queste istruzioni, assicurati che il tuo sistema sia aggiornato e che sia stato eseguito il backup.

1. Configurazione di Canonical Livepatch

Canonical Livepatch Service può essere configurato durante o dopo l'installazione. Installerà le patch di sicurezza del kernel solo quando si esegue il comando apt-get upgrade (quindi, semi-automatico).

Pro: Semplice. Semiautomatico. Nessun riavvio necessario.

Contro: Costoso per 4 o più host (ma gratuito fino a 3 host per tutti e fino a 50 macchine se sei un membro della Comunità Ubuntu). Nessun rollback della patch.

Tariffe, per server: mensile (non disponibile), annuale ($225).

Per installare Livepatch su Ubuntu 20.04 LTS Server (funziona anche sulle versioni 16.04 LTS, 14.04 LTS e 18.04 LTS), apri un terminale ed esegui questi due comandi:

sudo snap install canonical-livepatch
sudo canonical-livepatch enable <your key>

Per annullare la registrazione di un server, utilizzare questo comando:

sudo canonical-livepatch disable <your key>

Per verificare lo stato del servizio, utilizzare questo comando:

sudo canonical-livepatch status --verbose

2. Configurazione di Oracle Ksplice

A meno che tu non stia eseguendo un'istanza di Ksplice all'interno di Oracle Cloud, avrai bisogno di una chiave di accesso per installarla. Questo può essere ottenuto accedendo a Unbreakable Linux Network e seguendo le istruzioni per registrare il tuo sistema per Ksplice.

Per installare Ksplice, il tuo sistema deve avere accesso a Internet. Se stai usando un proxy, imposta il proxy nella tua shell:

# export http_proxy=http://proxy.example.com:port
# export https_proxy=http://proxy.example.com:port

Il proxy deve supportare la creazione di connessioni HTTPS e la stringa del proxy deve essere in questo formato:

[protocol://][username:]<host>[:port]

  • protocol è il protocollo per connettersi al proxy (http o https)
  • nome utente e password sono le informazioni di autenticazione necessarie per utilizzare il tuo proxy (se presente).
  • host e porta sono il nome host/l'indirizzo IP e il numero di porta utilizzati per connettersi al proxy

Esegui le seguenti istruzioni come root, sostituendo YOUR_ACCESS_KEY con la chiave di accesso che hai ricevuto nel passaggio precedente.

All'interno di Oracle Cloud

Per installare Ksplice all'interno di Oracle Cloud in modo che gli aggiornamenti del kernel vengano installati automaticamente, eseguire questi comandi:

# wget -N https://ksplice.oracle.com/uptrack/install-uptrack-oc
# sh install-uptrack-oc --autoinstall

Per applicare gli aggiornamenti disponibili a Uptrack, l'applicazione che installa automaticamente gli aggiornamenti del kernel, eseguire questo comando:

# uptrack-upgrade -y

Se hai già installato Uptrack, puoi attivarlo impostando autoinstall=yes in /etc/uptrack/uptrack.conf dopo aver installato Ksplice.

Per installare Ksplice in modo che gli aggiornamenti vengano applicati manualmente, esegui questi comandi:

# wget -N https://ksplice.oracle.com/uptrack/install-uptrack-oc
# sh install-uptrack-oc

Al di fuori di Oracle Cloud

Per installare Ksplice all'esterno di Oracle Cloud in modo che gli aggiornamenti del kernel vengano installati automaticamente, eseguire questi comandi:

# wget -N https://ksplice.oracle.com/uptrack/install-uptrack
# sh install-uptrack YOUR_ACCESS_KEY --autoinstall

Per installare Ksplice in modo che gli aggiornamenti vengano applicati manualmente, esegui questi comandi:

# wget -N https://ksplice.oracle.com/uptrack/install-uptrack
# sh install-uptrack YOUR_ACCESS_KEY

Nota: se stai installando Ksplice su un server Debian o Ubuntu, potresti dover prima installare il pacchetto ca-certificates con apt-get install ca-certificates. Senza questo pacchetto, vedrai un \errore di verifica del certificato.

4. Configurazione di Red Hat Kpatch

L'installazione di Kpatch è semplice e immediata:

Esegui il comando update per aggiornare i repository dei pacchetti e ottenere le ultime informazioni sui pacchetti:

sudo apt-get update -y

Eseguire il comando install con il flag -y per installare rapidamente i pacchetti e le dipendenze:

sudo apt-get install -y patch

5. Configurazione di CloudLinux KernelCare

Per vedere se il kernel in esecuzione è supportato da KernelCare, esegui uno di questi comandi:

curl -s -L https://kernelcare.com/checker | python

o

wget -qq -O – https://kernelcare.com/checker | python

Per installare KernelCare, esegui uno di questi comandi:

curl -s -L https://kernelcare.com/installer | bash

o:

wget -qq -O - https://kernelcare.com/installer | bash

Se utilizzi una licenza basata su IP, non è richiesto nient'altro. Se stai utilizzando una licenza basata su chiave, esegui questo comando:

$ /usr/bin/kcarectl --register KEY

KEY è la stringa del codice chiave di registrazione che hai ricevuto quando hai acquistato KernelCare o ti sei registrato per una prova gratuita. Puoi prendere una chiave qui.

Per annullare la registrazione di un server, eseguire:

sudo kcarectl --unregister

Per verificare lo stato del servizio, eseguire:

sudo kcarectl --info

KernelCare verifica automaticamente la presenza di nuove patch ogni 4 ore. Per eseguire gli aggiornamenti manualmente anziché automaticamente, eseguire:

/usr/bin/kcarectl –update

Conclusione

Queste istruzioni di installazione per diverse soluzioni di patch live elencano tutti i passaggi necessari per installarne una nel proprio ambiente. Una volta fatto ciò, godrai dei vantaggi della tecnologia di patch live: essere in grado di aggiornare il kernel senza arrestare il server, senza successivi riavvii necessari per mesi o addirittura anni.