Kapitel 5. Dinge, die Sie über Stretch wissen sollten

Inhaltsverzeichnis

5.1. Upgrade-spezifische Themen für Stretch
5.1.1. Spätes Einbinden von /usr wird nicht mehr unterstützt
5.1.2. Nennenswerte veraltete Pakete
5.1.3. Missbilligte Komponenten für Stretch
5.1.4. Dinge, die vor dem Neustart erledigt werden sollten
5.1.5. Ausführbare Dateien werden jetzt standardmäßig als »position independent executables« (positionsunabhängig, PIE) kompiliert.
5.2. Einschränkungen bei der Sicherheitsunterstützung
5.2.1. Sicherheitsstatus von Webbrowsern
5.2.2. Fehlende Sicherheitsunterstützung rund um das Ecosystem von libv8 und Node.js
5.3. Eingriffe bei einigen spezifischen Paketen
5.3.1. Ältere Ciphers und SSH1-Protokoll in OpenSSH standardmäßig deaktiviert
5.3.2. Möglicherweise nicht rückwärts kompatible Änderungen in APT
5.3.3. Der Xorg-Server ist standardmäßig nicht mehr setuid-root
5.3.4. Upstart entfernt
5.3.5. Das debhelper-Werkzeug erzeugt jetzt standardmäßig dbgsym-Pakete
5.3.6. OpenSSL-betreffende Änderungen

Manchmal haben Änderungen, die in einer neuen Veröffentlichung eingebracht werden, Nebeneffekte, die wir ohne größeren Aufwand nicht vermeiden können, oder dies würde Fehler an anderen Stellen verursachen. Dieses Kapitel dokumentiert die uns bekannten Probleme. Bitte lesen Sie auch die Errata, die relevanten Paketdokumentationen, Fehlerberichte und weitere Informationen in Abschnitt 6.1, „Weitere Lektüre“.

5.1. Upgrade-spezifische Themen für Stretch

Dieser Abschnitt behandelt Themen, die für ein Upgrade von Jessie auf Stretch relevant sind.

5.1.1. Spätes Einbinden von /usr wird nicht mehr unterstützt

[Anmerkung]Anmerkung

Dieser Abschnitt ist nur für Systeme relevant, die einen selbst angepassten Kernel verwenden und auf denen /usr ein separater Einbindungspunkt, getrennt von / ist. Wenn Sie die von Debian bereit gestellten Kernel-Pakete nutzen, sind Sie hiervon nicht betroffen.

Das Einbinden von /usr mit Werkzeugen, die nur in / existieren, wird nicht mehr unterstützt. Dies hat nur für einige spezielle Konfigurationen in der Vergangenheit funktioniert, und wird jetzt explizit nicht mehr unterstützt.

Das bedeutet, dass auf stretch-Systemen, auf denen /usr eine separate Partition ist, einen initramfs-Generator verwenden müssen, der /usr einbindet. Alle initramfs-Generatoren in Stretch unterstützen dies.

5.1.2. Nennenswerte veraltete Pakete

Hier eine Liste bekannter und erwähnenswerter veralteter Pakete (lesen Sie hierzu auch Abschnitt 4.8, „Veraltete Pakete“).

Zu diesen Paketen gehören:

  • Die meisten »-dbg«-Pakete wurden aus dem Main-Archiv entfernt und durch »-dbgsym«-Pakete ersetzt, die im »debian-debug«-Archiv zu finden sind. Lesen Sie dazu Abschnitt 2.2.4, „Ein neues Archiv für debug-Symbole“.

  • Der Passwort-Manager fpm2 wird von den Upstream-Autoren nicht mehr betreut. Bitte nutzen Sie einen anderen Passwort-Manager wie pass, keepassx oder keepass2. Stellen Sie sicher, dass Sie Ihre Passwörter aus fpm2 extrahieren, bevor Sie das Paket entfernen.

5.1.3. Missbilligte Komponenten für Stretch

Mit der nächsten Veröffentlichung von Debian 10 (Codename Buster) werden einige Funktionalitäten missbilligt sein. Nutzer müssen auf andere Alternativen umsteigen, um Schwierigkeiten nach dem Upgrade auf 10 zu vermeiden.

Dazu gehören folgende Funktionalitäten:

  • TODO: Add items if any

5.1.4. Dinge, die vor dem Neustart erledigt werden sollten

