Zum Inhalt

Automatische Updates

Automatische Security-Updates sind eine der wichtigsten Sicherheitsmaßnahmen für Server.

Warum automatische Updates?

Ungepatchte Systeme

Die meisten erfolgreichen Angriffe nutzen bekannte Sicherheitslücken, für die bereits Patches existieren. Automatische Updates schließen diese Lücken zeitnah.

timeline
    title Typischer Exploit-Zeitverlauf
    section Schwachstelle
        Tag 0 : Schwachstelle entdeckt
        Tag 1-7 : Patch entwickelt
    section Risiko
        Tag 7-14 : Patch veröffentlicht
        Tag 14-30 : Exploits kursieren
    section Gefahr
        Tag 30+ : Massenangriffe
        Ungepatchte Systeme : Kompromittiert

1. Unattended-Upgrades installieren

sudo apt install unattended-upgrades apt-listchanges -y

2. Automatische Updates aktivieren

Aktiviere automatische Updates:

sudo dpkg-reconfigure -plow unattended-upgrades

Wähle Yes bei der Frage nach automatischen Updates.

3. Konfiguration anpassen

Hauptkonfiguration

Bearbeite die Konfigurationsdatei:

sudo vim /etc/apt/apt.conf.d/50unattended-upgrades

Empfohlene Einstellungen

/etc/apt/apt.conf.d/50unattended-upgrades
// Welche Updates automatisch installieren
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";
    // Docker-Repository (optional)
    // "Docker:${distro_codename}";
};

// Pakete die NICHT automatisch aktualisiert werden
Unattended-Upgrade::Package-Blacklist {
    // Keine Blacklist - alle Security-Updates erlauben
};

// E-Mail-Benachrichtigung bei Updates
Unattended-Upgrade::Mail "admin@deine-domain.de";
Unattended-Upgrade::MailReport "on-change";

// Nicht verwendete Abhängigkeiten entfernen
Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";

// Automatischer Reboot bei Kernel-Updates
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "04:00";

// Vor dem Reboot prüfen ob Benutzer eingeloggt sind
Unattended-Upgrade::Automatic-Reboot-WithUsers "false";

// Logging
Unattended-Upgrade::SyslogEnable "true";
Unattended-Upgrade::SyslogFacility "daemon";
Konfigurationsoptionen erklärt
Option Beschreibung
Allowed-Origins Quellen für automatische Updates
Package-Blacklist Pakete die nie automatisch aktualisiert werden
Mail E-Mail-Adresse für Benachrichtigungen
Automatic-Reboot Automatischer Reboot bei Kernel-Updates
Automatic-Reboot-Time Wann der Reboot stattfinden soll
Automatic-Reboot-WithUsers Reboot auch wenn Benutzer eingeloggt

Update-Intervall konfigurieren

sudo vim /etc/apt/apt.conf.d/20auto-upgrades
/etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "7";
Einstellung Wert Beschreibung
Update-Package-Lists 1 Täglich Paketlisten aktualisieren
Unattended-Upgrade 1 Täglich Updates installieren
Download-Upgradeable-Packages 1 Täglich Downloads vorbereiten
AutocleanInterval 7 Wöchentlich Cache aufräumen

4. Konfiguration testen

Trockenlauf

Führe einen Testlauf durch (installiert nichts):

sudo unattended-upgrades --dry-run --debug

Manuell ausführen

Führe Updates manuell aus:

sudo unattended-upgrades -v

5. Logs überwachen

Update-Log prüfen

sudo cat /var/log/unattended-upgrades/unattended-upgrades.log

DPKG-Log prüfen

sudo cat /var/log/dpkg.log | tail -50

Systemd-Log

journalctl -u unattended-upgrades

6. Automatischen Reboot konfigurieren

Mit Coolify-Berücksichtigung

Container bei Reboot

Stelle sicher, dass Coolify und alle Container nach einem Reboot automatisch starten:

# Docker-Autostart prüfen
sudo systemctl is-enabled docker
# Sollte "enabled" zeigen

Reboot-Zeitfenster wählen

Wähle eine Zeit mit geringem Traffic:

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

Reboot-Benachrichtigung

Optional: Benachrichtigung vor Reboot senden:

sudo vim /etc/apt/apt.conf.d/50unattended-upgrades
// Führe Skript vor Reboot aus
Unattended-Upgrade::InstallOnShutdown "false";

7. Needrestart konfigurieren

Needrestart benachrichtigt über Dienste, die nach Updates neu gestartet werden müssen:

sudo apt install needrestart -y

Konfigurieren für automatischen Neustart:

sudo vim /etc/needrestart/needrestart.conf
/etc/needrestart/needrestart.conf
# Automatisch Dienste neustarten (a = automatic)
$nrconf{restart} = 'a';

8. Kernel-Livepatch (optional)

Ubuntu Pro bietet Kernel-Livepatching ohne Reboot:

Ubuntu Pro

Kernel-Livepatch ist für bis zu 5 Maschinen kostenlos mit Ubuntu Pro.

# Ubuntu Pro aktivieren (Token von ubuntu.com/pro)
sudo pro attach YOUR_TOKEN

# Livepatch-Status prüfen
canonical-livepatch status

9. Update-Benachrichtigungen

Per E-Mail

Die Konfiguration in Schritt 3 sendet E-Mails. Stelle sicher, dass ein MTA (Mail Transfer Agent) installiert ist:

# Einfacher MTA für lokale Systeme
sudo apt install bsd-mailx postfix -y

# Bei der Postfix-Konfiguration "Local only" wählen

Systemd-Timer prüfen

systemctl list-timers | grep apt

Zusammenfassung

Nach Abschluss dieses Abschnitts:

  • Unattended-upgrades installiert und konfiguriert
  • Security-Updates werden automatisch installiert
  • E-Mail-Benachrichtigungen eingerichtet
  • Automatischer Reboot bei Kernel-Updates
  • Needrestart für Dienste-Neustart