Linux Debian Server mit Bordmitteln auf Stand halten, so gehts

Horrormeldungen wie die zum aktuellen Thema Shellshock (eine Sicherheitslücke in der Unix-Shell Bash) haben mich meine Updatestrategie für meinen privaten Server überdenken lassen. Bislang habe ich immer mal manuell sporadisch nach Updates geschaut, das sollte besser gelöst werden!


 

Die Idee

Ich möchte täglich eine Email erhalten, wenn es Updates zum installieren gibt. Dabei möchte ich bereits vorhandene Bordmittel  nutzen… also das Ganze umsetzen ohne auf irgendwelche Zusatzprogramme zurückgreifen zu müssen.

Hinweis: Natürlich kann man Updates auch automatisch (unattendend) installieren lassen, davon rate ich aber ab, da man nie wissen kann, was ggf. kaputt geht.

Die Lösung in 2 einfachen Schritten

  1. APT anpassen
  2. Cronjob einrichten

 

APT anpassen

Unter Debian werden Pakete / Programme in der Regel mit APT (Advanced Packaging Tool) installiert und aktualisiert. Hier setzen wir an und teilen APT mit, dass die Paketlisten täglich automatisch herunterladen werden sollen (diese enthalten die Informationen über verfügbare neuere Versionen der installierten Pakete).

Damit das tatsächliche Update nachher schneller geht sollen auch gleich die Paketupdates heruntergeladen (aber nicht installiert!) werden.

Hierzu einfach diese beiden Zeilen Code als root aus einem beliebigen Verzeichnis auf dem Server ausführen:

echo 'APT::Periodic::Update-Package-Lists "1";' >> /etc/apt/apt.conf.d/10periodic
echo 'APT::Periodic::Download-Upgradeable-Packages "1";' >> /etc/apt/apt.conf.d/10periodic

Weiter braucht Ihr nichts zu tun, da die neuen Anweisungen nun über den Cronjob in /etc/cron.daily/apt automatisch abgearbeitet werden. Die neuen Werte sind sofort (ohne irgendeinen Neustart eines Dienstes) aktiv und können mittels apt-config dump | grep Periodic ausgegeben werden.

Wichtiger Tipp: Damit die Listen über den diesen Cronjob auch täglich heruntergeladen werden können, müssen die Berechtigungen auch stimmen. Aus irgendeinem Grund waren alle Skripte im /etc/cron.daily Ordner bei mir auf 644 statt 755 gesetzt. Also – sollte es bei Euch nicht gehen, dann einfach mal ein chmod 755 /etc/cron.daily/* ausführen.


 

Cronjob einrichten

Da die täglichen Cronjobs unter Debian standardmäßig gegen 2 Uhr nachts ausgeführt werden, APT jedoch beim Download noch eine künstliche Pause zwischen 0 und 1800 Sekunden (30 Minuten) über die Config-Variable APT::Periodic::RandomSleep (default = 1800) einbaut, damit nicht alle Server zur gleichen Zeit die Ressourcen anfragen, empfehle ich den Cronjob ab 3 Uhr nachts auszuführen. Da ich wahrscheinlich nicht von 9 Uhr am PC bin, habe ich mal 08:35 Uhr gewählt.

Der einfachste Weg ist es nun unter /etc/cron.d/ eine neue Datei (hier apt-update-check) anzulegen, die für den Email-Versand sorgt.

Hierzu einfach diese beiden Zeilen Code als root aus einem beliebigen Verzeichnis auf dem Server ausführen:

echo "MAILTO=name@domain.tld" >> /etc/cron.d/apt-update-check
echo "35 08 * * * root apt-get upgrade -s -qq | grep ^Inst | sed 's/^Inst //'" >> /etc/cron.d/apt-update-check

Wichtig: Den Teil name@domain.tld müsst Ihr natürlich noch durch Eure Email-Adresse ersetzen!

Das war schon alles. Ab sofort erhaltet Ihr eine Email (in diesem Fall um 08:35 Uhr) wenn es Updates gibt. Sollte es keine Updates geben, so wird auch keine Email versendet. Ihr werdet also nicht täglich zugespammt.


Um die Updates dann zu installieren, müsst Ihr wieder auf den Server gehen und die Updates anstoßen:

apt-get upgrade

Das könnte dich auch interessieren …

2 Antworten

  1. Abdreas Törmer sagt:

    Vielen Dank Ansas :) Hätte ich auch mal selbst drauf kommen können :D

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Bitte beachte die Hinweise zum Datenschutz