Wenn apt-get dist-upgrade beendet ist, sollte das formale Upgrade abgeschlossen sein, aber es gibt ein paar andere Dinge, um die Sie sich vor dem nächsten Neustart kümmern sollten.


      add list of items here
      
    

5.1.5. Ausführbare Dateien werden jetzt standardmäßig als »position independent executables« (positionsunabhängig, PIE) kompiliert.

[Anmerkung]Anmerkung

Dieser Abschnitt ist überwiegend für Entwickler oder Systemadministrator gedacht. Desktop-Benutzer werden wahrscheinlich hiervon nicht betroffen sein.

Standardmäßig wird der GNU-GCC-6-Kompiler aus Debian Stretch alle ausführbaren Dateien als positionsunabhängig kompilieren. Dies entschärft eine ganze Klasse von Verwundbarkeiten, führt aber auch zu einigen Änderungen, deren Sie sich bewußt sein sollten.

  • Das Werkzeug file wird (neben anderen) solche Binärdateien als »LSB shared object« klassifizieren statt als »executable«. Wenn Sie Filter anwenden, die auf Binärdateien basieren (z.B. Spamfilter), müssen diese unter Umständen aktualisiert werden.

  • Statische Bibliotheken, die in eine Binärdatei einkompiliert werden, müssen jetzt auch als positionsunabhängigem Code kompiliert werden. Folgende Fehlermeldung vom Linker ist ein Symptom hierfür:

    relocation ... against '[SYMBOL]' can not be used when making a shared object; recompile with -fPIC
    

  • In der Vergangenheit wurden positionsunabhängige Binärdateien auf bestimmter Hardware mit Performance-Verlust in Verbindung gebracht, speziell auf Debians i386-Architektur (32-Bit Intel-Maschinen). Während GCC 5 und GCC 6 eine großartige Performance-Optimierung für positionsunabhängige Binärdateien auf 32-Bit Intel-Hardware erreichen konnten, treffen diese Optimierungen unter Umständen nicht für alle Architekturen zu. Sie sollten vielleicht die Performance Ihres Programmcodes in Augenschein nehmen, wenn Sie für Architekturen mit einer sehr begrenzten Anzahl von Registern programmieren.

5.2. Einschränkungen bei der Sicherheitsunterstützung

Es gibt einige Pakete, bei denen Debian nicht versprechen kann, dass zur Behebung von Sicherheitslücken nicht minimale Rückportierungen in die Pakete mit einfließen. Diese Pakete werden in den folgenden Abschnitten behandelt.

Das Paket debian-security-support hilft Ihnen dabei, den Sicherheitsstatus der installierten Pakete im Blick zu behalten.

5.2.1. Sicherheitsstatus von Webbrowsern

Debian 9 enthält mehrere Browser-Engines, die einem ständigen Ansturm von Sicherheitsproblemen ausgesetzt sind. Die hohe Rate von Anfälligkeiten und die teilweise fehlende Unterstützung seitens der Originalautoren in Form von langfristig gepflegten Programmversionen machen es sehr schwierig, für diese Browser Sicherheitsunterstützung auf Basis von rückportierten Fehlerkorrekturen anzubieten. Zusätzlich machen es Abhängigkeiten zwischen beteiligten Bibliotheken unmöglich, auf neuere Upstream-(Orignal-)Versionen hochzurüsten. Browser, die auf den Engines webkit, qtwebkit und khtml aufbauen, sind daher in Stretch zwar enthalten, es besteht jedoch für sie keine Sicherheitsunterstützung. Diese Browser sollten nicht für Verbindungen zu vertrauensunwürdigen Websites verwendet werden.

Für die normale Nutzung empfehlen wir Firefox oder Chromium.

Das Chromium-Paket - basierend auf der Webkit-Codebasis - wird aktuell gehalten, indem die aktuellen Chromium-Veröffentlichungen für Stable neu gebaut werden. Firefox und Icedove werden ebenfalls über ein Neubauen der aktuellen ESR-Veröffentlichungen für Stable aktuell gehalten.

5.2.2. Fehlende Sicherheitsunterstützung rund um das Ecosystem von libv8 und Node.js

Die Node.js-Plattform wird basierend auf libv8-3.14 gebaut, das wiederum unter einer hohen Anzahl an Sicherheitslücken leidet. Innerhalb des Projekts oder des Sicherheitsteams gibt es jedoch derzeit keine Freiwilligen, die bereit sind, den hohen Zeitaufwand zu investieren, der nötig ist, um diese immer wieder neu hereinkommenden Probleme zu beheben.

