Automatische Sicherheitsaktualisierungen unter Linux

Am Beispiel von Debian/Ubuntu

Linux-Sicherheitsupdates sind Pakete und Aktualisierungen von Systemkomponenten, die eine Sicherheitslücke schließen oder die Robustheit des Systems verbessern. Einige dieser Updates sind recht kritisch und sollten fast sofort eingespielt werden, um Ihren Server vor schwerwiegenden Sicherheitslücken wie dem kürzlich entdeckten Log4J-Exploit zu schützen.

Mit der zunehmenden Beliebtheit von Linux, insbesondere als Serverplattform, ist es zu einem der Hauptziele für Angriffe geworden. Das bedeutet, dass Sie das Sicherheitsprofil Ihres Servers in Form halten sollten, um zu verhindern, dass er kompromittiert wird. Das bedeutet auch, dass regelmäßige Backups ein Muss sind.

Das Paketverwaltungsprogramm von Linux (in unserem Fall APT, da Debian und seine Derivate darauf angewiesen sind) können Sie so einstellen, dass es nach Sicherheitspatches und Aktualisierungen sucht und diese automatisch installiert. APT kann Sie auch per E-Mail über solche Aktualisierungen informieren und sogar das System neu starten, nachdem es Pakete installiert hat, die einen Neustart erfordern, wie z. B. neuere Kernel. Diese Funktion von APT wird als Unattended Upgrades bezeichnet. Sie wird als Daemon (Systemdienst im Hintergrund) installiert und ausgeführt und ist relativ einfach zu konfigurieren. Hier also ist eine kurze Anleitung…

Beginnen wir damit, die Paketlisten und die Systemkomponenten zu aktualisieren;

$ apt update

Wenn Sie die Paketlisten und auch alle Systemkomponenten in einem Durchgang aktualisieren wollen, dann tun Sie das;

$ apt update && apt upgrade -y

Installieren, aktivieren und starten Sie den Dienst „Unattended Upgrades“;

$ apt install unattended-upgrades && systemctl enable --now unattended-upgrades

Sichern Sie darüber hinaus die Standardkonfigurationsdatei;

$ cp /etc/apt/apt.conf.d/50unattended-upgrades /etc/apt/apt.conf.d/50unattended-upgrades.BACKUP-$(date '+%Y-%m-%d')

Bearbeiten Sie die Konfigurationsdatei nach Ihren Wünschen;

$ nano /etc/apt/apt.conf.d/50unattended-upgrades

Dadurch wird die Datei im Nano-Editor geöffnet.

Suchen Sie nun den Abschnitt „Unattended-Upgrade::Allowed-Origins„. In diesem Abschnitt müssen Sie die Zeilen für die Pakete, die Sie automatisch aktualisieren möchten, auskommentieren. Entfernen Sie einfach das „//“ am Anfang der Zeile. Jede Zeile, die mit einem „//“ beginnt, wird nämlich ignoriert.

Pakete auf die schwarze Liste setzen – so genanntes Blacklisting

Manchmal möchten Sie vielleicht verhindern, dass Ihr System ein oder mehrere Pakete aktualisiert. Dies kann aus Stabilitäts-, Kompatibilitäts- oder Sicherheitsgründen geschehen. Um zu verhindern, dass Ihr System dieses Paket automatisch aktualisiert, können Sie den Paketnamen in den Abschnitt „Unattended-Upgrade::Package-Blacklist“ der gleichen Konfigurationsdatei aufnehmen.

Automatische Sicherheitsaktualisierungen unter Linux
FIO-, GCC- und Nano-Pakete auf die schwarze Liste setzen

Admin-Benachrichtigungen konfigurieren

Wenn Sie E-Mail-Benachrichtigungen über die Verfügbarkeit von Updates und/oder eventuell auftretende Fehler erhalten möchten, konfigurieren Sie den E-Mail-Bereich entsprechend.

Automatische Aktualisierungen unter Linux

Bitte beachten Sie, dass Sie mindestens das Paket mailutils installiert haben müssen, damit die obige Funktion funktioniert. Dies kann damit erfolgen;

$ apt install mailutils

Optional: Konfigurieren Sie den Server so, dass er nach der Anwendung von Updates automatisch neu startet.

Einige Updates erfordern einen vollständigen Neustart des Systems, damit sie auch funktionieren. Neuere Kernel sind ein Beispiel für solche Aktualisierungen. Suchen Sie den entsprechenden Abschnitt in der Konfigurationsdatei und bearbeiten Sie ihn entsprechend.

Warnung: Dieser Abschnitt der Konfiguration ist lediglich optional und ich rate Ihnen, ihn NICHT zu konfigurieren, wenn Sie nicht absolut sicher sind, dass ein Neustart des Servers keine kritischen Dienste unterbricht, die Sie und/oder Ihr Team/Kunden benötigen.

Automatische Sicherheitsaktualisierungen unter Linux
Die Konfiguration verwendet das 24-Stunden-Format und Sie sollten die Neustartzeit so anpassen, dass sie am besten zu Ihrem Server/ihrer Umgebung passt.

