Infrastruktur

36 Server patchen ohne unattended-upgrades

Es gibt drei Grundhaltungen: nichts tun, alles blind automatisieren oder erst hinsehen und dann entscheiden. Wir haben unattended-upgrades von der gesamten Serverflotte entfernt und auch unser eigenes automatisches Patching mit Ansible abgebaut, zugunsten des Grundsatzes „Sichtbarkeit zuerst“, umgesetzt mit PatchMon. Warum, wie, und das Ritual, das dazugehört.

Kontrollturm, der Reihen von Servern überwacht, jeweils mit eigenem Update-Status
Inhalt (4 Abschnitte)
  1. Das Problem von unattended-upgrades ist nicht, was es tut, sondern was es nicht sieht
  2. Zwischenschritt: die selbst gebaute Automatisierung, und warum wir auch sie entfernt haben
  3. Der heutige Grundsatz: PatchMon, erst hinsehen, dann entscheiden
  4. Das Ritual, das Patchen langweilig macht (genau darum geht es)

Bei der Frage der Sicherheitsupdates kennt eine Serverflotte nur drei mögliche Grundhaltungen. Nichts tun, die verbreitetste und nicht zu rechtfertigen. Alles automatisieren: unattended-upgrades überall, die Pakete installieren sich nachts von selbst. Oder erst hinsehen, dann entscheiden: laufende Sichtbarkeit über den Zustand jeder Maschine und Updates, die nach einer werkzeuggestützten menschlichen Entscheidung eingespielt werden. Wir haben die zweite praktiziert und dann sogar unsere selbst gebaute Automatisierung abgebaut, um die dritte einzuführen. Hier die Gründe und das vollständige Vorgehen.

Das Problem von unattended-upgrades ist nicht, was es tut, sondern was es nicht sieht #

Seien wir fair: Auf einem einzelnen Arbeitsplatzrechner oder einem privaten Server ist unattended-upgrades unendlich viel besser als Vergessen. Unser Einwand gilt für eine produktive Serverflotte: Ein Patch ist eine ungetestete Änderung, eingespielt zu einem Zeitpunkt, den Sie nicht wählen, ohne einen Menschen, der das Ergebnis prüft. Ein Dienst, der mitten in der Nacht neu startet und nicht wiederkommt, eine Abhängigkeit, die eine Anwendung lahmlegt, ein Update, dessen vollständiger Neustart wochenlang aussteht: Die blinde Automatisierung macht jede Nacht zu einem Deployment ohne Piloten. Und ihr Scheitern ist still: Das Paket, das sich nicht installiert, warnt niemanden, die Maschine, die in Ihrem Kopf „aktuell“ ist, driftet in der Realität ab. Bei dreißig Maschinen mit unterschiedlichen Rollen kostet der zufällige nächtliche Ausfall mehr als die paar Tage Verzögerung eines bewusst entschiedenen Patches.

Zwischenschritt: die selbst gebaute Automatisierung, und warum wir auch sie entfernt haben #

Unsere erste Antwort war ein zentrales Patching mit Ansible: Playbooks, eine Zeitplanung, Berichte. Ordentlich, aber zwei strukturelle Schwächen wogen mit der Zeit schwer. Erstens kein lebendes Inventar: Zwischen zwei Läufen keine Ahnung vom tatsächlichen Zustand der Flotte: wie viele Updates ausstehen, wo, seit wann. Zweitens patchte der Cronjob ohne hinzusehen: dieselbe blinde Automatisierung, nur von uns geschrieben. Die Lehre: Das Problem war nicht das Werkzeug zum Einspielen, sondern das Fehlen dauerhafter Sichtbarkeit zwischen den Eingriffen.

Der heutige Grundsatz: PatchMon, erst hinsehen, dann entscheiden #