Das bedeutet unglücklicherweise, dass die libv8-3.14-, nodejs- und weitere zugehörige Pakete aus dem node-*-Ecosystem nicht für unvertrauenswürdige Inhalte, wie möglicherweise belastete Daten aus dem Internet, verwendet werden sollten.

Auch wird es während der Lebenszeit von Stretch für diese Pakete keine Sicherheitsaktualisierungen geben.

5.3. Eingriffe bei einigen spezifischen Paketen

In den meisten Fällen sollten Pakete problemlos von Jessie nach Stretch aktualisiert werden. Es gibt jedoch eine kleine Anzahl von Paketen, bei denen manuelle Eingriffe erforderlich sein könnten, entweder vor oder während dem Upgrade; hier eine detaillierte Liste solcher Pakete.

5.3.1. Ältere Ciphers und SSH1-Protokoll in OpenSSH standardmäßig deaktiviert

In der OpenSSH-7-Veröffentlichung wurden einige ältere Ciphers (kryptographische Verschlüsselungsverfahren) sowie das SSH1-Protokoll standardmäßig deaktiviert. Seien Sie vorsichtig beim Upgrade von Maschinen, die Sie nur per SSH erreichen können.

Lesen Sie die OpenSSH-Dokumentation bezüglich weiterer Informationen.

5.3.2. Möglicherweise nicht rückwärts kompatible Änderungen in APT

Dieser Abschnitt behandelt einige inkompatible Änderungen in APT, die Ihr System betreffen können.

5.3.2.1. APT lädt jetzt Dateien als unpriviligierter Benutzer ("_apt") herunter

APT wird jetzt versuchen, alle root-Privilegien abzugeben, bevor Dateien von Spiegelservern heruntergeladen werden. APT kann einige häufiger auftretende Situationen erkennen, in denen dies fehlschlägt; es wird dann eine Warnung anzeigen und die alte Variante wählen, Dateien als root herunterzuladen. Allerdings könnte es einige exotische Setups (z.B. UID-spezifische Firewall-Regeln) geben, in denen dies nicht erkannt wird.

Sollten Sie Probleme mit dieser Funktionalität feststellen, melden Sie sich bitte als Nutzer »_apt« an und überprüfen Sie, ob dieser:

  • Lesezugriff auf die Dateien /var/lib/apt/lists und /var/cache/apt/archives hat,

  • Lesezugriff auf den APT Trust Store (/etc/apt/trusted.gpg und /etc/apt/trusted.gpg.d/) hat,

  • DNS-Namen auflösen und Dateien herunterladen kann. Beispielmethoden, um dies zu testen:

    # Aus dem Paket dnsutils (wenn Sie tor verwenden, prüfen Sie stattdessen mit tor-resolve):
    $ nslookup debian.org >/dev/null || echo "debian.org kann nicht aufgelöst werden"
    $ wget -q https://debian.org/ -O- > /dev/null || echo "Index-Seite von debian.org kann nicht heruntergeladen werden"
    

    Bei DNS-Problemen stellen Sie sicher, dass /etc/resolv.conf lesbar ist.

5.3.2.2. Neue Voraussetzungen für APT-Repositories

[Anmerkung]Anmerkung

Dieser Abschnitt ist für Sie nur relevant, wenn Sie Drittanbieter-Repositories aktiviert haben (bzw. dies beabsichtigen) oder wenn Sie ein APT-Repository betreuen.

Um die Download-Stabilität zu verbessern und die Sicherheit der heruntergeladenen Inhalte zu gewährleisten, stellt APT jetzt folgende Anforderungen an die Repositories:

  • Die Datei InRelease muss verfügbar sein.

  • Alle Metadaten müssen als Minimum SHA256-Prüfsummen aller Einträge enthalten. Dazu gehört auch die GPG-Signatur der InRelease-Datei.

  • Signaturen der InRelease-Datei sollten mit einer Schlüsselgröße von 2048 Bit oder größer erstellt werden.

Wenn Sie ein Drittanbieter-Repository benötigen, dass nicht mit obigen Anforderungen konform ist, fordern Sie die Betreiber bitte auf, ihr Repository zu aktualisieren. Weitere Informationen über die InRelease-Datei finden Sie im Debian Wiki.

5.3.3. Der Xorg-Server ist standardmäßig nicht mehr setuid-root

[Anmerkung]Anmerkung

