Zum Inhalt springenZur Seitennavigation springen: vorherige Seite [Zugriffstaste p]/nächste Seite [Zugriffstaste n]
documentation.suse.com / SUSE Linux Enterprise Server-Dokumentation / Verwaltungshandbuch / Häufige Tasks / Live-Kernel-Patching mit KLP
Gilt für SUSE Linux Enterprise Server 15 SP5

11 Live-Kernel-Patching mit KLP

In diesem Dokument werden die Grundlagen der Kernel Live Patching-Technologie (KLP) erläutert und Sie finden hier Richtlinien für den SLE Live Patching-Dienst.

Mit KLP können die neuesten Sicherheitsaktualisierungen ohne Neustart auf Linux-Kernel angewendet werden. So erzielen Sie die maximale Betriebszeit und Verfügbarkeit des Systems, was insbesondere bei unternehmenswichtigen Systemen von Bedeutung ist.

Die Angaben in diesem Dokument gelten für die AMD64/Intel 64-, POWER- und IBM Z-Architekturen.

11.1 Vorteile des Kernel Live Patching

KLP bietet mehrere Vorteile.

  • Wenn Unternehmen bestimmte Compliance-Zertifizierungen beantragen oder beibehalten möchten, sind sie darauf angewiesen, eine große Anzahl an Servern automatisch auf dem neuesten Stand zu halten. KLP kann dazu beitragen, die Compliance zu erzielen und gleichzeitig den Bedarf an kostspieligen Wartungsfenstern zu senken.

  • Unternehmen, die mit SLA-Verträgen arbeiten, müssen eine definierte Verfügbarkeit und Betriebszeit garantieren. Mit Live Patching ist es möglich, Systeme ohne Ausfallzeiten zu patchen.

  • KLP ist Teil des standardmäßigen Systemaktualisierungsmechanismus, sodass keine besondere Schulung oder Einführung komplizierter Wartungsroutinen anfällt.

11.2 Überblick über Kernel Live Patching

Kernel-Live-Patches werden in Form von Paketen mit modifiziertem Code bereitgestellt, die vom Kernel-Hauptpaket getrennt sind. Die Live-Patches sind kumulativ; der jeweils neueste Patch enthält also alle Fehlerbehebungen aus den vorhergehenden Patches für das Kernel-Paket. Jedes Kernel-Live-Paket ist an die genaue Kernel-Version gebunden, für die es ausgegeben wird. Die Versionsnummer des Live-Patch-Pakets erhöht sich bei jedem Hinzufügen von Fehlerbehebungen.

Wichtig
Wichtig: Live-Patches im Vergleich zu Kernel-Aktualisierungen

Live-Patches enthalten lediglich kritische Fehlerbehebungen und ersetzen nicht die regulären Kernel-Aktualisierungen, für die ein Neustart erforderlich ist. Live-Patches sind quasi vorübergehende Maßnahmen zum Schutz des Kernels, bis eine ordnungsgemäße Kernel-Aktualisierung und ein Neustart durchgeführt werden.

Das nachfolgende Diagramm zeigt die Beziehungen zwischen Live-Patches und Kernel-Aktualisierungen. Die Liste der CVEs und Fehlerberichte, die im derzeit aktiven Live-Patch behandelt werden, wird mit dem Kommando klp -v patches abgerufen.

Image

Es ist möglich, mehrere Versionen des Kernel-Pakets zusammen mit den jeweiligen Live-Patches zu installieren. Diese Pakete lösen keine Konflikte aus. Sie können aktualisierte Kernel-Paket zusammen mit Live-Patches für den ausgeführten Kernel installieren. In diesem Fall werden Sie möglicherweise aufgefordert, das System neu zu starten. Benutzer mit SLE Live Patching-Abonnements haben Anspruch auf technischen Support, solange Live-Patch-Aktualisierungen für den ausgeführten Kernel vorliegen (siehe Abschnitt 11.5.1, „Prüfen des Ablaufdatums des Live-Patches“).

Wenn KLP aktiviert ist, umfasst jede Kernel-Aktualisierung auch ein Live-Patch-Paket. Dieser Live-Patch enthält keine Fehlerbehebungen, sondern dient als Grundlage für künftige Live-Patches für den entsprechenden Kernel. Diese leeren, grundlegenden Patches werden als initial patches bezeichnet.

11.2.1 Umfang des Kernel Live Patching

