Linux-Kernel ohne Neustart aktualisieren [Überblick über Live-Patching-Tools]
Die Aktualisierung von Linux-Kerneln ist eine Routine - so langweilig wie Steuern und nur wenig weniger lästig als der Tod. Neue Sicherheitslücken im Linux-Kernel tauchen mit ermüdender Regelmäßigkeit auf und bekommen sogar schicke Namen. In den meisten, aber nicht in allen Fällen, folgen die Patches, die zur Behebung benötigt werden, schnell. Das Einspielen der neuesten Sicherheitsupdates für den Linux-Kernel ist mit Arbeit verbunden, und es besteht die Gefahr, dass man es zu lange hinauszögert und böswillige Akteure die Zeit der Sicherheitslücke ausnutzen könnten.
In unserem vorherigen Blog-Beitrag haben wir besprochen, wie man den Linux-Kernel auf 3 verschiedene Arten aktualisiert, von denen zwei (mit Kommandozeile/yum und kexec) einen Neustart des Servers erfordern.
Es ist an der Zeit, eine andere Art von Sicherheitsupdates für den Linux-Kernel zu besprechen - das rebootlose Live-Patching des Kernels. Lesen Sie weiter, um mehr über die einzelnen Live-Patching-Tools und Alternativen zu erfahren.
Anwendung von Linux-Kernel-Updates ohne Neustart
Es gibt Zeiten, in denen Sicherheits-Patches überlebenswichtig sind, aber auch die Prozesse, die beim Neustart anhalten. Wenn Sie ein "immer eingeschaltetes" oder "hochverfügbares" System betreiben, werden Sie mit diesem Dilemma bereits vertraut sein.
Rebootlose Linux-Kernel-Updates sind kein Ersatz für vollständige Kernel-Upgrades, da sie nur Patches für Sicherheitslücken oder kritische Fehlerbehebungen anwenden. In vielen Fällen ist dies jedoch alles, was Sie brauchen, und es ist möglich, einen Server mit diesen Methoden über Jahre hinweg zwischen zwei Neustarts sicher am Laufen zu halten.
Eine Reihe von führenden Linux-Anbietern bieten Kernel-Updates ohne Neustart an. Für welches Sie sich entscheiden, hängt von der von Ihnen verwendeten Distribution und Ihrem Budget ab. Im weiteren Verlauf dieses Artikels werden wir über die folgenden Produkte sprechen:
- Ksplice von Oracle (für Oracle Linux Updates, Ksplice Uptrack für Unternehmen)
- Kpatch von Red Hat (für RHEL-Kernel-Updates und CentOS-Updates)
- Livepatch von Canonical (für Ubuntu-Kernel-Aktualisierungen)
- Kgraft von SUSE (nur für SUSE-Updates)
- CloudLinux KernelCare (für alle gängigen Linux-Distributionen)
Erhalten Sie eine KOSTENLOSE 7-Tage-Testversion von KernelCare
Oracle Ksplice
Ksplice war die erste kommerziell verfügbare Implementierung der Kernel-Aktualisierung ohne Neustart. Ksplice Inc. wurde schließlich von Oracle aufgekauft, so dass es jetzt (wenig überraschend) nur noch auf Oracle Linux und RedHat Enterprise Linux Distributionen verfügbar ist, und für den Einsatz ist eine Lizenz von Oracle erforderlich.
- Kein Neustart erforderlich.
- Automatische Aktualisierungen.
- Es ist kostenlos für Desktop-Linux-Installationen verfügbar, mit offizieller Unterstützung für die Linux-Distributionen Fedora und Ubuntu.
- Funktioniert nur für Oracle Linux, Red Hat Enterprise Linux, CentOS und Ubuntu.
- Erfordert eine Support-Lizenz, die Preise beginnen bei 1.399 $ pro System und Jahr.
Führen Sie es aus, um es einzusetzen:
sudo wget -N https://ksplice.oracle.com/uptrack/install-uptrack-oc
sudo sh install-uptrack-oc -autoinstall
Beachten Sie, dass es keinen Neustart-Befehl gibt und dass Sie das Installationsskript nur einmal während der Lebensdauer des Servers ausführen müssen. Danach erkennt der Uptrack-Dienst automatisch neue Kernel-Updates und installiert sie für Sie. Es gibt keine Zeitplanung, keine Ausfallzeiten und nichts mehr zu tun.
Kanonischer Livepatch-Dienst
Dies ist die Technologie von Canonical zum Live-Patching von Kerneln. Sie können sogar Ihre eigenen Patches erstellen, obwohl dies eine schwierige und zeitaufwändige Arbeit sein kann. Einige Anbieter erstellen gegen eine Gebühr einen Ubuntu-Upgrade-Kernel für Sie. Der Service ist für Ubuntu 16.04 und später verfügbar.
- Kein Neustart erforderlich.
- Automatische Kernel-UpdatesKostenlos für den persönlichen Gebrauch (bis zu 3 Maschinen oder bis zu 50 Maschinen für anerkannte Ubuntu Community Member)
- Nicht-triviale benutzerdefinierte Kernel-Patches.
- Begrenzte Distributionen werden unterstützt.
- Begrenzung der Anzahl der aktualisierbaren Hosts.
- Zusätzliche Hosts gegen Gebühr - die Preise für ein Ubuntu Advantage (mindestens Essential) Support-Abonnement beginnen bei $225-$1.500/Maschine/Jahr für physische Server und $75-$500/Maschine/Jahr für VMs.
Es wird folgendermaßen eingesetzt:
sudo snap install canonical-livepatch
sudo canonical-livepatch enable [TOKEN]
Der Canonical Livepatch Service ist kostenlos für bis zu 3 Maschinen für den persönlichen Gebrauch oder bis zu 50 Maschinen für Ubuntu Community Mitglieder. Sie können sich hier für ein Token anmelden.
Red Hat Kpatch
Dies ist das eigene Kernel-Patching-Tool von Red Hat. Es wurde 2014 angekündigt und wurde auf andere Systeme der gleichen Familie (Fedora, CentOS) sowie auf einige Debian-basierte Systeme (Ubuntu, Gentoo) portiert.
- Kein Neustart erforderlich.
- Nicht automatisiert.
- Begrenzte Ausschüttungen.
- Erhältlich im Rahmen eines Premium-Support-Abonnements für 1299 $ pro Jahr.
Hier ist ein Beispiel für die Bereitstellung unter RHEL 7:
sudo yum install kpatch sudo yum install kpatch-patch-X.X.X.el7.x86_64.rpm
Im Gegensatz zu Ubuntus Livepatch-Dienst oder Oracles Ksplice erfolgt dies nicht automatisch, sondern Sie müssen manuell nach jedem Kernel-Patch suchen und diesen installieren, sobald er verfügbar ist.
SUSE Kgraft
Kgraft wurde fast zeitgleich mit der Lösung von Red Hat entwickelt und angekündigt und ist das Live-Patching-Angebot von SUSE (bekannt als SUSE Linux Enterprise Live Patching). Es ist nur für den SUSE-eigenen Linux Enterprise Server 12 gedacht und wird vorinstalliert geliefert, sodass Sie eigentlich nichts tun müssen (außer dafür zu bezahlen). Es funktioniert nach einem anderen Prinzip als die meisten anderen Ansätze, hat aber einen mit Kpatch vergleichbaren Funktionsumfang.
- Keine Installation erforderlich.
- Kein Neustart erforderlich.
- Unterstützung einer einzigen Plattform.
- Kommerziell (aber es gibt eine großzügige 60-tägige kostenlose Testversion).
CloudLinux KernelCare
Der ebenfalls 2014 eingeführte Linux-Kernel-Live-Patching-Service von KernelCare sticht unter den Kernel-Patching-Lösungen durch seine Betriebssystemabdeckung hervor, die CentOS, RHEL, Oracle Linux, Debian, Ubuntu und andere umfasst. Und wie die Lösung von Oracle unterstützt auch KernelCare die älteren 2.6.32-Kernel von RHEL 6.
- Einfache Installation.
- Kein Neustart erforderlich.
- Breite Betriebssystemabdeckung (einschließlich einer der beliebtesten Linux-Varianten, Ubuntu).
- Unterstützt benutzerdefinierte und datumsabhängige Patches.
- Gute Unterstützung und Branchenkenntnis von CloudLinux.
- Kommerziell (aber es gibt eine kostenlose 7-tägige Testversion).
- Es gibt auch eine kostenlose KernelCare-Lizenz für gemeinnützige Organisationen.
Hier erfahren Sie, wie Sie KernelCare installieren:
wget -qq -O -- https://kernelcare.com/installer | bash
sudo /usr/bin/kcarectl --register <your key>
For <your key> get your trial key here.
KernelCare ist eine "Installieren und vergessen"-Lösung. Nach der Installation lädt KernelCare automatisch neue Kernel-Sicherheitspatches herunter und wendet sie an, ohne den Server neu zu starten.
Im Gegensatz zu seinen engsten Konkurrenten kann KernelCare jedoch einige der komplexeren Patches für Schwachstellen wie Meltdown(CVE-2017-5754), Spectre(CVE-2017-5753 & CVE-2017-5715) und seit kurzem auch für den Pufferüberlauf im Linux-Kernel, der romantisch als Mutagen Astronomy(CVE-2018-14634) bezeichnet wird, verarbeiten. KernelCare unterstützt benutzerdefinierte Patch-Konfigurationen, Patches mit festem Datum, verzögerte Patches und Rollbacks ohne Neustart, d. h. die Entfernung von Patches.
Wie die anderen hier betrachteten Anbieter entspringt auch KernelCare einer guten Blutlinie - sein Schöpfer ist CloudLinux, der führende Anbieter von Linux-basierten Betriebssystemen für das Webhosting.
Schlussfolgerung
Wenn Ihr Server nicht kritisch ist und eine Zeit lang offline bleiben kann, ist die Aktualisierung des Kernels mit den Standardtools der Befehlszeile relativ problemlos.
Wenn Sie ein System betreiben, das immer eingeschaltet ist (d.h. Sie können oder wollen nicht neu starten), sollten Sie einen Blick auf Live-Kernel-Patching-Lösungen werfen. Davon gibt es drei Arten:
- Verwaltet - Siemüssen es selbst tun. Z.B. Kpatch, Kgraft.
- Vollautomatisch - eserledigt alles für Sie. Z.B. Livepatch, Ksplice.
- Vollautomatisches, fortschrittliches Multiplattform-Schutzprogramm, das fortschrittliche Bedrohungen auf allen Plattformen für Sie handhabt. Z.B. KernelCare von CloudLinux.
Wenn Sie mehr über die Live-Patching-Technologie erfahren möchten und darüber, wie sie die Sicherheit Ihrer Infrastruktur erhöht, lesen Sie unsere beliebtesten Blogbeiträge:
- Server jetzt oder später neu starten? (Weder noch, danke)
- Benutzerdefiniertes Kernel-Patching mit Rebootless Updates
Hatten Sie schon einmal die Gelegenheit, Linux-Kernel-Live-Patching-Tools zu verwenden? Welches war für Sie das nützlichste für Ihr Unternehmen? Teilen Sie Ihre Gedanken in den Kommentaren mit.