Diese Änderung betrifft Sie nur, wenn Ihr X-Display-Manager es unterstützt, als »rootless« (ohne root-Rechte) zu laufen (oder wenn Sie X manuell über startx starten). Derzeit ist der einzige Display-Manager, der dies unterstützt, gdm. Andere Display-Manager starten X nach wie vor als root, ungeachtet dieser Änderung.

Durch diese Änderung wird das Risiko einer Rechteausweitung über Fehler im X-Server reduziert. Allerdings gibt es einige Voraussetzungen, damit dies funktionieren kann:

  • Die Pakete logind und libpam-systemd werden benötigt.

  • Ein Kernel-Grafiktreiber wird benötigt (da Xorg nicht mehr direkt mit der Hardware kommunizieren kann).

  • X muss auf der virtuellen Konsole laufen, von der es gestartet wurde.

Wenn X als regulärer Benutzer läuft, ist die Xorg-Logdatei unter ~/.local/share/xorg/ verfügbar.

Können diese Voraussetzungen nicht erfüllt werden, installieren Sie bitte das Paket xserver-xorg-legacy, um die alte Situation eines setuid-Xorg wiederherzustellen.

5.3.4. Upstart entfernt

Aufgrund von mangelnder Unterstützung durch die Upstream-Betreuer wurde das Upstart-Init-System aus der Stretch-Veröffentlichung entfernt. Wenn Ihr System dieses Paket verwendet, sollten Sie beachten, dass es während der Lebenszeit von Debian 9 nicht aktualisiert wird; beginnend mit der Veröffentlichung von Debian 10 (Buster) könnten Upstart-Jobs aus den Paketen entfernt werden.

Bitte ziehen Sie einen Wechsel zu einem anderen, unterstützten Init-System, wie systemd oder openrc, in Erwägung.

5.3.5. Das debhelper-Werkzeug erzeugt jetzt standardmäßig dbgsym-Pakete

[Anmerkung]Anmerkung

Dieser Abschnitt ist hauptsächlich für Entwickler und Organisationen gedacht, die eigene Debian-Pakete bauen.

Die debhelper-Werkzeuge werden jetzt standardmäßig »dbgsym«-Pakete für ELF-Binärdateien erzeugen. Wenn Sie Binärdateien entwickeln und paketieren, überprüfen Sie bitte, ob Ihre Vorgehensweise diese zusätzlichen automatisch-generierten Pakete unterstützt.

Wenn Sie reprepro einsetzen, sollten Sie es zumindest auf die Version 4.17.0 aktualisieren. Und als dies geschrieben wurde, unterstützte aptly keine dbgsym-Pakete.

Falls Ihre Arbeitsweise nicht mit dbgsym-Paketen klarkommt, können Sie debhelper anweisen, diese Funktionalität zu deaktivieren, indem Sie »noautodbgsym« zur DEB_BUILD_OPTIONS-Variable Ihres Build-Services hinzufügen. Weitere Informationen finden Sie in der dh_strip-Handbuchseite.

5.3.6. OpenSSL-betreffende Änderungen

Das openssl-Programm erwartet jetzt, dass Options-Argumente vor Nicht-Options-Argumenten angegeben werden. Dies funktioniert zum Beispiel nicht mehr:

openssl dsaparam 2048 -out file

Dies jedoch wohl:

openssl dsaparam -out file 2048

Bei dem openssl enc-Befehl wurde die Standard-Hashfunktion (wird benutzt, um einen Schlüssel aus einer Passphrase zu generieren) von MD5 auf SHA256 geändert.

Die Cipher 3DES und RC4 sind nicht mehr für TLS-/SSL-Kommunikation verfügbar. Server, die gegen openssl gelinkt sind, können diese nicht mehr bereitstellen und Clients können sich nicht mehr mit Servern verbinden, die ausschließlich diese Cipher bereitstellen. Das bedeutet, dass openssl und Windows XP sich keine allgemeinen Cipher teilen.

Das Paket libssl-dev enthält Header-Dateien, um ein Kompilieren gegen openssl 1.1.0 zu ermöglichen. Die API hat sich maßgeblich verändert, und es besteht die Möglichkeit, dass sich die Software nicht mehr kompilieren lässt. Es existiert eine Übersicht über die Änderungen. Falls Sie Ihre Software nicht aktualisieren können, gibt es auch noch das Paket libssl1.0-dev, das Header für openssl 1.0.2 enthält.