GNU/Linux >> Linux Esercitazione >  >> Linux

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

L'applicazione di patch al 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 patchare, ognuna delle quali richiede l'attenzione personale di un amministratore di sistema o di un tecnico.

Questi metodi di patch manuale sono anche rischiosi in quanto richiedono il riavvio. I riavvii comportano tempi di inattività del server, che sono sempre problematici, quindi di solito vengono eseguiti in cicli di riavvio. Poiché l'applicazione manuale delle patch viene eseguita durante questi cicli, fornisce agli hacker una "finestra di tempo" 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 correggere un kernel Linux mentre il server è in esecuzione, il che gli consente di essere sia più efficiente che più sicuro rispetto ai metodi manuali. Impariamo come configurare quattro dei più popolari sistemi di patch live di Canonical, Oracle, Red Hat e CloudLinux.

Cos'è il live patch e come funziona

In definitiva, ci sono due metodi per applicare patch in tempo reale per kernel e librerie:temporaneo e persistente. Il metodo temporaneo applica una patch senza un riavvio, ma in realtà richiede il riavvio del server in un secondo momento. L'applicazione di patch live persistenti non richiede il riavvio.

Il metodo temporaneo

Il metodo temporaneo (o patching "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 al riavvio del server e ai tempi di inattività, anche se potrebbe non essere necessario 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, prestazioni e stabilità potenzialmente decrescenti. L'unica soluzione a questo problema è riavviare il server per caricare un nuovo kernel in memoria.

I fornitori che forniscono patch temporanee sono:

  • Patch live canonico
  • kGraph
  • Applicazione delle 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" poiché contengono le patch precedenti. Per aggiornare i server, un programma agente viene eseguito in background, controllando la presenza di patch nel server delle patch. Se è presente una patch per un kernel sul server di patch, l'agente chiama il modulo di patch e applica la patch.

L'applicazione di patch persistenti 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 essere patchate, come Spectre, Meltdown e Zombieload;
  • Riduce il tempo e lo sforzo necessari per amministrare i server completando l'automazione del processo di patching;
  • Consente ai server di rimanere operativi, spesso per anni.

Il metodo di patch persistente di solito prevede tariffe del fornitore, con periodi di prova gratuiti disponibili presso la maggior parte dei fornitori:

  • Ksplice
  • Kpatch
  • KernelCare

Configura gli aggiornamenti automatici del kernel senza riavvio nel server Linux

Di seguito ti mostreremo come impostare 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 di cui sia stato eseguito il backup.

1. Configurazione di Livepatch canonico

Il servizio Canonical Livepatch può essere impostato durante o dopo l'installazione. Installerà le patch di sicurezza del kernel solo quando esegui il comando apt-get upgrade (quindi semiautomatico).

Pro: Semplice. Semiautomatico. Nessun riavvio necessario.

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

Commissioni, 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, utilizza questo comando: 

sudo canonical-livepatch disable <your key>

Per verificare lo stato del servizio, utilizza 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 proxy deve essere in questo formato:

[protocol://][username:[email protected]]<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.

Dentro Oracle Cloud

Per installare Ksplice all'interno di Oracle Cloud in modo che gli aggiornamenti del kernel vengano installati automaticamente, esegui 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, esegui 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 al di fuori di Oracle Cloud in modo che gli aggiornamenti del kernel vengano installati automaticamente, esegui 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, potrebbe essere necessario prima installare il ca-certifica pacchetto con apt-get install ca-certificati. Senza questo pacchetto, vedrai un "errore di verifica del certificato".

4. Configurazione di Red Hat Kpatch

L'installazione di Kpatch è semplice e diretta:

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

sudo apt-get update -y

Esegui 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

oppure:

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

Se stai utilizzando una licenza basata su IP, non è necessario 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 ottenere una chiave qui.

Per annullare la registrazione di un server, esegui:

sudo kcarectl --unregister

Per controllare lo stato del servizio, esegui:

sudo kcarectl --info

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

/usr/bin/kcarectl –update

Conclusione

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

 


Linux
  1. Come aggiornare il kernel su desktop Linux

  2. Come configurare un server SFTP su Arch Linux

  3. Come configurare server e client NFS su Rocky/Alma Linux 8

  4. Come configurare VSFTPD su CentOS 8

  5. Come configurare un server Wekan Kanban su Linux

Come configurare il server VPN Pritunl su Rocky Linux 8

Come impostare o modificare il nome host su Linux

Come impostare gli aggiornamenti automatici del kernel su Linux

Come configurare un server TeamSpeak su CentOS 7

Come configurare un demone Rsync sul tuo server Linux

Come configurare un firewall sul tuo server Linux