GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So richten Sie automatische Kernel-Updates ohne Neustart auf einem Linux-Server ein

Das Patchen des Kernels auf einem Linux-Server scheint einfach zu sein. Dies kann mit gängigen Tools wie dpkg, apt-get oder kexec erfolgen. Diese Methoden werden jedoch kompliziert, wenn eine Organisation Hunderte oder Tausende von Servern betreibt. Viele Server erfordern mehrere zu patchende Distributionen, von denen jede die persönliche Aufmerksamkeit eines Systemadministrators oder Technikers erfordert.

Diese manuellen Patch-Methoden sind auch riskant, da sie Neustarts erfordern. Neustarts beinhalten Serverausfallzeiten, was immer problematisch ist, daher werden sie normalerweise in Neustartzyklen durchgeführt. Da das manuelle Patchen während dieser Zyklen erfolgt, bietet es Hackern ein „Zeitfenster“, in dem sie die Serverinfrastruktur angreifen können.

Für Organisationen, die mehr als ein paar Server betreiben, ist Live-Patching die bessere Option. Es ist eine automatisierte Möglichkeit, einen Linux-Kernel zu patchen, während der Server läuft, wodurch es sowohl effizienter als auch sicherer ist als manuelle Methoden. Lassen Sie uns lernen, wie Sie vier der beliebtesten Live-Patching-Systeme von Canonical, Oracle, Red Hat und CloudLinux einrichten.

Was ist Live-Patching und wie es funktioniert

Letztendlich gibt es zwei Methoden des Live-Patchings für Kernel und Bibliotheken:temporär und dauerhaft. Die temporäre Methode wendet einen Patch ohne Neustart an, erfordert jedoch später einen Neustart des Servers. Dauerhaftes Live-Patching erfordert keinen Neustart.

Die temporäre Methode

Die temporäre Methode (oder „Stack“-Patching) wird mit einer Paketverwaltungssoftware (z. B. dem YUM-Plug-in) ausgeführt. Patches werden an Repositorys geliefert und gemäß den vom Benutzer festgelegten Update-Workflows angewendet.

„Stack“-Patching entspricht Serverneustarts und Ausfallzeiten, auch wenn Sie möglicherweise keinen Neustart direkt nach der Installation des Patches benötigen, aber aufgrund der Architektur dieser Art von Live-Updates stapeln sich die Sicherheitspatches im Laufe der Zeit übereinander. potenziell abnehmende Leistung und Stabilität. Die einzige Lösung für dieses Problem besteht darin, den Server neu zu starten, um einen frischen Kernel in den Speicher zu laden.

Die Anbieter, die temporäre Patches anbieten, sind:

  • Kanonischer Livepatch
  • kGraph
  • Amazon Linux 2-Kernel-Live-Patch 

Die dauerhafte Methode

Bei einer dauerhaften Methode speichert ein Server die neuesten Patches und diese Patches werden als „monolithisch“ bezeichnet, da sie frühere Patches enthalten. Um die Server zu aktualisieren, wird im Hintergrund ein Agentenprogramm ausgeführt, das den Patch-Server auf Patches überprüft. Wenn auf dem Patch-Server ein Patch für einen Kernel vorhanden ist, ruft der Agent das Patching-Modul auf und wendet den Patch an.

Persistentes Patchen hat weitere wichtige Vorteile: 

  • Server, die die persistente Methode verwenden, bleiben auch bei Hardware-Schwachstellen betriebsbereit, für deren Behebung normalerweise Neustarts erforderlich sind, wie z. B. Spectre, Meltdown und Zombieload;
  • Es reduziert den Zeit- und Arbeitsaufwand für die Verwaltung von Servern durch vollständige Automatisierung des Patching-Prozesses;
  • Es ermöglicht Servern, oft über Jahre am Laufen zu bleiben.

Die permanente Patching-Methode beinhaltet normalerweise Anbietergebühren, wobei bei den meisten Anbietern kostenlose Testzeiträume verfügbar sind:

  • Ksplice
  • Kpatch
  • KernelCare

Richten Sie automatische Kernel-Updates ohne Neustart auf dem Linux-Server ein

Im Folgenden zeigen wir Ihnen, wie Sie Kernel-Updates ohne Neustart auf einem Linux-Server mit den Diensten Livepatch, Kpatch, Ksplice und KernelCare einrichten.

Hinweis:Bevor Sie mit der Umsetzung dieser Anweisungen beginnen, vergewissern Sie sich, dass Ihr System auf dem neuesten Stand und gesichert ist.

1. Canonical Livepatch einrichten

Der Canonical Livepatch Service kann entweder während oder nach der Installation eingerichtet werden. Kernel-Sicherheitspatches werden nur installiert, wenn Sie den Befehl apt-get upgrade ausführen (daher halbautomatisch).

Vorteile: Einfach. Halbautomatisch. Kein Neustart erforderlich.

Nachteile: Teuer für 4 oder mehr Hosts (aber kostenlos bis zu 3 Hosts für alle und bis zu 50 Maschinen, wenn Sie Mitglied der Ubuntu-Community sind). Kein Patch-Rollback.

Gebühren pro Server: Monatlich (nicht verfügbar), jährlich ($225).

Um Livepatch auf Ubuntu 20.04 LTS Server zu installieren (funktioniert auch auf den Versionen 16.04 LTS, 14.04 LTS und 18.04 LTS), öffnen Sie ein Terminal und führen Sie diese beiden Befehle aus: 

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

Verwenden Sie diesen Befehl, um einen Server abzumelden: 

sudo canonical-livepatch disable <your key>

Verwenden Sie diesen Befehl, um den Status des Dienstes zu prüfen: 

