Wie man automatische, rebootlose Kernel-Updates in Linux-Server einrichtet

Das Patchen des Kernels auf einem Linux-Server scheint einfach zu sein. Es kann mit üblichen Werkzeugen wie dpkg, apt-get oder kexec. Diese Methoden werden jedoch kompliziert, wenn eine Organisation Hunderte oder Tausende von Servern betreibt. Viele Server bedeuten mehrere zu patchende Distributionen, von denen jede einzelne die persönliche Aufmerksamkeit eines Systemadministrators oder Ingenieurs erfordert.

Diese manuellen Patching-Methoden sind auch insofern riskant, als sie Neustarts erfordern. Reboots sind mit Serverausfallzeiten verbunden, was immer problematisch ist, daher werden sie normalerweise in Neustart-Zyklen durchgeführt. Da das manuelle Patchen während dieser Zyklen durchgeführt wird, bietet es Hackern ein „Zeitfenster“, in dem sie die Server-Infrastruktur angreifen können.

Für Organisationen, die mehr als nur einige wenige Server betreiben, ist Live-Patching eine bessere Option. Dabei handelt es sich um eine automatisierte Methode, einen Linux-Kernel zu patchen, während der Server läuft, wodurch er sowohl effizienter als auch sicherer ist als manuelle Methoden. Lassen Sie uns lernen, wie man vier der beliebtesten Live-Patching-Systeme von Canonical, Oracle, Red Hat und CloudLinux einrichtet.

Was ist Live-Patching und wie funktioniert es?

Letztendlich gibt es zwei Methoden des Live-Patchens für Kernel und Bibliotheken: temporär und persistent. Die temporäre Methode wendet einen Patch ohne Neustart an, erfordert aber tatsächlich einen späteren Neustart des Servers. Persistentes Live-Patching erfordert keinen Neustart.

Die Temporäre Methode

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

„Stack“-Patching ist gleichbedeutend mit Server-Neustarts und Ausfallzeiten, auch wenn Sie vielleicht 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, wodurch Leistung und Stabilität möglicherweise abnehmen. Die einzige Lösung für dieses Problem ist ein Neustart des Servers, um einen frischen Kernel in den Speicher zu laden.

Die Anbieter, die temporäre Patches zur Verfügung stellen, sind:

Die Persistente Methode

Im Falle eines Persistente MethodeEin Server speichert die neuesten Patches, und diese Patches werden als „monolithisch“ bezeichnet, da sie frühere Patches enthalten. Um die Server zu aktualisieren, läuft im Hintergrund ein Agentenprogramm, 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 Patch-Modul auf und wendet den Patch an.

Persistentes Patching hat weitere wichtige Vorteile:

  • Server, die die persistente Methode verwenden, bleiben auch bei Hardware-Schwachstellen, die normalerweise Neustarts zum Patchen erfordern, wie z.B. Spectre, Kernschmelze und Zombieload;
  • Es reduziert den Zeit- und Arbeitsaufwand für die Verwaltung von Servern durch vollständige Automatisierung des Patching-Prozesses;
  • Sie ermöglicht es, dass Server in Betrieb bleiben, oft für Jahre auf einmal.

Die Methode des dauerhaften Patchens ist in der Regel mit Herstellergebühren verbunden, wobei die meisten Hersteller kostenlose Testzeiträume anbieten:

Einrichten automatischer, rebootloser Kernel-Updates in Linux-Server

Im Folgenden zeigen wir Ihnen, wie Sie rebootlose Kernel-Updates in Linux-Servern unter Verwendung der Dienste Livepatch, Kpatch, Ksplice und KernelCare einrichten.

Hinweis: Bevor Sie mit der Implementierung dieser Anweisungen beginnen, stellen Sie sicher, dass Ihr System auf dem neuesten Stand und gesichert ist.

1. Einrichten des kanonischen Livepatch

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

 

Vorteile: Einfach. Halbautomatisch. Kein Neustart erforderlich.