Optional: Konfigurieren Sie die automatischen Upgrades so, dass sie nur unter Netzstrom anlaufen.

Dies ist in Umgebungen nützlich, in denen der Server von einer USV abhängig ist. So vermeiden Sie, dass Ihrer USV der Strom ausgeht und der Upgrade-Prozess unterbricht. Schließlich würde das zu weiteren Problemen führen, die Sie dann zusätzlich beheben müssten. Setzen Sie den Prozess deshalb so an:

Automatische Sicherheitsaktualisierungen unter Linux

Bitte beachten Sie, dass Sie das entsprechende USV-Verwaltungspaket installiert haben müssen, damit die obige Funktion ordnungsgemäß funktioniert. Für APC UPS (USV)-Geräte können Sie das apcupsd-Paket mit installieren;

$ apt-get install apcupsd

Bei anderen USV-Einheiten wenden Sie sich bitte an den Hersteller der Einheit oder prüfen Sie die Kompatibilität der Einheit mit den Open-Source Network UPS Tools (NUT)

Abschließend sichern und bearbeiten wir die Konfigurationsdatei zu den automatischen Aktualisierungsintervallen;

$ cp /etc/apt/apt.conf.d/20auto-upgrades /etc/apt/apt.conf.d/20auto-upgrades.BACKUP-$(date '+%Y-%m-%d')
$ nano /etc/apt/apt.conf.d/20auto-upgrades

Löschen Sie alle vorhandenen Inhalte und fügen Sie die folgenden Zeilen ein;

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

Die obigen drei Zeilen bedeuten:

  • Alle „1“ Tage auf neue Updates prüfen
  • Unbeaufsichtigtes Upgrade alle „1“ Tage durchführen
  • Löschen Sie zwischengespeicherte APT-Dateien alle „30“ Tage

Sie sollten diese Werte so anpassen, dass sie für Ihren Server/Ihre Umgebung am besten geeignet sind.

Machen Sie einen Test im Trockenlauf!

Wir sind soweit fertig. Führen wir nun einen Probelauf mit den neuen Konfigurationen durch, um sicherzustellen, dass keine Fehler auftreten.
Im Terminal geben Sie dazu bitte ein;

$ unattended-upgrades --dry-run --debug

Stellen Sie sicher, dass der Trockenlauf nicht mit einer Fehlermeldung fehlschlägt.

Überprüfen Sie das Protokoll der automatischen Aktualisierung, um festzustellen, ob während des Trockenlaufs schwerwiegende Fehler aufgetreten sind;

$ cat /var/log/unattended-upgrades/unattended-upgrades.log | grep -i error

Die Meldung „ERROR Lock could not be acquired“ können Sie getrost ignorieren. Das bedeutet einfach, dass während Ihres Trockenlaufs ein anderer APT-Prozess im Hintergrund lief.

Wenn alles gut geht, können Sie die Shell beenden und darauf warten, dass die geplante automatische Aktualisierung von selbst ausgeführt wird. Überprüfen Sie anhand des Protokolls, ob alles gut gelaufen ist. Wenn Sie die E-Mail-Funktion konfiguriert haben, sollten Sie so oder so benachrichtigt werden.

Tipp: Eine der besten Praktiken zur Verbesserung der Sicherheit Ihres Linux-Servers ist der Verzicht auf die Installation unnötiger Pakete. Installieren Sie nur das Nötigste, damit Ihr Server ordnungsgemäß funktioniert. Je mehr Pakete Sie anhäufen, desto anfälliger wird Ihr Server.

Wenn Sie etwas testen müssen, testen Sie es lokal. Überprüfen Sie die CVE-Datenbank, um sicherzustellen, dass sie startbereit ist, bevor Sie sie auf Ihrem Online-Server einsetzen. Achten Sie bei der Bereitstellung darauf, dass Sie die empfohlenen Sicherheitsverfahren des Entwicklers befolgen und die Mindestanzahl der erforderlichen Firewall-Ports für das Programm aktivieren.

Starline Kontakt

Noch Fragen? Kontaktieren Sie uns.

Der ausgewiesene Experte für alle Linux- und Ceph-Plattformen kam 2018 zu Starline. Seine Vorliebe gilt raffinierten Open-Source-Lösungen und kniffligen Produktentwicklungen. Deshalb steht er auch für Anfragen bezüglich PetaSAN und FreeNAS bereit. Aber auch ARM-Server von Ambedded oder Mac-Betriebssysteme haben es ihm angetan. Privat befasst sich der Ingenieur gern mit 3D-Druckern und Robotern.

Mohammad Ammar
Technik

Sind Sie auf der Suche nach einem interessanten und inspirierenden Ausbildungsplatz? Möchten Sie etwas über Linux und die führenden Open-Source-Speichertechnologien lernen? Starline ist immer auf der Suche nach neuen Mitgliedern für sein Team von Open-Source-Enthusiasten.