Automatische Updates am Server: sicher, ohne Überraschungen

Automatische Updates sind auf einem Linux-Server einer der wirksamsten Schutzmaßnahmen überhaupt. Die meisten erfolgreichen Angriffe nutzen Lücken, für die es längst ein Update gibt, das nur niemand eingespielt hat. Unter Debian und Ubuntu erledigt das ein kleines Programm namens unattended-upgrades. Richtig eingestellt spielt es Sicherheitsupdates jede Nacht ein, meldet sich bei Problemen per Mail und lässt größere Sprünge in Ruhe, die Sie lieber selbst begleiten.

Das Wichtigste in Kürze

  • Unter Debian und Ubuntu spielt unattended-upgrades Sicherheitsupdates jede Nacht automatisch ein.
  • Automatisch: Sicherheitsupdates. Von Hand: neue Versionen der Distribution und große Datenbank-Sprünge.
  • Lassen Sie sich bei Fehlern per Mail melden und legen Sie fest, wann der Server neu starten darf.
  • Backups, Snapshots und ein Monitoring fangen die seltenen Probleme ab.

Warum automatische Updates sinnvoll sind

Auf einem vServer oder Root-Server sind Sie selbst für die Sicherheitsupdates verantwortlich. Der Anbieter kümmert sich nur um die Hardware und das Netz. Wer Updates von Hand einspielt, schafft das vielleicht einmal im Monat. Zwischen der Veröffentlichung einer Lücke und den ersten Angriffen vergehen aber oft nur Tage.

Die Sorge vieler Admins: Ein Update könnte etwas kaputt machen. Bei Sicherheitsupdates in Debian und Ubuntu ist das Risiko gering, weil die Distributionen dort nur die Lücke schließen und keine neuen Funktionen einbauen. Das Risiko, eine bekannte Lücke wochenlang offen zu lassen, ist deutlich größer.

Updates von Hand oder automatisch
Von Hand eingespielte Updates kommen oft erst nach Wochen. Automatische Sicherheitsupdates schließen Lücken innerhalb eines Tages und melden Fehler per Mail.

Was automatisch laufen sollte und was nicht

Nicht jedes Update eignet sich für den Autopiloten. Eine gute Faustregel:

  • Automatisch: Sicherheitsupdates der Distribution, also Kernel, OpenSSL, OpenSSH, Webserver, PHP-Pakete aus den offiziellen Quellen.
  • Automatisch mit Vorsicht: normale Fehlerkorrekturen der Distribution und Pakete aus fremden Quellen wie Docker oder Node.js. Das geht, wenn Sie ein Backup haben und den Server überwachen.
  • Nie automatisch: der Sprung auf eine neue Version der Distribution, etwa von Debian 12 auf 13, und große Versionswechsel von Datenbanken. Die planen Sie bewusst und testen vorher.

Ihre Anwendungen sind ein eigenes Thema. Ein CMS wie WordPress hat eigene Updates, die unattended-upgrades nicht kennt. Für Container gilt dasselbe, sie aktualisieren Sie mit neuen Images, wie im Ratgeber zu Docker auf dem vServer beschrieben.

Automatische Updates unter Debian und Ubuntu einrichten

Auf Ubuntu Server ist unattended-upgrades meist schon installiert und für Sicherheitsupdates aktiv. Bei Debian hängt es vom Abbild Ihres Anbieters ab. Prüfen und installieren Sie es so:

sudo apt update
sudo apt install unattended-upgrades apt-listchanges
sudo dpkg-reconfigure -plow unattended-upgrades

Der letzte Befehl fragt, ob Updates automatisch eingespielt werden sollen. Mit „Ja“ legt er die Datei /etc/apt/apt.conf.d/20auto-upgrades an. Sie sollte diese zwei Zeilen enthalten:

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

Die Eins bedeutet: einmal täglich. Der Zeitpunkt wird über einen Timer von systemd gesteuert und hat eine zufällige Verzögerung, damit nicht alle Server der Welt gleichzeitig die Paketquellen abfragen.

unattended-upgrades einrichten
Paket installieren, automatische Updates einschalten, erlaubte Quellen festlegen, Mailbenachrichtigung und Neustart einstellen und mit einem Probelauf testen.

Festlegen, welche Updates eingespielt werden

Welche Quellen unattended-upgrades nutzen darf, steht in /etc/apt/apt.conf.d/50unattended-upgrades. Unter Debian sieht der wichtige Teil so aus:

Unattended-Upgrade::Origins-Pattern {
        "origin=Debian,codename=${distro_codename},label=Debian";
        "origin=Debian,codename=${distro_codename},label=Debian-Security";
        "origin=Debian,codename=${distro_codename}-security,label=Debian-Security";
};

Die erste Zeile erlaubt auch normale Fehlerkorrekturen aus Zwischenveröffentlichungen. Wollen Sie nur Sicherheitsupdates, setzen Sie davor zwei Schrägstriche //. Ubuntu nutzt statt Origins-Pattern einen Abschnitt Allowed-Origins, in dem die Zeile mit -security bereits aktiv ist.

