So vermeiden Sie Serverneustarts mit Ubuntu Livepatch

Wenn Sie Ihre eigenen Server verwalten, stehen Sie früher oder später vor folgendem Problem: Sie müssen das Betriebssystem neu starten, aber die Maschine bietet einen wichtigen Dienst an, den Sie nicht unterbrechen können.
Aber warum überhaupt neu starten? Alles scheint nach einem apt-get upgrade-Befehl einwandfrei zu funktionieren. Allerdings ist nicht immer alles so, wie es scheint. Auch wenn das System nach jedem Upgrade fröhlich weiterläuft und nicht wie Windows einen Neustart erzwingt, könnte es dennoch einen benötigen.
Wenn beispielsweise eine Sicherheitsanfälligkeit im Kern des Systems (Kernel) entdeckt wird, wird diese gepatcht und als neues Paket auf Ihren Server übertragen. Nachdem Sie den gepatchten Kernel installiert haben, werden einige Dateien auf die Festplatte geschrieben, aber es ist immer noch der alte Kernel, der das Geschehen steuert, da er im Arbeitsspeicher (RAM) geladen ist.
Das bedeutet, dass Ihr Server weiterhin anfällig für die zuvor entdeckten Sicherheitslücken ist. Andere Prozesse, Daemons und Dienste können ohne Neustart des Betriebssystems neu geladen werden. Der Kernel sitzt jedoch im Herzen des Systems und kann nur beim nächsten Bootvorgang neu geladen werden.
Auch lesen: So fügen Sie Benutzer in Ubuntu Server hinzu
Ubuntu Livepatch löst dies, indem es Ihnen ermöglicht, Sicherheitslücken im Kernel zu schließen, ohne neu zu starten. So können Sie Neustarts wochen- oder monatelang vermeiden oder hinauszögern, ohne die Sicherheit zu gefährden.
Die Grundidee hinter Live-Patching ist einfach: Wenn eine Funktion anfällig ist, schreiben Sie sie um, beseitigen Sie den Fehler und laden Sie die neue Funktion irgendwo in den Speicher. Wenn die Funktion aufgerufen wird, leiten Sie den Aufruf um, um den umgeschriebenen Code zu verwenden.

Aber wie bei den meisten Dingen, die einfach zu funktionieren scheinen, sind die Implementierung und technischen Details nicht so einfach.
So richten Sie Livepatch auf Ubuntu ein
Gehen Sie zu dieser Seite und erstellen Sie Ihr Ubuntu One-Konto. (Oder melden Sie sich einfach an, wenn Sie bereits eines haben.) Überprüfen Sie Ihre E-Mails und klicken Sie anschließend auf den Bestätigungslink für das Konto. Besuchen Sie dann die Seite des Canonical Livepatch-Dienstes. Wählen Sie aus, dass Sie ein “Ubuntu-Benutzer” sind, und klicken Sie auf die Schaltfläche, um Ihr Token zu generieren. Die nächste Seite zeigt Ihnen die genauen Befehle, die Sie auf Ihrem Server eingeben müssen. Nach dem ersten Befehl geben Sie ein
sudo snap install canonical-livepatchWarten Sie einige Sekunden, bis das Snap-Paket vollständig installiert ist. Wenn es fertig ist, erhalten Sie ein Ergebnis, das dem folgenden Bild ähnelt.

Schließlich wird mit dem letzten Befehl von Canonical,
sudo canonical-livepatch enable#PASTE_YOUR_TOKEN_HEREder Dienst aktiv und wendet automatisch Sicherheitsupdates auf Ihren Kernel an, wann immer dies erforderlich ist, ohne dass Sie etwas eingeben müssen.
Snap-Daemon installieren, falls erforderlich
In einigen seltenen Fällen kann der erste Befehl im vorherigen Abschnitt fehlschlagen, mit der folgenden Fehlermeldung: -bash: /usr/bin/snap: No such file or directory. In diesem Fall bedeutet es, dass Ihr Serveranbieter ein Ubuntu-Betriebssystem-Image hat, das den Snap-Daemon-Dienst standardmäßig nicht enthält. Installieren Sie ihn mit:
sudo apt update &&sudo apt install snapdFühren Sie nun die beiden Befehle aus dem vorherigen Abschnitt erneut aus.
Auch lesen: 5 nützliche Patches zur Verbesserung Ihres dwm-Erlebnisses
Halten Sie Ihren Server aktuell
Livepatch wendet alle notwendigen Sicherheitsupdates auf Ihren Kernel an. Sie sollten jedoch auch den Rest Ihres Systems regelmäßig mit einem Befehl wie:
sudo apt update &&sudo apt upgradeaktualisieren. Sie sollten dies wöchentlich oder sogar häufiger tun, wenn Sie können. Wichtige Systempakete könnten Sie darauf hinweisen, dass sie neu gestartet werden müssen, um die neuesten Sicherheitsfixes anzuwenden.

Diese sind in der Regel sanfte Neustarts, was bedeutet, dass sie keinen Dienst im Prozess stören. Zum Beispiel wurde in diesem Fall der SSH-Daemon neu gestartet, ohne die aktive SSH-Sitzung zu unterbrechen.
In anderen Situationen könnten Sie selbst Dienste neu starten, um sicherzustellen, dass der neue, gepatchte Code neu geladen wird und Sicherheitsfixes angewendet werden. Wenn Sie beispielsweise feststellen, dass das nginx-Paket aktualisiert wurde, können Sie
systemctl restart nginx.serviceausführen, um den nginx-Daemon in den Speicher neu zu laden. Andernfalls könnte es sein, dass ein Paket, obwohl es aktualisiert wurde, weiterhin mit dem alten, anfälligen Code läuft, was Ihren Server einem Risiko durch bekannte Angriffe aussetzt. Einige Paketaktualisierungen erledigen dies für Sie, andere jedoch nicht. Deshalb ist es eine gute Gewohnheit, darauf zu achten, was “apt upgrade” tut, und gegebenenfalls einige Dienste neu zu starten. Sie können auch die Protokolle überprüfen, um zu sehen, ob dies automatisch geschehen ist.
Fazit
Wie Sie sehen können, hat Canonical es ziemlich einfach gemacht, dies auf einem Server zu implementieren. Was den Kernel betrifft, sind keine Wartungsarbeiten Ihrerseits erforderlich. Das einzige, was Sie tun können, ist von Zeit zu Zeit
canonical-livepatch statusauszuführen, um den Status zu überprüfen.