Ubuntu-Server automatisch mit Sicherheitsupdates versorgen: unattended-upgrades sicher einrichten¶
Veröffentlicht am 17. Oktober 2026 · Geschätzte Lesezeit: 7 Minuten
Ubuntu kann verfügbare Sicherheitsaktualisierungen täglich automatisch herunterladen und installieren – ohne dass du dich per SSH einloggen oder manuell apt upgrade ausführen musst. Ein Trockenlauf, aussagekräftige Protokolle und eine bewusst gewählte Neustartregel reduzieren das Ausfallrisiko. Die Einrichtung dauert etwa 20 bis 30 Minuten; am Folgetag solltest du den ersten regulären Durchlauf kurz kontrollieren.[1][3]
Die Anleitung wurde am 17. Oktober 2026 mit der offiziellen Ubuntu-Dokumentation zu Automatic updates abgeglichen.[1] Die Ubuntu-Manpage zu unattended-upgrade und der Bericht von linuxhosted.com ergänzen die praktischen Details.[2][3] Das Video Ubuntu 24.04: How to Automate Updates with Unattended Upgrades zeigt die Einrichtung zusätzlich.[4]
Voraussetzungen
- Ein Linux-Server mit einer unterstützten Ubuntu-Version (22.04, 24.04 oder 26.04 LTS)
- Terminal-Zugriff mit einem Benutzer, der
sudo-Rechte besitzt - Funktionierende APT-Paketquellen (
sudo apt updateläuft ohne Fehler) - Ein aktuelles Backup des Systems oder der wichtigsten Anwendungsdaten, bevor du die Konfiguration änderst
1. Systemversion und vorhandene Konfiguration erfassen¶
Verschaffe dir zuerst einen Überblick über die installierte Ubuntu-Version und ob unattended-upgrades bereits vorhanden ist:
Die erste Zeile zeigt die genaue Ubuntu-Version (zum Beispiel Ubuntu 24.04.2 LTS). Die zweite Zeile sagt dir, ob das Paket installiert ist – fehlt es, erscheint (keine).[1]
Sichere die bestehende Konfiguration, falls sie bereits existiert. Der Befehl || true verhindert einen Fehler, wenn die Datei noch nicht existiert oder noch nie angelegt wurde:
sudo cp -a /etc/apt/apt.conf.d/20auto-upgrades \
/etc/apt/apt.conf.d/20auto-upgrades.backup-$(date +%F-%H%M%S) 2>/dev/null || true
sudo cp -a /etc/apt/apt.conf.d/50unattended-upgrades \
/etc/apt/apt.conf.d/50unattended-upgrades.backup-$(date +%F-%H%M%S) 2>/dev/null || true
Ersetze die Platzhalter nicht – der Befehl erzeugt automatisch einen datierten Dateinamen wie 20auto-upgrades.backup-2026-10-17-063000.
2. Paket installieren oder aktualisieren¶
Falls unattended-upgrades noch fehlt, installiere es jetzt. Auch bei bereits vorhandener Installation stellst du mit diesem Befehl sicher, dass die aktuellste Version und die vom Paket ausgelieferten Standard-Konfigurationsdateien vorliegen:
Das Paket installiert keine klassische Server-Daemon – die regelmäßige Ausführung übernimmt der systemd-Timer apt-daily-upgrade.timer, der täglich automatisch startet.[1][2]
3. Tägliche Verarbeitung aktivieren¶
Der einfachste Weg für Einsteiger ist das integrierte Konfigurationswerkzeug. Es erstellt oder aktualisiert die Datei /etc/apt/apt.conf.d/20auto-upgrades für dich:
Wähle im Dialog \<Ja> aus. Alternativ erstellst oder bearbeitest du die Datei direkt. Sie muss mindestens diese beiden Zeilen enthalten:[1][3]
Zahlenwerte, keine Schalter
Die Werte sind laut Ubuntu-Dokumentation Tagesintervalle, keine booleschen Ja/Nein-Schalter: "1" bedeutet täglich, "0" deaktiviert die jeweilige Aktion.[1]
4. Gültige Quellen und gewünschte Pakete festlegen¶
Die wichtigste Konfigurationsdatei steuert, welche Paketquellen aktualisiert werden dürfen. Öffne sie mit einem Texteditor:
Suche den Abschnitt Unattended-Upgrade::Allowed-Origins. Die mitgelieferte Standard-Konfiguration aktiviert in der Regel:[3]
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}";
"${distro_id}:${distro_codename}-security";
"${distro_id}ESMApps:${distro_codename}-apps-security";
"${distro_id}ESM:${distro_codename}-infra-security";
};
Nicht alle Updates automatisch einspielen
Die erste Zeile (ohne -security) erlaubt alle verfügbaren Updates, nicht nur Sicherheitsupdates. Auf einem Produktionsserver solltest du diese Zeile auskommentieren, damit nur geprüfte Sicherheitsupdates automatisch eingespielt werden.[3] Ersetze die Zeile durch // "${distro_id}:${distro_codename}"; mit vorangestellten //.
Falls ein bestimmtes Paket bei automatischen Updates in der Vergangenheit Probleme verursacht hat, nimm es in die Ausschlussliste auf. Der reguläre Ausdruck $ am Ende stellt sicher, dass nur der exakte Paketname gemeint ist:
Ersetze libc-bin durch den tatsächlichen Paketnamen, der nicht automatisch aktualisiert werden soll.
5. Neustartregel bewusst festlegen¶
Kernel- und Bibliotheksaktualisierungen (libc, OpenSSL) werden erst nach einem Neustart wirksam. Für einen Einsteiger-Artikel empfehlen wir: Standardmäßig keinen unbeaufsichtigten Neustart aktivieren.[1]
Die Datei /etc/apt/apt.conf.d/50unattended-upgrades enthält dazu diese Voreinstellung:
Der Doppel-Schrägstrich // zeigt an, dass die Zeile auskommentiert ist und der Standardwert "false" gilt.
Wenn du den Server nicht regelmäßig manuell neustartest und Sicherheitsupdates für Kernel trotzdem wirksam werden sollen, aktiviere den automatischen Neustart in einem definierten Zeitfenster. Erstelle dafür eine separate Konfigurationsdatei, damit Änderungen an der Hauptkonfiguration durch Paket-Updates nicht überschrieben werden:
sudo tee /etc/apt/apt.conf.d/52unattended-upgrades-local << 'EOF'
// Lokale Neustartregel – aktiviert nur, wenn gewünscht
Unattended-Upgrade::Automatic-Reboot "false";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";
EOF
Zum Aktivieren ersetze "false" durch "true". Die Uhrzeit "04:00" ist die Zeitzone des Servers; prüfe sie vorher mit timedatectl.
Vor dem Aktivieren prüfen
Ein automatischer Neustart mitten im Arbeitstag kann Datenverlust oder Ausfallzeiten verursachen. Aktiviere diese Option nur, wenn der Server zuverlässig alle notwendigen Dienste automatisch startet und keine Benutzer zu unerwarteten Zeiten angemeldet sind.[1]
6. Konfiguration prüfen und Trockenlauf durchführen¶
Lass dir die aktuellen Werte anzeigen, um zu bestätigen, dass die Konfiguration korrekt eingelesen wird:
Die Ausgabe sollte beide Werte aus 20auto-upgrades sowie die Neustartregel aus 50unattended-upgrades anzeigen.[3]
Prüfe die systemd-Timer, die die tägliche Ausführung steuern:
systemctl list-timers apt-daily.timer apt-daily-upgrade.timer
systemctl status apt-daily.timer apt-daily-upgrade.timer --no-pager
Beide Timer sollten als active (waiting) oder active (running) angezeigt werden und einen nächsten Ausführungszeitpunkt besitzen.[1]
Führe jetzt einen Trockenlauf durch. Dabei simuliert unattended-upgrade den gesamten Vorgang, ohne tatsächlich Pakete zu installieren:
Paketname versus Programmname
Das Paket heißt unattended-upgrades (mit -s am Ende), das Programm dagegen unattended-upgrade (ohne -s). Eine leichte Verwechslungsquelle, auf die du bei der Eingabe achten solltest.[3]
Der Trockenlauf zeigt alle Pakete an, die beim nächsten echten Lauf aktualisiert würden, inklusive ihrer Herkunft (zum Beispiel Ubuntu:24.04-noble-security).[2]
7. Echten Lauf abwarten und Protokolle kontrollieren¶
Der Trockenlauf installiert nichts. Der erste echte Durchlauf erfolgt automatisch durch den systemd-Timer, üblicherweise in den frühen Morgenstunden. Kontrolliere am nächsten Tag die Protokolle:
sudo tail -n 100 /var/log/unattended-upgrades/unattended-upgrades.log
sudo tail -n 100 /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
Ein gesundes Log enthält Einträge über den Paketindex-Refresh, installierte Sicherheitspakete und – wenn aktiviert – die Entscheidung über einen Neustart. Bei einem leeren Log solltest du die Timer und Konfiguration erneut prüfen.[2][3]
Ergänzend zeigt auch das Journal des systemd-Dienstes die letzten Ausführungen:
Backup und Rückweg¶
So deaktivierst du die automatischen Updates bei Bedarf – ohne das Paket zu entfernen:
Setze die beiden Werte in 20auto-upgrades auf "0":
Alternativ stellst du die gesicherten Konfigurationsdateien zurück:
sudo cp /etc/apt/apt.conf.d/20auto-upgrades.backup-* /etc/apt/apt.conf.d/20auto-upgrades
sudo cp /etc/apt/apt.conf.d/50unattended-upgrades.backup-* /etc/apt/apt.conf.d/50unattended-upgrades
Prüfe anschließend, ob die Änderungen wirksam sind:
Bereits installierte Pakete zurücksetzen
Das Deaktivieren macht eine bereits erfolgte Aktualisierung nicht rückgängig. Wenn ein automatisch installiertes Paket ein Problem verursacht, ermittle anhand von /var/log/apt/history.log die genaue Paketversion und prüfe einen versierten Downgrade – veröffentliche keinen generischen, ungetesteten Downgrade-Befehl.
Risiken und typische Fehler¶
- Paket-Programm-Verwechslung: Das Paket
unattended-upgrades(Plural) mit dem Befehlunattended-upgrade(Singular) verwechseln – achte auf das fehlende -s im Befehl.[3] - Intervallwerte missverstehen:
"1"und"0"sind Tagesintervalle, keine booleschen Schalter und erst recht keine Uhrzeiten.[1] - Syntaxfehler: Fehlende Semikolons oder typografische Anführungszeichen (
"statt") in den Konfigurationsdateien führen zu stillen Fehlern. - Automatischen Reboot unterschätzen: Nicht geprüft, ob Zeitzone, angemeldete Benutzer und Dienste-Autostart zum gewählten Zeitpunkt passen.
- Trockenlauf missverstehen: Ein erfolgreicher Trockenlauf simuliert nur – er installiert kein einziges Paket.
- Nur den Dienststatus prüfen: Die regelmäßige Ausführung wird nicht von einem Dienst, sondern von den systemd-Timern
apt-daily.timerundapt-daily-upgrade.timerangestoßen.[1] - Verpasste Timer nicht erkennen: Ein unmittelbar nach dem Einschalten gestarteter APT-Lauf ist kein Fehler – systemd-Timer können verpasste Ausführungen nachholen und verwenden zufällige Verzögerungen, um die Server-Last zu verteilen.
Fertig¶
Nach erfolgreicher Einrichtung läuft die automatische Sicherheitsupdate-Versorgung im Hintergrund. Fasse kurz zusammen, was du eingerichtet hast:
- Täglicher Paketindex-Refresh und Sicherheitsupdate-Installation – aktiviert über
20auto-upgrades. - Gültige Quellen begrenzt – idealerweise nur
-securityaktiviert in50unattended-upgrades. - Kein oder bewusst gewählter automatischer Neustart – festgelegt in
50unattended-upgradesoder der lokalen Ergänzungsdatei. - Trockenlauf und Log-Prüfung – bestätigt, dass die Konfiguration funktioniert.
Führe zur abschließenden Funktionsprüfung folgende Befehle aus:
if [ -e /var/run/reboot-required ]; then
echo "Neustart erforderlich"
cat /var/run/reboot-required.pkgs 2>/dev/null || true
else
echo "Derzeit kein Neustart angefordert"
fi
Erfolgskriterien:
- Beide APT-Periodic-Werte sind auf
"1"gesetzt. - Beide systemd-Timer sind geladen und besitzen einen nächsten Ausführungszeitpunkt.
- Der Trockenlauf endet ohne Konfigurations- oder Paketmanagerfehler.
- Nach dem ersten echten Lauf existiert ein plausibler Logeintrag in
/var/log/unattended-upgrades/unattended-upgrades.log. - Ein eventuell notwendiger Neustart wird erkannt und von dir eingeplant.