SLE Live Patching umfasst Fehlerbehebungen für Sicherheitsrisiken ab Stufe 7 des SUSE Common Vulnerability Scoring-Systems (CVSS; SUSE CVSS beruht auf dem CVSS-3.1-System) sowie Fehlerkorrekturen im Hinblick auf die Systemstabilität oder auf beschädigte Daten. Es ist jedoch nicht in jedem Fall technisch praktikabel, Live-Patches für alle Fehlerbehebungen in den angegebenen Kategorien zu erstellen. SUSE behält sich daher das Recht vor, Fehlerbehebungen in Situationen zu überspringen, in denen ein Kernel-Live-Patch aus technischen Gründen nicht möglich ist. Derzeit werden mehr als 95 % der geeigneten Fehlerbehebungen als Live-Patches bereitgestellt. Weitere Informationen zum CVSS (der Grundlage für die SUSE-CVSS-Einstufung) finden Sie unter Common Vulnerability Scoring System SIG.

11.2.2 Einschränkungen des Kernel Live Patching

Das KLP umfasst den Austausch von Funktionen und die behutsame Ersetzung von Funktionssätzen, die voneinander abhängig sind. Hierbei werden Aufrufe von älterem Code an aktualisierten Code weitergeleitet, der sich an einem anderen Speicherort befindet. Veränderungen in den Datenstrukturen erschweren die Situation, da die Daten am bisherigen Ort verbleiben und nicht erweitert oder neu interpretiert werden können. Es gibt zwar einige Methoden für die indirekte Veränderung von Datenstrukturen, doch bestimmte Fehlerbehebungen können nicht in Live-Patches konvertiert werden. In dieser Situation ist ein Neustart des Systems die einzige Möglichkeit, die Fehlerbehebungen anzuwenden.

11.3 Aktivieren von Kernel Live Patching mit YaST

Für die Aktivierung von Kernel Live Patching benötigen Sie aktive Abonnements für SLES und SLE Live Patching. Prüfen Sie im SUSE Customer Center den Status Ihrer Abonnements und rufen Sie einen Registrierungscode für das SLE Live Patching-Abonnement ab.

So aktivieren Sie Kernel Live Patching auf dem System:

  1. Führen Sie das Kommando yast2 registration aus und klicken Sie auf Erweiterungen auswählen.

  2. Wählen Sie in der Liste der verfügbaren Erweiterungen den Eintrag SUSE Linux Enterprise Live Patching 15 und klicken Sie auf Weiter.

  3. Bestätigen Sie die Lizenzvereinbarung und klicken Sie auf Weiter.

  4. Geben Sie Ihren Registrierungscode für SLE Live Patching ein und klicken Sie auf Weiter.

  5. Prüfen Sie die Installationszusammenfassung und die ausgewählten Schemata. Die Schemata Live Patching und SLE Live Patching Lifecycle Data sollten automatisch zur Installation ausgewählt werden, ebenso wie weitere Pakete, die Abhängigkeiten berücksichtigen.

  6. Schließen Sie die Installation mit Akzeptieren ab. Dadurch werden auf Ihrem System die Basiskomponenten von Kernel Live Patching sowie der ursprüngliche Live-Patch und die erforderlichen Abhängigkeiten installiert.

11.4 Aktivieren von Kernel Live Patching über die Kommandozeile

Für die Aktivierung von Kernel Live Patching benötigen Sie aktive Abonnements für SLES und SLES Live Patching. Prüfen Sie im SUSE Customer Center den Status Ihrer Abonnements und rufen Sie einen Registrierungscode für das SLES Live Patching-Abonnement ab.

  1. Führen Sie sudo SUSEConnect --list-extensions. Beachten Sie das genaue Aktivierungskommando für SLES Live Patching. Beispielausgabe des Kommandos (gekürzt):

    $ SUSEConnect --list-extensions
    ...
    SUSE Linux Enterprise Live Patching 15 SP5 x86_64
    Activate with: SUSEConnect -p sle-module-live-patching/15.5/x86_64 \
      -r ADDITIONAL REGCODE
  2. Aktivieren Sie SLES Live Patching mit dem erhaltenen Kommando, gefolgt von -r LIVE_PATCHING_REGISTRATION_CODE, beispielsweise:

    SUSEConnect -p sle-module-live-patching/15.5/x86_64 \
      -r LIVE_PATCHING_REGISTRATION_CODE
  3. Installieren Sie die erforderlichen Pakete und Abhängigkeiten mit dem Kommando zypper install -t pattern lp_sles

Zu diesem Zeitpunkt sind die Live-Patches für das System bereits angewendet.

