Allgemein

Was muss man nach einem Update neustarten?

Gerade bei den vielen Sicherheitsupdates in letzter Zeit (man denke an GHOST, Poodle, …) stellt sich diese Frage doch recht häufig. Im einfachsten Fall kann man den kompletten Server neustarten, doch das ist nicht immer die beste Wahl, vor allen wenn es um Verfügbarkeiten von Diensten geht oder andere Gründe gegen einen Neustart sprechen. Einfach einige der wichtigsten Dienste durchstarten ist irgendwie auch nicht das Richtige, was also nun?

Bei einem Update wird ein bestimmtes Programm oder eine Bibliothek geändert. Ziel ist es nun heraus zu finden, welche laufenden Programme auf die geänderten Dateien zugreifen. Bei dieser Problemstellung denkt man recht schnell an das Tool lsof. Die Ausgabe wird einfach nach den aktualisierten Dateien gefiltert und man sollte alle Prozesse sehen, die neugestartet werden müssen, oder? Leider ist dieses Vorgehen sehr aufwändig und durch bestimmte Optimierungen in Linux auch fehleranfällig (es müssen nicht unbedingt alle geladenen Libraries auch geöffnet sein).

Für das erste Problem, den Aufwand, gibt es bei den größeren Linux Distributionen bereits fertige Tools. Bei RedHat Derivaten ist das needs-restarting aus dem Paket yum-utils, in Debian gibt es checkrestart aus den debian-goodies. Leider lösen beide Tools nicht das zweite Problem. Ein Tool was besser arbeitet, ist auf der Seite http://ingvar.blog.redpill-linpro.com/tag/needs-restarting/ zu finden.

Beispielhaft an einem OpenSSL Update auf einem CentOS kann es wie folgt aussehen. Zuerst wird mittels yum ein normales Update auf OpenSSL ausgeführt. Danach kann man sich mit needs-restarting anzeigen lassen, welche laufenden Prozesse neu gestartet werden müssten.

Jetzt kennt man die Prozesse, welche alte Versionen von geöffneten Libraries nutzen, und kann die entsprechenden Dienste neustarten. Im Fall von OpenSSL sind die betroffenen Dienste recht kompakt. Leider sieht es z.B. beim GHOST (glibc) Fix anders aus, hier wird unter anderem init aufgelistet. Welches man nur neustarten kann, indem man das komplette Betriebssystem neustartet.

Mit den genannten Tools verschwinden einige der Bauchschmerzen, die man typischerweise hat, wenn man nach einem Update nicht den gesamten Server neustarten kann. Leider ist in einigen Fällen trotzdem noch ein Neustart des gesamten Betriebssystems (und in dem Falle auch Servers) nötig. Glücklicherweise wird mit zunehmender Nutzung von Cloud-Technologien der einzelne Server immer unkritischer, da Dienste mehrfach redundant auf verschiedenen Systemen laufen und ein einzelner Ausfall für die Endnutzer kaum bemerkbar ist.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.