sudo canonical-livepatch status --verbose

2. Einrichten von Oracle Ksplice

Sofern Sie keine Instanz von Ksplice in der Oracle Cloud ausführen, benötigen Sie einen Zugriffsschlüssel, um sie zu installieren. Diese erhalten Sie, indem Sie sich beim Unbreakable Linux Network anmelden und den Anweisungen zur Registrierung Ihres Systems für Ksplice folgen.

Um Ksplice zu installieren, muss Ihr System Zugang zum Internet haben. Wenn Sie einen Proxy verwenden, legen Sie den Proxy in Ihrer Shell fest:

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

Der Proxy muss das Herstellen von HTTPS-Verbindungen unterstützen, und die Proxy-Zeichenfolge sollte folgendes Format haben:

[protocol://][username:[email protected]]<host>[:port]
  • Protokoll ist das Protokoll zur Verbindung mit dem Proxy (http oder https)
  • Benutzername und Passwort sind die Authentifizierungsinformationen, die für die Verwendung Ihres Proxys (falls vorhanden) erforderlich sind.
  • Host und Port sind Hostname/IP-Adresse und Portnummer, die für die Verbindung zum Proxy verwendet werden

Führen Sie die folgenden Anweisungen als Root aus und ersetzen Sie YOUR_ACCESS_KEY durch den Zugriffsschlüssel, den Sie im vorherigen Schritt erhalten haben.

Innerhalb der Oracle Cloud

Um Ksplice in der Oracle Cloud zu installieren, damit Kernel-Updates automatisch installiert werden, führen Sie diese Befehle aus: 

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

Um verfügbare Updates auf Uptrack anzuwenden, die Anwendung, die Kernel-Updates automatisch installiert, führen Sie diesen Befehl aus:

# uptrack-upgrade -y

Wenn Sie Uptrack bereits installiert haben, können Sie es aktivieren, indem Sie autoinstall =yes in /etc/uptrack/uptrack.conf einstellen, nachdem Ksplice installiert wurde.

Führen Sie die folgenden Befehle aus, um Ksplice so zu installieren, dass Updates manuell angewendet werden: 

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

Außerhalb der Oracle Cloud

Um Ksplice außerhalb der Oracle Cloud zu installieren, damit Kernel-Updates automatisch installiert werden, führen Sie diese Befehle aus: 

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

Führen Sie die folgenden Befehle aus, um Ksplice so zu installieren, dass Updates manuell angewendet werden: 

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

Hinweis:Wenn Sie Ksplice auf einem Debian- oder Ubuntu-Server installieren, müssen Sie möglicherweise zuerst die ca-Zertifikate Paket mit apt-get install ca-zertifikate. Ohne dieses Paket sehen Sie einen „Zertifikatsverifizierungsfehler.“

4. Einrichten von Red Hat Kpatch

Die Installation von Kpatch ist einfach und unkompliziert:

Führen Sie den Update-Befehl aus, um Paket-Repositories zu aktualisieren und die neuesten Paketinformationen abzurufen:

sudo apt-get update -y

Führen Sie den Installationsbefehl mit dem Flag -y aus, um die Pakete und Abhängigkeiten schnell zu installieren:

sudo apt-get install -y patch

5. CloudLinux KernelCare einrichten

Führen Sie einen der folgenden Befehle aus, um festzustellen, ob der laufende Kernel von KernelCare unterstützt wird:

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

oder

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

Führen Sie einen der folgenden Befehle aus, um KernelCare zu installieren:

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

oder:

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

Wenn Sie eine IP-basierte Lizenz verwenden, ist nichts weiter erforderlich. Wenn Sie eine schlüsselbasierte Lizenz verwenden, führen Sie diesen Befehl aus:

$ /usr/bin/kcarectl --register KEY

KEY ist die Registrierungsschlüsselcode-Zeichenfolge, die Sie erhalten haben, als Sie KernelCare gekauft oder sich für eine kostenlose Testversion angemeldet haben. Einen Schlüssel erhalten Sie hier.

Um einen Server abzumelden, führen Sie Folgendes aus:

sudo kcarectl --unregister

Um den Status des Dienstes zu überprüfen, führen Sie Folgendes aus:

sudo kcarectl --info

KernelCare sucht automatisch alle 4 Stunden nach neuen Patches. Führen Sie Folgendes aus, um Aktualisierungen manuell statt automatisch durchzuführen:

/usr/bin/kcarectl –update

Schlussfolgerung

Diese Installationsanweisungen für mehrere Live-Patching-Lösungen führen alle Schritte auf, die zur Installation einer Lösung in Ihrer Umgebung erforderlich sind. Sobald dies erledigt ist, genießen Sie die Vorteile der Live-Patching-Technologie:Sie können den Kernel aktualisieren, ohne den Server anzuhalten, ohne dass monate- oder sogar jahrelang ein Neustart erforderlich ist.

 


Linux
  1. Wie man automatische Updates auf Debian einrichtet

  2. So aktualisieren Sie den Kernel auf dem Linux-Desktop

  3. So richten Sie einen SFTP-Server unter Arch Linux ein

  4. So richten Sie einen Wekan Kanban-Server unter Linux ein

  5. So richten Sie einen Linux-Server als Router mit NAT ein

So richten Sie den Pritunl VPN-Server unter Rocky Linux 8 ein

So legen Sie den Hostnamen unter Linux fest oder ändern ihn

So richten Sie automatische Kernel-Updates unter Linux ein

So richten Sie einen TeamSpeak-Server unter CentOS 7 ein

So richten Sie einen Rsync-Daemon auf Ihrem Linux-Server ein

So richten Sie eine Firewall auf Ihrem Linux-Server ein