Einzelne Pakete schließen Sie über eine Sperrliste aus. Das ist sinnvoll für Software, bei der Sie jeden Versionswechsel selbst begleiten wollen:

Unattended-Upgrade::Package-Blacklist {
        "mariadb-server";
};

Wollen Sie Pakete aus einer fremden Quelle wie Docker mit aufnehmen, ergänzen Sie in der Liste eine Zeile mit deren Herkunft, etwa "origin=Docker";. Die genaue Bezeichnung einer Quelle zeigt apt-cache policy.

Benachrichtigung per Mail

Automatische Updates sollten nicht still laufen. Lassen Sie sich melden, wenn etwas schiefgeht. In derselben Datei setzen Sie:

Unattended-Upgrade::Mail "admin@beispiel.de";
Unattended-Upgrade::MailReport "only-on-error";

Damit der Server Mails verschicken kann, braucht er ein Programm für den Versand, etwa msmtp-mta mit den Zugangsdaten eines bestehenden Postfachs. Einen kompletten Mailserver brauchen Sie dafür nicht. Testen Sie den Versand einmal mit echo Test | mail -s Test admin@beispiel.de. Wählen Sie statt only-on-error den Wert always, bekommen Sie nach jedem Lauf eine Liste der eingespielten Pakete.

Neustarts planen

Manche Updates wirken erst nach einem Neustart, vor allem beim Kernel. Ubuntu und Debian legen dann die Datei /var/run/reboot-required an. Sie haben zwei Möglichkeiten:

Automatisch neu starten. Für Server, die ein paar Minuten Pause in der Nacht vertragen, ist das die einfachste Lösung:

Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";

Selbst neu starten. Lassen Sie sich per Mail oder über Ihr Monitoring melden, dass ein Neustart ansteht, und starten Sie zu einer passenden Zeit. Das bietet sich an, wenn eine Datenbank oder ein Shop ohne Unterbrechung laufen soll.

Nicht jeder Neustart betrifft den ganzen Server. Wurde nur eine Bibliothek wie OpenSSL aktualisiert, reicht es, die Dienste neu zu starten, die sie nutzen. Das Programm needrestart erkennt diese Dienste nach einem Update und startet sie auf Wunsch neu. Unter Ubuntu ist es vorinstalliert.

Wann ein Neustart nötig ist
Nach einem Kernel-Update braucht es einen Neustart des Servers. Nach Updates von Bibliotheken wie OpenSSL reicht der Neustart der betroffenen Dienste, den needrestart erkennt.

Testen und Protokolle lesen

Ob Ihre Einstellungen stimmen, zeigt ein Probelauf. Er spielt nichts ein, sondern listet, was passieren würde:

sudo unattended-upgrade --dry-run --debug

Was in den letzten Nächten passiert ist, steht in /var/log/unattended-upgrades/unattended-upgrades.log. Ein erfolgreicher Lauf sieht dort etwa so aus:

INFO Starting unattended upgrades script
INFO Allowed origins are: origin=Debian,codename=bookworm,label=Debian-Security, ...
INFO Packages that will be upgraded: libssl3 openssl
INFO All upgrades installed

Die Ausgaben von dpkg zu den einzelnen Paketen finden Sie im selben Ordner. Werfen Sie in den ersten Wochen regelmäßig einen Blick hinein. Steht dort „No packages found that can be upgraded unattended“, obwohl apt list --upgradable Updates zeigt, passt die Liste der erlaubten Quellen nicht.

Wartungsfenster festlegen und kommunizieren

Ein automatischer Neustart um vier Uhr morgens stört niemanden, solange alle davon wissen. In Firmen gehört das Zeitfenster in die Dokumentation des Servers, und wer Kundenseiten betreibt, nennt es im Vertrag. Ein typischer Satz lautet: „Sicherheitsupdates werden täglich automatisch eingespielt, Neustarts erfolgen bei Bedarf zwischen 4:00 und 4:15 Uhr.“

Betreiben Sie mehrere Server, die sich gegenseitig vertreten, etwa zwei Webserver hinter einem Lastverteiler, legen Sie die Neustarts auf unterschiedliche Zeiten. Dann ist immer einer erreichbar. Für Datenbanken mit nur einem Server planen Sie Neustarts lieber von Hand in ruhigen Zeiten und lassen sich nur benachrichtigen.

Updates der Anwendungen nicht vergessen

unattended-upgrades kümmert sich nur um Pakete des Systems. Ihr CMS, seine Plugins und Programme, die Sie per Hand oder über eigene Werkzeuge installiert haben, bleiben davon unberührt. Bei WordPress können Sie kleinere Updates und Sicherheitsupdates ebenfalls automatisch einspielen lassen, größere Updates prüfen Sie besser vorher. Wie Sie dabei vorgehen, beschreibt der Ratgeber zur WordPress-Sicherheit.