So läuft der Prozess hinter den Kulissen ab: Wenn das Paketinstallationssystem erkennt, dass ein Live-Patch für einen installierten Kernel angewendet werden kann und dass ein Live-Patch für diesen Kernel im Software-Kanal vorliegt, wählt das System den Live-Patch zur Installation aus. Der Kernel erhält dann die Live-Patch-Fehlerbehebungen als Teil der Paketinstallation. Der Live-Patch für den Kernel wird noch vor Abschluss der Produktinstallation durchgeführt.

11.5 Durchführen von Kernel Live Patching

Kernel-Live-Patches werden im Rahmen von regulären Systemaktualisierungen installiert. Es sind jedoch einige Dinge zu beachten.

  • Der Kernel ist live-gepatcht, wenn ein kernel-livepatch-*-Paket für den aktuellen Kernel installiert wurde. Mit dem Kommando zypper se --details kernel-livepatch-* können Sie prüfen, welche Kernel-Live-Patch-Pakete auf Ihrem System installiert sind.

  • Wenn das Paket kernel-default installiert ist, fordert der Update-Manager Sie auf, das System neu zu starten. Damit diese Meldung nicht angezeigt wird, können Sie Kernel-Aktualisierungen aus dem Patching-Vorgang herausfiltern. Hierzu können Sie Paketsperren mit Zypper hinzufügen. SUSE Manager ermöglicht auch das Filtern von Kanalinhalten (siehe Live Patching with SUSE Manager).

  • Sie können den Patching-Status mit dem Kommando klp status prüfen. Zur Untersuchung installierter Patches führen Sie das Kommando klp -v patches aus.

  • Denken Sie daran: Es können zwar mehrere Kernel-Pakete auf dem System installiert sein, doch es kann immer nur eines dieser Pakete ausgeführt werden, nicht mehrere Pakete gleichzeitig. Ebenso können mehrere Live-Patch-Pakete installiert sein, doch es wird immer nur ein Live-Patch in den Kernel geladen.

  • Der aktive Live-Patch ist in der initrd enthalten. Bei einem unvorhergesehenen Neustart fährt das System also mit den angewendeten Live-Patches hoch, sodass Sie das Patching nicht wiederholen müssen.

11.5.1 Prüfen des Ablaufdatums des Live-Patches

Vergewissern Sie sich, dasslifecycle-data-sle-module-live-patching installiert ist, und führen Sie das Kommando zypper lifecycle aus.Im Abschnitt Package end of support if different from product der Ausgabe sehen Sie das Ablaufdatum für den jeweiligen Live-Patch.

Jeder Live-Patch wird ein Jahr ab Veröffentlichung des zugrunde liegenden Kernel-Pakets aktualisiert. Auf der Seite Maintained kernels, patch updates and lifecycle können Sie das Ablaufdatum anhand der ausgeführten Kernel-Version prüfen, ohne die Produkterweiterung zu installieren.

11.6 Fehlerbehebung bei Kernel Live Patching-Problemen

11.6.1 Manuelles Patch-Downgrade

Wenn der neueste Live-Patch Probleme verursacht, können Sie ein Downgrade des aktuell installierten Live-Patches auf die vorhergehende Version durchführen. Es wird empfohlen, das Patch-Downgrade vorzunehmen, bevor das System erste Probleme zeigt. Denken Sie daran, dass ein System mit Kernel-Warnungen oder Kernel-Fehlerspuren im Systemprotokoll unter Umständen nicht für das Patch-Downgrade-Verfahren geeignet ist. Wenn Sie nicht sicher sind, ob das System die Anforderungen für ein Patch-Downgrade erfüllt, fragen Sie den technischen Support von SUSE.

Vorgehen 11.1: Manuelles Patch-Downgrade
  1. Ermitteln Sie den automatischen Live-Patch mit dem Kommando klp -v patches. Der aktuell ausgeführte Patch befindet sich in der Zeile, die mit RPM: beginnt. Beispiel:

    RPM: kernel-livepatch-5_3_18-24_29-default-2-2.1.x86_64

    5_3_18-24_29-default im Beispiel oben bezeichnet die genaue ausgeführte Kernel-Version.

  2. Verwenden Sie das Kommando zypper search -s kernel-livepatch-RUNNING_KERNEL_VERSION-default, um nach früheren Patch-Versionen zu suchen. Das Kommando gibt eine Liste der verfügbaren Paketversionen zurück. Denken Sie daran, dass die Versionsnummer bei jeder Veröffentlichung eines neuen Live-Patch-Pakets um eins erhöht wird. Wählen Sie die Versionsnummer aus, die um eine Veröffentlichung niedriger ist als die aktuelle Version.

  3. Installieren Sie die gewünschte Version mit dem Kommando zypper in --oldpackage kernel-livepatch-RUNNING_KERNEL_VERSION-default=DESIRED_VERSION.