Automatische Updates: unattended-upgrades Anleitung
unattended-upgrades installieren und konfigurieren, nur Sicherheitsupdates, E-Mail-Benachrichtigungen, Tests, Risiken und Gegenmaßnahmen.
Inhaltsverzeichnis
Automatische Updates: unattended-upgrades Anleitung
Eine der grundlegendsten Anforderungen an die Serversicherheit ist die rechtzeitige Anwendung von Sicherheits-Patches. Das Vergessen manueller Updates kann Ihren Server bekannten Sicherheitslücken aussetzen. Das Paket unattended-upgrades wendet Sicherheitsupdates auf Ubuntu- und Debian-Systemen automatisch an. Diese Anleitung behandelt Installation, Konfiguration und Best Practices.
Was ist unattended-upgrades?
unattended-upgrades ist ein APT-Plugin, das Sicherheitsupdates ohne menschliches Eingreifen automatisch herunterlädt und installiert. Es ist ideal für:
- Schnelle Anwendung kritischer Sicherheits-Patches
- Automatische Updates außerhalb der Geschäftszeiten oder in Wartungsfenstern
- Vereinfachung der Update-Verfolgung bei der Verwaltung mehrerer Server
Automatische Updates können manchmal zu Dienstunterbrechungen führen. Kernel-Updates erfordern insbesondere einen Neustart. Konfigurieren Sie sorgfältig in Produktionsumgebungen.
Installation
Ubuntu/Debian
# Paket installieren
sudo apt update
sudo apt install unattended-upgrades apt-listchanges -y
# Installation verifizieren
dpkg -l unattended-upgrades
# Dienststatus prüfen
systemctl status unattended-upgrades
Automatischer Konfigurationsassistent
# Grundkonfiguration automatisch einrichten
sudo dpkg-reconfigure -plow unattended-upgrades
# "Yes" auswählen
Grundkonfiguration
Hauptkonfigurationsdatei: /etc/apt/apt.conf.d/50unattended-upgrades
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Allowed-Origins {
// Ubuntu-Sicherheitsupdates
"${distro_id}:${distro_codename}-security";
// Alle Updates (nicht empfohlen — nur Sicherheitsupdates bevorzugen)
// "${distro_id}:${distro_codename}";
// "${distro_id}:${distro_codename}-updates";
};
// Bestimmte Pakete von Updates ausschließen
Unattended-Upgrade::Package-Blacklist {
// "nginx";
// "mysql-server";
// "php*";
};
// Automatischer Neustart nach Updates
Unattended-Upgrade::Automatic-Reboot "false";
// Neustartzeit (nur wenn Automatic-Reboot true ist)
Unattended-Upgrade::Automatic-Reboot-Time "02:00";
// Ungenutzte Abhängigkeiten entfernen
Unattended-Upgrade::Remove-Unused-Dependencies "true";
// Ungenutzte Kernel-Pakete entfernen
Unattended-Upgrade::Remove-Unused-Kernel-Packages "true";
// E-Mail-Benachrichtigung
Unattended-Upgrade::Mail "admin@rexe.tr";
// E-Mail nur bei Änderungen senden
Unattended-Upgrade::MailReport "on-change";
// Optionen: "always", "only-on-error", "on-change"
// Update-Log führen
Unattended-Upgrade::SyslogEnable "true";
Update-Zeitplan
Die Update-Häufigkeit wird in /etc/apt/apt.conf.d/20auto-upgrades konfiguriert:
sudo nano /etc/apt/apt.conf.d/20auto-upgrades
// Paketliste täglich aktualisieren
APT::Periodic::Update-Package-Lists "1";
// Aktualisierbare Pakete täglich herunterladen
APT::Periodic::Download-Upgradeable-Packages "1";
// unattended-upgrades täglich ausführen
APT::Periodic::Unattended-Upgrade "1";
// Alten Paket-Cache alle 7 Tage bereinigen
APT::Periodic::AutocleanInterval "7";
Werte sind in Tagen angegeben. "1" = täglich, "7" = wöchentlich, "0" = deaktiviert.
Nur Sicherheitsupdates
Nur Sicherheitsupdates automatisch anzuwenden ist der sicherste Ansatz für Produktionsserver:
Unattended-Upgrade::Allowed-Origins {
// NUR Sicherheitsupdates
"${distro_id}:${distro_codename}-security";
};
// Alle anderen Update-Quellen auskommentieren
// "${distro_id}:${distro_codename}";
// "${distro_id}:${distro_codename}-updates";
E-Mail-Benachrichtigungen
mailutils oder postfix ist für Update-Benachrichtigungen erforderlich:
# mailutils installieren
sudo apt install mailutils -y
# Für einfache SMTP-Konfiguration
sudo apt install ssmtp -y
sudo nano /etc/ssmtp/ssmtp.conf
root=admin@rexe.tr
mailhub=smtp.gmail.com:587
AuthUser=ihre-email@gmail.com
AuthPass=ihr-app-passwort
UseTLS=YES
UseSTARTTLS=YES
# E-Mail testen
echo "Testnachricht" | mail -s "Server-Update-Test" admin@rexe.tr
Konfiguration testen
Probelauf (Dry Run)
# Simulieren ohne tatsächlich zu aktualisieren
sudo unattended-upgrade --dry-run --debug
# Ausführlichere Ausgabe
sudo unattended-upgrade -d --dry-run
Manueller Lauf
# unattended-upgrades sofort ausführen
sudo unattended-upgrade -d
# Im Verbose-Modus ausführen
sudo unattended-upgrade --verbose
Log-Dateien überprüfen
# Haupt-Log-Datei
cat /var/log/unattended-upgrades/unattended-upgrades.log
# Fehler-Logs
cat /var/log/unattended-upgrades/unattended-upgrades-dpkg.log
# Echtzeit-Log-Überwachung
tail -f /var/log/unattended-upgrades/unattended-upgrades.log
Kernel-Updates und Neustarts
Kernel-Updates erfordern besondere Aufmerksamkeit:
# Prüfen ob ein Neustart erforderlich ist
cat /var/run/reboot-required
# Welche Pakete einen Neustart erfordern
cat /var/run/reboot-required.pkgs
# Neustart-Prüfung
if [ -f /var/run/reboot-required ]; then
echo "Neustart erforderlich!"
fi
Automatische Neustart-Konfiguration
// Automatischen Neustart aktivieren
Unattended-Upgrade::Automatic-Reboot "true";
// Neustartzeit (2:00 Uhr)
Unattended-Upgrade::Automatic-Reboot-Time "02:00";
// Nicht neu starten wenn Benutzer angemeldet sind
Unattended-Upgrade::Automatic-Reboot-WithUsers "false";
Bevor Sie automatische Neustarts aktivieren, prüfen Sie ob Ihre Anwendung Neustarts tolerieren kann. Für kritische Produktionssysteme werden manuelle Neustarts bevorzugt.
Risiken und Gegenmaßnahmen
Mögliche Risiken
- Dienstunterbrechung: Einige Updates starten Dienste neu
- Abhängigkeitskonflikte: Paketkonflikte können in seltenen Fällen auftreten
- Konfigurationsänderungen: Updates können Konfigurationsdateien ändern
- Kernel-Updates: Erfordern einen Neustart
Risikominderung
Unattended-Upgrade::Package-Blacklist {
// Kritischer Datenbankserver
"mysql-server";
"postgresql";
// Webserver
"nginx";
"apache2";
// Kernel (für manuelle Updates)
"linux-image*";
"linux-headers*";
};
# Dienststatus nach Updates prüfen
systemctl --failed
# Logs regelmäßig prüfen
tail -100 /var/log/unattended-upgrades/unattended-upgrades.log
dnf-automatic für CentOS/AlmaLinux/RHEL
RPM-basierte Systeme verwenden dnf-automatic:
# Installieren
sudo dnf install dnf-automatic -y
# Konfigurieren
sudo nano /etc/dnf/automatic.conf
[commands]
# Nur Sicherheitsupdates
upgrade_type = security
# Updates automatisch anwenden
apply_updates = yes
[emitters]
# E-Mail-Benachrichtigung
emit_via = email
email_to = admin@rexe.tr
# Dienst aktivieren
sudo systemctl enable --now dnf-automatic.timer
# Status prüfen
sudo systemctl status dnf-automatic.timer
Überwachen Sie auf beiden Ubuntu- und CentOS-Systemen die Log-Dateien in der ersten Woche nach der Aktivierung automatischer Updates genau. Dies hilft Ihnen, unerwartete Probleme frühzeitig zu erkennen.
Fazit
unattended-upgrades ist ein leistungsstarkes Tool zur Sicherung Ihrer REXE-Server. Durch automatisches Anwenden nur von Sicherheitsupdates, Blacklisting kritischer Pakete und Aktivierung von E-Mail-Benachrichtigungen können Sie sowohl eine sichere als auch stabile Serverumgebung aufrechterhalten. Regelmäßige Log-Prüfungen und Validierung in einer Testumgebung machen den automatischen Update-Prozess zuverlässiger.
Verwandte Artikel
VDS-Server per SSH verbinden: PuTTY, Terminal & Schlüssel
SSH-Verbindung zum Linux VDS-Server: PuTTY, Terminal, schlüsselbasierte Authentifizierung, Path Panel Firewall-Regel und Sicherheitstipps für Einsteiger.
Windows VDS per RDP verbinden: Vollständige Anleitung
Schritt-für-Schritt-Anleitung zur RDP-Verbindung mit Windows Server VDS: Einrichtung, NLA-Sicherheit, Path Panel Firewall-Regel und Fehlerbehebung.
VDS-Server Betriebssystem wechseln: Schritt-für-Schritt
Betriebssystemwechsel am VDS-Server über das REXE-Panel: Backup-Tipps, unterstützte Linux-Distributionen und Windows Server Versionen im Überblick.