Um ein bisschen Serveradministration zu lernen, habe ich einen einfachen Ubuntu 14.04-Server eingerichtet, auf dem ich eine persönliche Website betreibe. Ich habe festgelegt, dass Sicherheitsupdates automatisch installiert werden, aber die anderen Updates weggelassen. Das scheint ganz gut zu funktionieren. Gelegentlich erhalte ich beim Einloggen in den Server (mit ssh) die Meldung:
*** System restart required ***
Als dies passierte, habe ich Ubuntu einfach neu gestartet und alles war in Ordnung. Dies ist in Ordnung, da es sich um eine einfache persönliche Website handelt. Was mich jedoch wundert, ist, wie dies bei Webservern funktioniert, die in 99,9999% der Fälle auf dem Vormarsch sein sollten? Starten sie einfach nicht neu und riskieren die Verletzung der Sicherheit, weil keine Sicherheitsupdates installiert sind (was ich mir nicht vorstellen kann)? Oder halten sie Ausfallzeiten für selbstverständlich (was ich mir auch nicht vorstellen kann)?
Wie gehe ich damit um, wenn dies ein sehr wichtiger Produktionsserver ist, den ich weiterhin betreiben möchte? Alle Tipps sind willkommen!
[EDIT] Ich weiß, dass ich cat /var/run/reboot-required.pkgs
die Pakete auflisten kann, die den Neustart verursachen. Der Befehl liefert derzeit Folgendes:
linux-image-3.13.0-36-generic
linux-base
dbus
linux-image-extra-3.13.0-36-generic
linux-base
Aber woher weiß ich, ob es sich bei den Updates um Kleinigkeiten handelt, um festzustellen, ob ich eine ernsthafte Sicherheitslücke habe, wenn ich den Neustart nicht durchführe?
[EDIT2] Okay, ich habe jetzt die Befehle, die ich für nützlich befunden habe, in einem zusammengefasst:
xargs aptitude changelog < /var/run/reboot-required.pkgs | grep urgency=high
Wenn dies nichts ausgibt, scheint es keine Sicherheitsprobleme mit hoher Dringlichkeit zu geben.
Eine letzte Frage jedoch: Gibt es low
, medium
und high
die einzigen dringenden Möglichkeiten, oder gibt es noch weitere wie zum Beispiel critical
oder extremelyimportant
?
| grep 'urgency=' | egrep -v '=(low|medium)'
Antworten:
Dies ist keine einfache Antwort, da dies von den vorgenommenen Aktualisierungen abhängt. Wenn der Kernel ein ernstes Sicherheitsproblem hatte, ist es gut, so schnell wie möglich neu zu starten. Wenn der Kernel nur kleinere Korrekturen hatte, konnte der Neustart verschoben werden.
Wenn Sie eine Verfügbarkeit von> 99,9% garantieren, verfügen Sie fast immer über ein Clustersystem, auf dem Sie die Knoten nacheinander neu starten können, ohne den Dienst zu unterbrechen.
Sie starten also das erste System neu und verbinden es erneut mit dem Cluster. Dann das zweite und so weiter. Dann wird der Dienst niemals nicht verfügbar sein.
quelle
cat /var/run/reboot-required.pkgs
die Pakete abrufen kann, die einen Neustart erfordern. Aber woher weiß ich, ob dies nur kleinere Korrekturen sind oder ob es sich um eine schwerwiegende Sicherheitsanfälligkeit handelt?aptitude changelog <package>
, hier ist eine Beispielausgabe: paste.ubuntu.com/8410798 (Dies ist auf einem Debian-System, nicht Ubuntu, aber dasselbe wird auch auf Ubuntu funktionieren.)xargs aptitude changelog < /var/run/reboot-required.pkgs | grep urgency=high
(fügte ihn auch der ersten Frage hinzu), der eine Ausgabe darüber liefert, welche Pakete sehr dringende Patches haben. Danach können natürlich einzelne Pakete inspiziert werden. Vielen Dank für all die Antworten und Ideen!Addon für das Thema Lösung
Ich führe eine ähnliche Überprüfung auf "Neustartanforderungen" für das zabbix-Überwachungssystem durch
Ich sehe 2 Probleme in der 'Topic'-Lösung:
Meine Logik ist:
Unter Verwendung der Debian-Dokumentation habe ich 5 mögliche Werte für "Dringlichkeit" und die Tatsache gefunden, dass es sich um Gleichheitszeichen ("=") oder Semikolonzeichen (":") handeln kann. Es kann auch Groß- und Kleinschreibung geben
So endete ich mit folgenden:
Als Ergebnis:
reboot_required_check.sh status
Gibt 1 zurück, wenn ein Neustart erforderlich ist, und 0, wenn dies nicht der Fall istreboot_required_check.sh urgency
Gibt die höchste Dringlichkeitsstufe oder 0 zurück, wenn kein Neustart erforderlich istHoffe es hilft jemandem eine Zeit zu sparen;)
quelle
Große Webserver werden neu gestartet, wenn * Systemneustart erforderlich * aus Sicherheitsgründen angezeigt wird.
Dies ist jedoch für den Benutzer transparent und die Site ist nie inaktiv, da auf großen Servern häufig zwei oder drei Server ausgeführt werden, auf denen genau dieselben Dateien gespeichert sind und dieselbe Site angezeigt wird. Der erste ist der Hauptserver, während die beiden anderen sekundär sind und nur verwendet werden, wenn der Hauptserver inaktiv ist.
quelle
Big web servers
führen Sie benutzerdefinierte Versionen von Linux aus. Sie sehen keinenSystem restart required
Dialog, sie aktualisieren, was sie brauchen, um sicher zu bleiben. In den meisten Fällen können viele, wenn nicht alle Updates ausgeführt werden, während das System ausgeführt wird (ich glaube, es ist sogar möglich, einen Linux-Kernel auf einem laufenden System ohne Neustart zu aktualisieren).Big web servers
laufen auf dedizierten Servern und VPS. Aus diesem Grund hat der Systemadministrator mehr Kontrolle über die Software. Gibt Amazon Ihnen Root-Shell-Zugriff auf Ihren Server?freezes execution of a computer so it is the only program running
beim Anwenden eines Patches eine gewisse Ausfallzeit hat (da der Webserver-Prozess "eingefroren" ist). Hier kommt die Antwort von @Uwe Plonus ins Spiel.