Behalten Sie außerdem das Supportende Ihres Systems im Blick. Eine Debian-Version bekommt rund drei Jahre lang Sicherheitsupdates vom Debian-Team und danach etwa zwei weitere Jahre über das Projekt Debian LTS, das aber nicht alle Pakete abdeckt. Bei Ubuntu sind es für LTS-Versionen fünf Jahre, mit dem Angebot Ubuntu Pro länger. Ist das Supportende erreicht, helfen auch automatische Updates nicht mehr, weil keine neuen kommen. Planen Sie den Wechsel auf die nächste Version rechtzeitig.

Sicherheitsnetz: Backups und Snapshots

Automatische Updates sind sicher, wenn Sie im seltenen Fall eines Problems schnell zurückkommen. Dafür brauchen Sie zwei Dinge. Erstens ein regelmäßiges Backup der Daten, wie es der Ratgeber zu Backup-Strategien beschreibt. Zweitens, wenn Ihr Anbieter das bietet, Snapshots des ganzen Servers. Ein Snapshot vor einem großen manuellen Update ist in Sekunden angelegt und in Minuten zurückgespielt.

Ein externes Monitoring meldet, wenn nach einem Neustart ein Dienst nicht wieder hochkommt. So bemerken Sie Probleme am Morgen und nicht erst durch Anrufe von Kunden. Mehr dazu steht im Ratgeber zum Root Server Monitoring.

Andere Systeme: AlmaLinux, Rocky und Co.

Auf Systemen aus der Familie von Red Hat übernimmt das Paket dnf-automatic dieselbe Aufgabe. Nach der Installation stellen Sie in /etc/dnf/automatic.conf die Zeilen upgrade_type = security und apply_updates = yes ein und starten den Timer mit sudo systemctl enable --now dnf-automatic.timer. Welche Distribution für Ihren Server passt, vergleicht der Ratgeber zu Root-Server-Betriebssystemen.

Weitere Einstellungen und Beispiele für Debian sammelt das Debian-Wiki zu UnattendedUpgrades.

Das Sicherheitsnetz für automatische Updates
Mail bei Fehlern, Protokolle, ein externes Monitoring und Backups oder Snapshots sorgen dafür, dass ein seltenes Problem nach einem Update schnell auffällt und behoben ist.

Häufig gestellte Fragen

Können automatische Updates meinen Server lahmlegen?

Bei Sicherheitsupdates der Distribution ist das selten. Häufiger stört ein automatischer Neustart, wenn ein Dienst danach nicht startet. Ein Monitoring und ein Backup fangen das ab.

Wie oft laufen automatische Updates?

Mit den Standardwerten einmal täglich. Häufiger ist nicht nötig, seltener sollte es für Sicherheitsupdates nicht sein.

Werden auch Docker-Container aktualisiert?

Nein. unattended-upgrades aktualisiert nur Pakete des Systems, auf Wunsch auch Docker selbst. Die Images Ihrer Container erneuern Sie getrennt.

Brauche ich einen Kernel-Livepatch?

Er schließt Lücken im Kernel ohne Neustart. Für die meisten Server reicht ein geplanter Neustart in der Nacht. Livepatch lohnt sich, wenn jede Unterbrechung teuer ist.

Was ist mit Shared Hosting?

Dort spielt der Anbieter alle Updates des Servers ein. Sie kümmern sich nur um Ihr CMS, seine Erweiterungen und die PHP-Version.

Automatische Updates heute einschalten

Installieren Sie unattended-upgrades, erlauben Sie mindestens die Sicherheitsquellen, lassen Sie sich bei Fehlern per Mail melden und legen Sie fest, wann der Server neu starten darf. Ein Probelauf zeigt sofort, ob alles stimmt.

Prüfen Sie jetzt die weiteren Schritte zur Absicherung Ihres Servers.


Weitere Artikel in „Root-Server“

Fail2ban einrichten: Angreifer automatisch aussperren

Fail2ban einrichten auf Debian und Ubuntu: Installation, jail.local, Sperrzeiten, SSH- und Webserver…

Was ist ein Root-Server? Grundlagen, Aufgaben und Kosten

Was ist ein Root Server und für wen lohnt er sich? Der Ratgeber erklärt vollen Zugriff, Verantwortun…

Root-Server oder Managed Server: Aufwand, Kosten, Verantwortung

Root Server oder Managed Server? Der Vergleich zeigt Unterschiede bei Aufwand, Kosten und Verantwort…

Root-Server Betriebssysteme: Linux-Distributionen im Vergleich

Root Server Betriebssysteme im Vergleich: Debian, Ubuntu, AlmaLinux, Rocky Linux und Windows Server …

Root-Server Sicherheit: in fünf Schritten absichern

Root Server Sicherheit von Anfang an: SSH härten, Firewall einrichten, Updates automatisieren und An…

Root-Server einrichten: vom leeren Server zur Website

Root Server einrichten Schritt für Schritt: Erstzugang, Benutzer anlegen, SSH absichern, Dienste ins…