10.1. Halten Sie Ihr System sicher
Sie sollten bestrebt sein, Ihr System sicher zu halten, indem Sie seine Verwendung und die es betreffenden Verwundbarkeiten im Auge behalten. Sobald Patches verfügbar sind, sollte Sie diese einspielen. Denn auch wenn Sie zu Beginn ein sehr sicheres System eingerichtet haben, sollten Sie daran denken, dass die Sicherheit eines Systems mit der Zeit nachlässt. Das liegt daran, dass Sicherheitslücken in Systemdiensten entdeckt werden können. Außerdem können Benutzer die Sicherheit untergraben, wenn ihnen das notwendige Verständnis fehlt (z.B. wenn sie aus der Ferne auf ein System mit einem Klartextpasswort oder einem einfach zu erratenden Passwort zugreifen) oder gar weil sie aktiv versuchen, die Sicherheit des Systems auszuschalten (indem sie z.B. zusätzliche Dienste lokal in ihren Konten installieren).
10.1.1. Beobachtung von Sicherheitslücken
Die meisten Administratoren werden sich Sicherheitslücken, die ihr System betreffen, bewusst, wenn sie den dazugehörigen Patch sehen. Sie können aber Angriffen schon im Vorfeld begegnen und vorübergehende Abwehrmaßnahmen einleiten, sobald Sie festgestellt haben, dass Ihr System verwundbar ist. Dies gilt besonders für exponierte Systeme (die also mit dem Internet verbunden sind), die Dienste anbieten. In diesem Fall sollte der Systemadministrator einen Blick auf die bekannten Informationsquellen werfen, um als erster zu wissen, wenn eine Sicherheitslücke für einen kritischen Dienst entdeckt wird.
Sicherheitsbewusste Administratoren können mit diesen Informationen feststellen, welche Sicherheitslücken das System, das sie verwalten, betreffen könnten, wie schwer das Risiko der Lücke wiegt und ob vorübergehend Gegenmaßnahmen zu treffen sind (falls möglich), bis ein Patch verfügbar ist, der das Problem löst.
Sicherheitsprobleme in Veröffentlichungen, die vom Sicherheitsteam von Debian unterstützt werden, sollten irgendwann in Debian-Sicherheits-Ankündigungen (DSA) behandelt werden, die allen Benutzern zur Verfügung gestellt werden (vergleiche
Abschnitt 10.1.2, „Fortlaufende Aktualisierung des Systems“). Sobald ein Sicherheitsproblem ausgebessert wurde und die Lösung in einer Ankündigung enthalten ist, wird es nicht mehr im Tracker aufgeführt. Sie können es aber immer noch mit einer Suchanfrage (nach dem CVE-Namen) finden, indem Sie
http://www.de.debian.org/security/crossreferences verwenden.
Beachten Sie aber, dass die Informationen im Tracker des Debian-Testing-Sicherheitsteams nur bekannte Sicherheitslücken (d.h. solche, die öffentlich sind) beinhalten. In einigen Fällen gibt das Debian-Sicherheitsteam DSA für Pakete heraus, die auf vertraulichen Informationen beruhen, die das Team erhalten hat (z.B. über nicht-öffentliche Mailinglisten der Distributionen oder von Programmautoren). Seien Sie also nicht überrascht, in Sicherheitsankündigungen Sicherheitsprobleme zu entdecken, die nicht im Tracker enthalten sind.
10.1.2. Fortlaufende Aktualisierung des Systems
10.1.2.1. Überprüfung von Hand, welche Sicherheitsaktualisierungen verfügbar sind
Debian besitzt ein Werkzeug, um zu überprüfen, ob ein System aktualisiert werden muss. Viele Benutzer wollen aber einfach von Hand überprüfen, ob Sicherheitsaktualisierungen für ihr System zur Verfügung stehen.
Wenn Sie Ihr System nach der Beschreibung unter
Abschnitt 4.2, „Ausführen von Sicherheitsaktualisierungen“ eingerichtet haben, müssen Sie nur Folgendes tun:
# apt-get update
# apt-get upgrade -s
[ ... überprüfen der zu aktualisierenden Pakete ... ]
# apt-get upgrade
# checkrestart
[ ... Neustart der Dienste, die neu gestartet werden müssen ... ]
Die erste Zeile wird die Liste der verfügbaren Pakete von den festgelegten Paketquellen herunterladen. Die Option
-s
wird eine Simulation durchführen, d.h. es werden
keine Pakete heruntergeladen oder installiert. Vielmehr teilt es Ihnen mit, welche heruntergeladen und installiert werden sollen. Durch dieses Ergebnis könnten Sie erfahren, welche Pakete von Debian ausgebessert wurden und als Sicherheitsaktualisierung verfügbar sind. Zum Beispiel:
# apt-get upgrade -s
Reading Package Lists... Done
Building Dependency Tree... Done
2 packages upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Inst cvs (1.11.1p1debian-8.1 Debian-Security:3.0/stable)
Inst libcupsys2 (1.1.14-4.4 Debian-Security:3.0/stable)
Conf cvs (1.11.1p1debian-8.1 Debian-Security:3.0/stable)
Conf libcupsys2 (1.1.14-4.4 Debian-Security:3.0/stable)
Hinweis: Sie werden Ihr System neustarten müssen, wenn der Kernel aktualisiert wurde.
10.1.2.2. Überprüfung von Aktualisierungen auf dem Desktop
Seit Debian 4.0 Lenny gibt es in Debian update-notifier, das in einer Standardinstallation installiert wird. Es ist eine GNOME-Anwendung, die beim Starten des Desktops mitgestartet wird. Sie kann geprüft, welche Aktualisierungen für Ihr System zur Verfügung stehen, und diese installieren. Dafür verwendet es update-manager.
In dem Stable-Zweig gibt es Aktualisierungen nur zum Entfernen von Sicherheitsproblemen oder dann, wenn eine Zwischenveröffentlichung (point release) angeboten wird. Wenn das System richtig konfiguriert ist, um Sicherheitsaktualisierungen zu erhalten (wie in
Abschnitt 4.2, „Ausführen von Sicherheitsaktualisierungen“ beschrieben), und Sie mit
cron
die Paketinformationen aktualisieren, werden Sie durch ein Desktop-Symbol in dem Benachrichtigungsbereich des Desktops über Aktualisierungen informiert werden.
Diese Benachrichtigung ist nicht aufdringlich und zwingt den Benutzer nicht dazu, die Aktualisierungen zu installieren. Über das Symbol kann der Desktop-Benutzer (mit dem Passwort des Systemadministrators) zu einer einfachen graphischen Benutzeroberfläche gelangen, um sich die verfügbaren Aktualisierungen anzeigen zu lassen und zu installieren.
Diese Anwendung arbeitet damit, dass sie die Paketdatenbank abruft und ihren Inhalt mit dem System vergleicht. Wenn die Datenbank regelmäßig mit cron
aktualisiert wird, ist ihr Inhalt aktueller als die auf dem System installierten Pakete, worauf die Anwendung Sie hinweisen wird.
Apt
richtet eine solche Aufgabe ein (/etc/cron.d/apt
), die abhängig von der Konfiguration von Apt ausgeführt wird (genauer gesagt je nach APT::Periodic). In der GNOME-Umgebung kann dieser Wert über System > Admin > Software origins > Updates oder mit /usr/bin/software-properties
geändert werden.
Wenn Ihr System täglich die Paketliste herunterladen soll, aber nicht die Pakete selbst, sollte
/etc/apt/apt.conf.d/10periodic
etwa so aussehen:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "0";
Benutzer der KDE-Umgebung sollten stattdessen adept und adept-notifier installieren, die vergleichbare Funktionen anbieten, aber nicht in der Standardinstallation enthalten sind.
10.1.2.3. Automatisches Überprüfung von Aktualisierungen mit cron-apt
Eine andere Methode für automatische Sicherheitsaktualisierungen ist cron-apt. Dieses Paket stellt ein Werkzeug zur Verfügung, mit dem das System in regelmäßigen Abständen (mit einem Cronjob) aktualisiert wird. Es kann so konfiguriert werden, dass es E-Mails mit dem lokalen Mail-Transport-Agent an den Systemadministrator schickt. Standardmäßig wird es nur die Paketliste aktualisieren und neue Pakete herunterladen. Es kann aber so konfiguriert werden, dass es automatisch Aktualisierungen installiert.
Hinweis: Wenn Sie vorhaben, Ihr System automatisch zu aktualisieren (auch wenn Sie sich nur die Pakete herunterladen), sollten Sie sich vielleicht die Distributionsveröffentlichung ansehen, wie in
Abschnitt 7.5.3, „Überprüfung der Distribution mit der Release
-Datei“ beschrieben wird. Anderenfalls können Sie sich nicht sicher sein, dass die heruntergeladenen Pakete wirklich aus einer vertrauenswürdigen Quelle stammen.
10.1.2.4. Automatisches Überprüfung von Aktualisierungen mit debsecan
Das Programm
debsecan
ermittelt den Sicherheitsstatus, indem es sowohl nicht installierte Sicherheitsaktualisierungen als auch Sicherheitslücken meldet. Im Gegensatz zu
cron-apt, das nur Informationen zu verfügbaren Sicherheitsaktualisierungen bereitstellt, bezieht dieses Werkzeug auch Informationen von der Datenbank über Sicherheitslücken, die von Debians Sicherheitsteam verwaltet wird. Darin befinden sich auch Informationen über Lücken, die noch nicht durch eine Sicherheitsaktualisierung geschlossen wurden. Daher kann es Administratoren besser helfen, Sicherheitslücken im Blick zu behalten (wie unter
Abschnitt 10.1.1, „Beobachtung von Sicherheitslücken“ beschrieben).
Nach der Installation des Debian-Pakets debsecan wird es mit Zustimmung des Administrators eine cron-Aufgabe erstellen, die das Programm aufruft und das Ergebnis an einen bestimmten Benutzer schickt, wenn sie ein verwundbares Paket findet. Sie wird auch Informationen aus dem Internet laden. Bei der Installation wird auch nach dem Ort der Sicherheitsdatenbank gefragt, dieser wird in /etc/default/debsecan
gespeichert. Er kann leicht so angepasst werden, damit Systeme ohne Internetzugang auf einen lokale Spiegelserver zugreifen können und nur dieser mit der Sicherheitsdatenbank verbunden sein muss.
Beachten Sie jedoch, dass das Sicherheitsteam viele Verwundbarkeiten aufführt, die (wie risikoarme Probleme) nicht mit einer Sicherheitsaktualisierung ausgebessert werden oder bei denen sich später herausstellt, dass sie, anders als zunächst angenommen, Debian nicht betreffen. Debsecan
wird alle Verwundbarkeiten melden, wodurch diese Meldungen deutlich umfangreicher werden als bei den anderen beschriebenen Werkzeugen.
10.1.2.5. Andere Methoden für Sicherheitsaktualisierungen
10.1.3. Vermeiden Sie den Unstable-Zweig
Falls Sie nicht Zeit darauf verwenden wollen, selbst Pakete zu patchen, wenn Verwundbarkeiten entdeckt werden, sollten Sie auf produktiven Systemen nicht Debians Unstable-Zweig einsetzen. Der Hauptgrund dafür ist, dass es für Unstable keine Sicherheitsaktualisierungen gibt.
Es ist eine Tatsache, dass manche Sicherheitsprobleme nur in Unstable auftreten und nicht in Stable. Das rührt daher, dass dort ständig neue Funktionen zu den Anwendungen hinzugefügt werden und auch neue Anwendungen aufgenommen werden, die unter Umständen noch nicht vollständig getestet wurden.
Um im Unstable-Zweig Sicherheitsaktualisierungen durchzuführen, müssen Sie unter Umständen eine vollständige Aktualisierung mit einer neuen Version durchführen (was viel mehr als nur das betroffene Pakete aktualisieren könnte). Sicherheitsaktualisierungen wurden – mit Ausnahmen – nur in den Stable-Zweig zurückportiert. Die Grundidee ist, dass mit Sicherheitsaktualisierungen kein neuer Code hinzugefügt werden sollte, sondern nur wichtige Probleme beseitigt werden.
10.1.4. Sicherheitsunterstützung für den Testing-Zweig
Wenn Sie den
Testing-Zweig verwenden, müssen Sie einige Problemkreise hinsichtlich der Verfügbarkeit von Sicherheitsaktualisierungen in Betracht ziehen:
Wenn eine Sicherheitslücke geschlossen wurde, portiert das Sicherheitsteam den Patch nach Stable zurück (da Stable normalerweise einige Minor- oder Majorversionen zurückliegt). Die Paketbetreuer sind dafür verantwortlich, Pakete für den Unstable-Zweig vorzubereiten. Grundlage dafür ist normalerweise eine neue Veröffentlichung des Originalprogramms. Manchmal ereignen sich die Änderungen fast zur selben Zeit und manchmal enthält eine der Veröffentlichungen eine Ausbesserung einer Sicherheitslücke vor einer anderen. Pakete in Stable werden gründlicher getestet als die in Unstable, da letztere in den meisten Fällen die neueste Veröffentlichung des Originalprogramms enthält (welches neue, unbekannte Fehler enthalten könnte).
Gewöhnlich sind Sicherheitsaktualisierungen für den Unstable-Zweig verfügbar, wenn der Paketbetreuer ein neues Paket baut, und für den Stable-Zweig, wenn das Security Team eine neue Version hochlädt und ein DSA veröffentlicht. Beachten Sie, dass beides nicht des Testing-Zweig verändert.
Wenn keine (neuen) Fehler in der Unstable-Version des Pakets entdeckt werden, wandert es nach ein paar Tagen nach Testing. Das dauert normalerweise zehn Tage. Es hängt allerdings von der Priorität des Hochladens der Veränderung ab und davon, ob das Paket von Testing zurückgehalten wird, da Abhängigkeiten nicht aufgelöst werden können. Beachten Sie, dass wenn das Paket daran gehindert ist, nach Testing zu wandern, auch die Priorität des Hochladens daran nichts ändern kann.
Dieses Verhalten könnte sich je nach dem Status der Veröffentlichung der Distribution verändern. Wenn eine Veröffentlichung unmittelbar bevorsteht, werden auch das Sicherheitsteam oder die Paketbetreuer direkt Aktualisierungen für Testing zur Verfügung stellen.
Zusätzlich kann auch das
http://secure-testing-master.debian.net Debian-Testing-Sicherheitsankündigungen (DTSA) für Pakete im Testing-Zweig herausgeben, wenn sofort eine Lücke in diesem Zweig geschlossen werden muss und die normale Vorgehensweise nicht abgewartet werden kann (oder die übliche Vorgehensweise durch andere Pakete blockiert ist).
Benutzer, die von diesem Angebot Gebrauch machen wollen, müssen folgende Zeilen ihrer
/etc/apt/sources.list
(anstatt der Zeilen, die unter
Abschnitt 4.2, „Ausführen von Sicherheitsaktualisierungen“ dargestellt wurden) hinzufügen:
deb http://security.debian.org testing/updates main contrib non-free
# Diese Zeile macht es möglich, auch Quellpakete herunterzuladen
deb-src http://security.debian.org testing/updates main contrib non-free
10.1.5. Automatische Aktualisierungen in einem Debian GNU/Linux System
Es sei vorweggeschickt, dass automatische Aktualisierungen nicht vollständig empfohlen werden, da Administratoren die DSAs durchsehen und die Bedeutung einer bestimmten Sicherheitsaktualisierung verstehen sollten.
Wenn Sie Ihr System automatisch aktualisieren wollen, sollten Sie Folgendes durchführen:
Konfigurieren Sie apt
so, dass Pakete, die Sie nicht aktualisieren wollen, ihrer momentane Version beibehalten. Das können Sie entweder mit einer Eigenschaft von apt
, dem pinning (festheften), erreichen, oder Sie kennzeichnen sie mit dpkg
oder dselect
als hold (festgehalten).
Um Pakete einer bestimmten Veröffentlichung mit pinning festzuheften, müssen Sie
/etc/apt/preferences
bearbeiten (siehe
apt_preferences(5)) und Folgendes hinzufügen:
Package: *
Pin: release a=stable
Pin-Priority: 100
FIXME: verify if this configuration is OK.
Die Option
-y
veranlasst
apt
, für alle Fragen, die während der Aktualisierung auftreten können, »yes« anzunehmen. In manchen Fällen sollten Sie die Option
--trivial-only
(nur Bagatellen) der Option
--assume-yes
(ist gleichbedeutend mit
-y
) vorziehen.
Richten Sie
debconf
so ein, dass während der Aktualisierung keine Eingabe verlangt wird. Auf diese Weise können Aktualisierungen nicht-interaktiv durchgeführt werden.
Überprüfen Sie die Ergebnisse der Ausführung von cron
, die an den Superuser gemailt werden (sofern nicht die Umgebungsvariable MAILTO
im Skript geändert wurde).
Eine sichere Alternative könnte es sein, die Option -d
(oder --download-only
) zu verwenden. Das hat zur Folge, dass die benötigten Pakete nur heruntergeladen, aber nicht installiert werden. Und wenn dann die Ausführung von cron
zeigt, dass das System aktualisiert werden muss, kann das von Hand vorgenommen werden.
Allerdings wird dieses Vorgehen ohne eine genaue Analyse nicht für Unstable empfohlen, da Sie Ihr System in einen unbrauchbaren Zustand bringen können, wenn sich ein gravierender Fehler in ein wichtiges Paket eingeschlichen hat und auf Ihrem System installiert wird. Testing ist vor diesem Problem etwas besser geschützt, da gravierende Fehler eine bessere Chance haben entdeckt zu werden, bevor das Paket in den Testing-Zweig wandert (obwohl Ihnen trotzdem keine Sicherheitsaktualisierungen zur Verfügung stehen).
Wenn Sie eine gemischte Distribution haben, also eine Installation von
Stable mit einige Pakete aus
Testing oder
Unstable, können Sie mit den Pinning-Eigenschaften oder der Option
--target-release
von
apt-get
herumspielen, um
nur die Pakete zu aktualisieren, die Sie früher aktualisiert haben.