Kons: 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 einem 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>

Um einen Server zu deregistrieren, verwenden Sie diesen Befehl:

sudo canonical-livepatch disable <your key>

Um den Status des Dienstes zu überprüfen, verwenden Sie diesen Befehl:

sudo canonical-livepatch status --verbose

2. Einrichten von Oracle Ksplice

Wenn Sie keine Instanz von Ksplice innerhalb der Oracle Cloud ausführen, benötigen Sie einen Zugriffsschlüssel für die Installation. Diesen erhalten Sie, indem Sie sich in die Unzerbrechliches Linux-Netzwerkund befolgen Sie die Anweisungen zur Registrierung Ihres Systems für Ksplice.

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

# 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 in diesem Format vorliegen:

[protocol://][username:password@]<host>[:port]
  • Protokoll ist das Protokoll zur Verbindung mit dem Proxy (http oder https)
  • Benutzername und Kennwort sind die Authentifizierungsinformationen, die zur Nutzung Ihres Proxy (falls vorhanden) erforderlich sind.
  • Gastgeber und portieren Sie sind der Hostname/die IP-Adresse und die Port-Nummer, die zur Verbindung mit dem Proxy verwendet werden

Führen Sie die folgenden Anweisungen als root aus und ersetzen Sie IHR_ZUGANG_SCHLÜSSEL mit dem Zugangsschlüssel, den Sie im vorigen Schritt erhalten haben.

Innerhalb der Oracle-Wolke

Um Ksplice innerhalb der Oracle Cloud zu installieren, so dass 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, die Anwendung, die Kernel-Updates automatisch installiert, anzuwenden, führen Sie diesen Befehl aus:

# uptrack-upgrade -y

Wenn Sie Uptrack bereits installiert haben, können Sie es einschalten, indem Sie autoinstall = ja in /etc/uptrack/uptrack.conf nachdem Ksplice installiert ist.

Um Ksplice so zu installieren, dass Aktualisierungen manuell durchgeführt werden, führen Sie diese Befehle aus:

# 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

Um Ksplice so zu installieren, dass Aktualisierungen manuell angewendet werden, führen Sie diese Befehle aus:

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

Anmerkung: 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 werden Sie einen „Fehler bei der Zertifikatsverifizierung“ sehen.

4. Einrichten von Red Hat Kpatch

Die Installation von Kpatch ist einfach und unkompliziert:

Führen Sie den Befehl Aktualisierung Befehl, um Paket-Repositorys zu aktualisieren und die neuesten Paketinformationen zu erhalten:

sudo apt-get update -y

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

sudo apt-get install -y patch

5. Einrichten von CloudLinux KernelCare

Um zu sehen, ob der laufende Kernel von KernelCare unterstützt wird, führen Sie einen dieser Befehle aus:

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

oder

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

Um KernelCare zu installieren, führen Sie einen dieser beiden Befehle aus:

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

SCHLÜSSEL ist der Registrierungsschlüsselcode-String, den Sie erhalten haben, als Sie KernelCare gekauft oder sich für eine kostenlose Testversion angemeldet haben. Sie können einen Schlüssel erhalten hier.

Um einen Server zu deregistrieren, führen Sie ihn aus:

sudo kcarectl --unregister

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

sudo kcarectl --info

KernelCare prüft alle 4 Stunden automatisch auf neue Patches. Um Aktualisierungen manuell statt automatisch durchzuführen, führen Sie sie aus:

/usr/bin/kcarectl –update

Schlussfolgerung

Diese Installationsanweisungen für mehrere Live-Patching-Lösungen führen alle Schritte auf, die für die Installation einer solchen Lösung in Ihrer Umgebung erforderlich sind. Wenn das erledigt ist, werden Sie die Vorteile der Live-Patching-Technologie genießen: Sie können den Kernel aktualisieren, ohne den Server zu stoppen, ohne dass anschließend monate- oder gar jahrelang Neustarts erforderlich sind.

Das könnte dich auch interessieren …