Auch beim Raspberry: Never change a running system
…oder doch lieber ProSicherheit?!Im deutschsprachigen Raum kennt man ihn nur zu gut: “never change a running system” – in anderen Ländern heißt es dort eher “If ain’t broke, don’t fix it” – klingt beides recht logisch und nachvollziehbar. Warum sollte man ein gut laufendes System mit neuer Software oder Updates der Gefahr aussetzen, neue Bugs einzuschleusen oder Ausfälle zu erzeugen?!
Hier muss wohl jeder IT-Verantwortliche abwägen und den Spagat zwischen Neuerungen / Anforderungen / Systemsicherheit und Ausfall-Erreichbarkeitsquote abwägen.Pro Updates – egal ob Systemupdates oder Programmupdates – spricht auf jeden Fall die Behebung von Bugs und bekannten kritischen Einfalltoren, die sonst evtl. Hacker ausnutzen könnten, um in dein System einzudringen.
Gegen Updates (zu oft oder direkt) würde vielleicht sprechen, dass sich mit diesen auch neue Fehler einschleichen oder man im schlimmsten Fall sogar sein gesamtes System damit unbrauchbar machen könnte.
DarkWolfCave.de
Wir updaten aber lieber
Raspberry ist auf einem Linux Kernel aufgebaut – aktuell Raspbian GNU/Linux 10 (buster) – welche im Prinzip auf Debian basiert.
Unter solchen Distributionen erfolgt in der Regel die Paketverwaltung durch “apt-get”.
Vor jedem Update müssen zuerst die Paketlisten aktualisiert werden:
sudo apt-get update
Mit diesem Befehl werden die Paketlisten neu eingelesen und aktualisiert. In diesen sind die Informationen enthalten welche Versionen verfügbar sind und die Abhängigkeiten der Pakete untereinander aufgeführt.
sudo apt-get upgrade
Mit diesem Befehlt startet man den eigentlichen Updateprozess. Es werden alle neuen Versionen eines installierten Pakets aktualisiert.
Keine Pakete werden hinzugefügt oder entfernt.
Oft werden diese beiden Befehle auch direkt zusammen eingegeben, da ein apt-get update IMMER vorher ausgeführt werden sollte:
sudo apt-get update && sudo apt-get upgrade
Möchtest du ein vollständiges Upgrade durchführen – bei dem komplette Versionen durch neuere und möglicherweise bessere ersetzt werden – dann musst du diesen Befehl ausführen. Hier könnte es aber durchaus passieren, dass man sich ein System damit unbrauchbar macht.
sudo apt-get dist-upgrade
Kurze Erklärung dazu: bei dem upgrade werden lediglich bereits installierte Pakete aktualisiert.
Anders bei dem dist-upgrade – Hier werden zwar auch die installierten Pakte aktualisiert, darüberhinaus allerdings auch die Abhängigkeiten betrachtet und entsprechende Pakte installiert und auch entfernt – selbst wenn dies alte Abhängigkeiten beeinflusst. Dies sollte man vor allem bei alten, eigenen oder nicht über die Paketverwaltung installierten Pakete beachten. Sonst kann es schnell zu nicht mehr funktionierenden System kommen.
Ungewohnt bei Linux – aber auch hier: reboot tut gut
Unter Windows kennt man es nur zu gut: Du installierst etwas, oder führst ein Update aus und Windows zwingt dich fast regelrecht zu einem Neustart. Dieses “lästige Windowsproblem” macht aber durchaus Sinn. Denn viele Systemnahe Komponenten / Bibliotheken / Treiber usw bekommen erst nach einem Neustart mit dass sie “aktualisiert” wurden.
Bei Linux geht man davon aus, dass der User weiß was er tut und verzichtet auf einen Zwangsreboot. Natürlich auch damit nicht direkt nach einem Update ganze Systeme lahm liegen und man dies besser koordinieren kann.
Dennoch benötigt auch Linux einen Reboot nach einem Update, daher gilt auch hier: Reboot tut gut.
sudo reboot
Aktualisieren ohne Neustart
Du nutzt deinen Raspberry als Gateway? VPN? DNS-Server?
Dann möchtest du vielleicht nicht unbedingt neu startet, da dies ansonsten einen Ausfall erzeugen würde der nicht erwünscht ist.
Hierzu kannst du die durch ein update geänderten Dienste einzeln neu starten. Und natürlich hast du dir gemerkt oder in den Logs geschaut welche betroffen sind, richtig? Nein?! Nu schau nicht so…. Unter Raspbian gibt es ein schönes kleines Tool für so etwas: debian-goodies.
Und mal ehrlich?! Wer mag keine goodies?! 😛
Beginnen wir also das fröhliche installieren:
sudo apt-get install debian-goodies
Nach der Installation, und dem nächsten Update, kannst du dir mit dem folgendem Befehl die Prozesse anzeigen lassen, die mit veralteten aber aktualisierten Paketen arbeiten.
sudo checkrestart
Alle sicherheitsrelevanten Dienste sollten auf jeden Fall neu gestartet werden. Die Befehle dazu werden in der Regel angezeigt.
sudo service {PAKET} restart
Natürlich kann es nach einem Update vorkommen dass sehr viele Dienste aktualisiert wurden und die Liste entsprechend lang ist. Hier geht es dann meistens doch schneller wenn du ein reboot durchführst als alle Dienste einzeln neu zu starten.
Auch kommt es vor, dass sich Dienste über diesen Weg nicht starten lassen, auch dann muss ein reboot erfolgen.