Heute meldet ein schlanker Agent auf jeder der 36 Maschinen der Flotte laufend an eine selbst gehostete PatchMon-Instanz (Open Source): ausstehende Pakete, Sicherheitsupdates, Versionen, Verlauf. Das Dashboard beantwortet jederzeit die Frage „Wie steht die Flotte da?“, und das Patching wird wieder, was es immer hätte sein sollen: eine informierte Entscheidung. Von derselben Konsole aus läuft ein Patch-Lauf gezielt auf einer Maschine oder einer Gruppe, zur gewählten Uhrzeit, und sein Ergebnis wird protokolliert. Bis heute über achtzig Läufe, null Fehlschläge: nicht weil das Werkzeug zaubern kann, sondern weil jeder Lauf unter Beobachtung erfolgt.

Das Ritual, das Patchen langweilig macht (genau darum geht es) #

  1. Vorher hinsehen: Was wird passieren, welche Dienste sind betroffen, steht ein Neustart eines Dienstes oder der Maschine an?
  2. Snapshot vorher, bei jedem nennenswerten Update: Auf einem Hypervisor kostet ein Snapshot der Maschine ein paar Sekunden und macht aus dem schlimmsten Fall ein Zurückrollen von fünf Minuten.
  3. Reihenfolge: zuerst Entwicklungsumgebungen und unkritische Maschinen, danach die Produktion, nie alles auf einmal.
  4. Nachher prüfen: der Healthcheck der Anwendung: nicht „das Paket ist installiert“, sondern „der Dienst antwortet“. Das ist der Schritt, den blinde Automatisierung nie machen wird.
  5. Bewusste Ausnahmen: Ein Major-Versionssprung einer Datenbank ist eine Migration, kein Patch: nie automatisch, nie gebündelt mit anderen.

Sichtbarkeit über die Flotte, bewusst entschiedene Läufe, Snapshots vorher, Prüfungen nachher: Das ist der konkrete Inhalt unserer Managed Services. Wenn Ihre aktuelle Antwort „unattended-upgrades und Daumen drücken“ lautet oder, schlimmer, „das sehen wir später“, lassen Sie uns vergleichen.

Über uns
01/Als Nächstes lesenDrei Artikel

Verwandte Artikel

Infrastruktur

Die Exploit-Fabriken: Ihre Firewall ist zur Frontlinie geworden

Zwei Bachelorstudenten in Changsha betrieben eine automatisierte Kette, die eine Firmware entschlüsselt, sie mit Tausenden Aufrufen dekompiliert, Hypothesen über Lücken aufstellt, den Exploit schreibt und ihn im Labor testet, in einer Schleife, Tag und Nacht. Mehr als ein Dutzend unbekannte Schwachstellen in einem Monat in Netzwerkgeräten, rund fünfzig Organisationen im Visier, dreizehn zeitgesteuerte Sammel-Agenten. Was das für das Inventar eines KMU bedeutet.

cybersicherheitschwachstelle
Infrastruktur

Sporadische SERVFAIL: der verwaiste DS-Eintrag, der 15 % der Auflösungen scheitern ließ

Eine CI, die sporadisch fehlschlägt, zwei verschiedene Fehlermeldungen, ein offensichtlicher Verdächtiger, der nichts damit zu tun hatte, und eine unsichtbare Ursache: ein DNSSEC-Eintrag, der beim Parent veröffentlicht blieb, obwohl die Zone nicht mehr signiert war. Obduktion einer tückischen DNS-Störung, mit der Methode, die am Ende Klarheit brachte.

dnssecdns
Infrastruktur

Analyse eines NVMe-Ausfalls: die toten Kondensatoren, die alles verlangsamten

Zweieinhalb Monate lang sammelte ein Hypervisor Replikations-Timeouts an, ohne dass ein Datenträger „tot“ gewesen wäre. Der Schuldige: die Power-Loss-Protection-Kondensatoren einer NVMe, die still ausgefallen waren. Vollständige Analyse: vom Symptom bis zu smartctl, vom Austausch bei OVH bis zum Resilver, der 20.000 latente Fehler ans Licht brachte.

nvmeplp

Und jetzt

Eine Infrastruktur, betreut und überwacht rund um die Uhr?

Bastion, SIEM, bewusst eingespielte Updates, getestete Backups: was wir bei unseren Kunden umsetzen. Erstgespräch kostenlos.

Ihr Projekt besprechen

Antwort binnen 24 Stunden an Werktagen, von einem der beiden Gründer. Oder telefonisch: +33 7 59 96 14 99.