Heim > Artikel > System-Tutorial > Der richtige Weg, Patches zu verwalten
Der Grund, warum ich mich so schnell entschieden habe, die Artikelserie „Systemadministration 101“ noch einmal fortzusetzen, liegt darin, dass mir klar geworden ist, dass einige Linux-Systemadministratoren in Bezug auf das Patch-Management nicht anders sind als Windows-Systemadministratoren. Um ehrlich zu sein, ist es in einigen Bereichen sogar noch schlimmer (es ist besonders stolz auf die Laufzeit). Daher behandelt dieser Artikel die grundlegenden Konzepte der Patch-Verwaltung unter Linux, einschließlich der Art und Weise, wie eine gute Patch-Verwaltung aussieht, einiger verwandter Tools, die Sie verwenden können, und wie der gesamte Patch-Installationsprozess durchgeführt wird.
Mit Patch-Management meine ich die Systeme, die Sie einsetzen, um die Software auf Ihren Servern zu aktualisieren, und nicht nur, um die Software auf die neueste und modernste Version zu aktualisieren. Sogar konservative Distributionen wie Debian, die aus Gründen der „Stabilität“ eine bestimmte Softwareversion beibehalten, werden von Zeit zu Zeit Upgrade-Patches veröffentlichen, um Fehler und Sicherheitslücken zu beheben.
Natürlich, wenn Ihr Unternehmen beschließt, eine eigene Version einer bestimmten Software zu pflegen, entweder weil Entwickler die neueste und beste Version benötigen und den Software-Quellcode ableiten und Änderungen vornehmen müssen, oder weil Sie sich gerne zusätzliche Arbeit leisten möchten, dann ist dies das Richtige für Sie Dann stoßen Sie auf Probleme. Idealerweise sollten Sie Ihr System so konfiguriert haben, dass es automatisch benutzerdefinierte Versionen Ihrer Software erstellt und verpackt, indem Sie dasselbe kontinuierliche Integrationssystem verwenden, das auch von anderer Software verwendet wird. Allerdings verwenden viele Systemadministratoren immer noch veraltete Methoden zum Packen von Software auf ihren lokalen Hosts, wie aus der (hoffentlich aktuellen) Dokumentation im Wiki hervorgeht. Unabhängig davon, welche Methode Sie verwenden, müssen Sie herausfinden, ob die von Ihnen verwendete Version Sicherheitslücken aufweist. Wenn ja, stellen Sie sicher, dass der neue Patch auf Ihrer angepassten Version der Software installiert ist.
Das erste, was Sie beim Patch-Management tun müssen, ist die Suche nach Software-Upgrades. Für Kernsoftware sollten Sie sich zunächst in die Sicherheits-Mailingliste der entsprechenden Linux-Distribution eintragen, um schnellstmöglich über die Sicherheitsaktualisierung der Software informiert zu werden. Wenn Sie Software verwenden, die nicht aus dem Repository der Distribution stammt, müssen Sie auch versuchen, Sicherheitsupdates für diese zu verfolgen. Sobald Sie eine neue Sicherheitsbenachrichtigung erhalten, müssen Sie die Benachrichtigungsdetails überprüfen, um den Schweregrad der Sicherheitslücke zu ermitteln, festzustellen, ob Ihr System betroffen ist und wie dringend der Sicherheitspatch ist.
Einige Organisationen verwenden immer noch manuelle Methoden zur Verwaltung von Patches. Wenn ein Sicherheitspatch erscheint, muss sich der Systemadministrator auf diese Weise auf den Speicher verlassen und sich bei jedem Server anmelden, um ihn zu überprüfen. Nachdem Sie ermittelt haben, welche Server aktualisiert werden müssen, verwenden Sie das integrierte Paketverwaltungstool des Servers, um diese Software aus dem Release-Repository zu aktualisieren. Aktualisieren Sie abschließend alle verbleibenden Server auf die gleiche Weise.
Bei der manuellen Verwaltung von Patches gibt es viele Probleme. Erstens wird das Patchen zu einer lästigen Pflicht, je mehr Patches Sie installieren, desto höher ist der Arbeitsaufwand und desto wahrscheinlicher ist es, dass Systemadministratoren es aufschieben oder sogar ganz ignorieren. Zweitens ist die manuelle Verwaltung auf den Speicher des Systemadministrators angewiesen, um den Überblick über Upgrades der Server zu behalten, für die er verantwortlich ist. Dies kann leicht dazu führen, dass einige Server übersehen werden und nicht rechtzeitig aktualisiert werden.
Je schneller und einfacher das Patch-Management ist, desto wahrscheinlicher ist es, dass Sie es gut machen. Sie sollten ein System aufbauen, das schnell abfragen kann, auf welchen Servern bestimmte Software ausgeführt wird, sowie die Versionsnummern dieser Software, und das idealerweise in der Lage sein sollte, verschiedene Upgrade-Patches zu pushen. Persönlich verwende ich für diese Aufgabe eher ein Orchestrierungstool wie MCollective, aber mit Satellite von Red Hat und Landscape von Canonical können Sie auch die Softwareversionsinformationen des Servers anzeigen und Patches auf einer einheitlichen Verwaltungsoberfläche installieren.
Patch-Installation sollte auch fehlertolerant sein. Sie sollten die Möglichkeit haben, Ihren Dienst zu patchen, ohne ihn offline zu nehmen. Gleiches gilt für Kernel-Patches, die einen Systemneustart erfordern. Die Methode, die ich gewählt habe, besteht darin, meinen Server in verschiedene Hochverfügbarkeitsgruppen zu unterteilen, mit lb1, app1, Rabbitmq1 und db1 in einer Gruppe und lb2, app2, Rabbitmq2 und db2 in einer anderen Gruppe. Auf diese Weise kann ich jeweils eine Gruppe aktualisieren, ohne den Dienst offline zu nehmen.
Also, wie schnell ist schnell? Für die wenigen Softwareteile, die nicht mit einem Dienst ausgestattet sind, sollte Ihr System in der Lage sein, einen Patch innerhalb weniger Minuten bis bestenfalls einer Stunde zu installieren (z. B. die ShellShock-Schwachstelle von Bash). Bei Software wie OpenSSL, die einen Neustart des Dienstes erfordert, kann die Installation von Patches und der fehlertolerante Neustart des Dienstes etwas länger dauern, aber hier sind Orchestrierungstools hilfreich. In meinen letzten Artikeln über MCollective (siehe Tickets von Dezember 2016 und Januar 2017) habe ich einige Beispiele für die Verwendung von MCollective für das Patch-Management gegeben. Am besten ist es, ein System bereitzustellen, das die Patch-Installation und den Neustart von Diensten auf automatisierte und fehlertolerante Weise vereinfacht.
Wenn der Patch einen Systemneustart erfordert, wie ein Kernel-Patch, dauert es länger. Auch hier können Automatisierungs- und Orchestrierungstools diesen Prozess schneller machen, als Sie denken. Ich war in der Lage, Server in der Produktion innerhalb von ein oder zwei Stunden fehlertolerant zu aktualisieren und neu zu starten, und der Prozess verlief sogar noch schneller, wenn ich zwischen den Neustarts nicht auf Cluster-Synchronisierungs-Backups warten musste.
Leider halten viele Systemadministratoren immer noch an der veralteten Sichtweise der Betriebszeit als Zeichen des Stolzes fest – angesichts der Tatsache, dass etwa einmal im Jahr Notfall-Kernel-Patches erfolgen. Für mich bedeutet das nur, dass Sie die Sicherheit Ihres Systems nicht ernst nehmen!
Viele Organisationen verwenden immer noch Server, bei denen es sich um Single Points of Failure handelt, die nicht vorübergehend offline geschaltet werden können und aus diesem Grund nicht aktualisiert oder neu gestartet werden können. Wenn Sie Ihr System sicherer machen möchten, müssen Sie veralteten Ballast entfernen und ein System aufbauen, das zumindest während der nächtlichen Wartungsfenster neu gestartet werden kann.
Grundsätzlich ist ein schnelles und bequemes Patch-Management auch ein Zeichen für ein ausgereiftes und professionelles Systemmanagement-Team. Das Aktualisieren von Software ist eine der notwendigen Aufgaben für alle Systemadministratoren. Sich die Zeit zu nehmen, diesen Prozess einfach und schnell zu gestalten, bringt Vorteile, die weit über die Systemsicherheit hinausgehen. Es kann uns beispielsweise dabei helfen, einzelne Fehlerquellen im Architekturdesign zu finden. Darüber hinaus hilft es, veraltete Systeme in der Umgebung zu identifizieren und einen Anreiz zum Austausch dieser Teile zu schaffen. Wenn das Patch-Management gut genug durchgeführt wird, gewinnen Systemadministratoren letztlich mehr Zeit und können sich auf Bereiche konzentrieren, in denen Fachwissen wirklich benötigt wird.
Kyle Rankin ist ein leitender Sicherheits- und Infrastrukturarchitekt, zu dessen Büchern gehören: „Linux Hardening in Hostile Networks“, „DevOps Troubleshooting“ und „The Official Ubuntu Server Book“. Er ist außerdem Kolumnist für das Linux Journal.
Das obige ist der detaillierte Inhalt vonDer richtige Weg, Patches zu verwalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!