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

Inhaltsverzeichnis

5.1. Sicherheitsstatus von Webbrowsern
5.2. Standardeinstellung für OpenSSH-Server ist jetzt "PermitRootLogin without-password"
5.3. Puppet 2.7-/3.7-Kompatibilität
5.4. Aktualisierung auf PHP 5.6 enthält Änderungen bezüglich der Verhaltensweise von PHP
5.5. Incompatible changes in Apache HTTPD 2.4
5.6. Durch ein Upgrade wird das neue Standard-Init-System für Jessie installiert
5.6.1. Strengere Handhabung von fehlgeschlagenen mount-Vorgängen während des Bootens unter systemd
5.6.2. Einige systemd-Dienste könnten einen Kernel erfordern, der mit CONFIG_DEVPTS_MULTIPLE_INSTANCES=y konfiguriert wurden (keine Standardsysteme)
5.6.3. Lokal angepasste init-Skripte müssen eventuell auf systemd portiert werden
5.7. udev in Jessie benötigt einen Kernel mit CONFIG_DEVTMPFS=y (keine Standardsysteme)
5.8. Relevante Gesichtspunkte für ein Upgrade von LXC-Hosts und -Containern
5.8.1. Upgrade von LXC-Guests, die auf Wheezy-Hosts laufen
5.8.2. Upgrade von LXC-Guests, die auf Jessie-Hosts laufen
5.8.3. Weitere Informationen
5.9. Manuelle Migration von Laufwerken, die mit LUKS whirlpool verschlüsselt sind (keine Standardsysteme)
5.10. Der GNOME-Desktop erfordert grundlegende 3D-Grafikfähigkeiten
5.11. Der GNOME-Desktop funktioniert nicht mit AMDs proprietärem FGLRX-Treiber
5.12. Änderungen bei den Standard-Tastaturkürzeln in GNOME
5.13. Changes to default shell of system users provided by base-passwd

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. Sicherheitsstatus von Webbrowsern

Debian 8 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 Jessie 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 Iceweasel 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. Iceweasel und Icedove werden ebenfalls über ein Neubauen der aktuellen ESR-Veröffentlichungen für Stable aktuell gehalten.

Bitte beachten Sie, dass das Paket debian-security-support, eingeführt in Jessie Ihnen dabei hilft, den Sicherheitsstatus installierter Pakete im Blick zu behalten.

5.2. Standardeinstellung für OpenSSH-Server ist jetzt "PermitRootLogin without-password"

Um das Standard-Setup gegen Angriffe abzuhärten, wurde die Voreinstellung auf "PermitRootLogin without-password" geändert. Falls Sie Passwortauthentifizierung für den root-Benutzer verwenden, könnten Sie von dieser Änderung betroffen sein.

Der openssh-server versucht, solche Situationen zu erkennen und bei Bedarf die Priorität des debconf-Prompts zu erhöhen.

Wenn Sie weiterhin Passwortauthentifizierung für den root-Benutzer verwenden möchten, können Sie diese Frage auch per Voreinstellung unterdrücken mit:

$ echo 'openssh-server openssh-server/permit-root-login boolean true' | debconf-set-selections
    

5.3. Puppet 2.7-/3.7-Kompatibilität

Wenn Sie Puppet verwenden, beachten Sie bitte, dass Puppet 3.7 nicht abwärts-kompatibel mit Puppet 2.7 ist. Neben anderen Dingen wurden die Scoping-Regeln verändert und viele veraltete Konstrukte entfernt. Lesen Sie die Puppet 3.x Release Notes bezüglich näherer Informationen zu einigen Änderungen, aber beachten Sie, dass es noch weitere Änderungen in 3.7 gibt.

Es ist erheblich einfacher, das Upgrade zu beenden, wenn Sie die Logdateien des derzeitigen puppetmaster auf etwaige Warnungen bezüglich veralteter Einstellungen (deprecated) kontrollieren und all diese Warnungen beseitigen, bevor Sie mit dem Upgrade fortfahren. Alternativ - oder zusätzlich - dazu können Sie auch mit einem Hilfsprogramm wie puppet catalog test potentielle Probleme vor dem Upgrade aufspüren.

Wenn Sie ein durch Puppet verwaltetes System von Wheezy auf Jessie aktualisieren, müssen Sie sicherstellen, dass auf dem dazugehörigen puppetmaster mindestens Puppet Version 3.7 läuft. Läuft auf dem Master die Wheezy-Version von puppetmaster, wird sich das verwaltete Jessie-System nicht mit dem Master verbinden können.

Weitere Informationen zu inkompatiblen Änderungen finden Sie unter Telly upgrade issues und "The Angry Guide to Puppet 3".

5.4. Aktualisierung auf PHP 5.6 enthält Änderungen bezüglich der Verhaltensweise von PHP

Das Upgrade auf Jessie enthält die Aktualisierung von PHP 5.4 auf 5.6. Davon könnten jegliche lokalen PHP-Skripte betroffen sein, und Sie sollten diese Skripte vor dem Upgrade überprüfen. Hier eine Auswahl der betroffenen Änderungen:

  • Um Man-in-the-middle-Attacken gegen verschlüsselte Übertragungen vorzubeugen, überprüfen Client-Datenübertragungen jetzt standardmäßig die Zertifikate der Gegenstelle.

    Resultierend daraus wird über vorhandenen Code mit ssl:// oder tls:// Stream-Wrappern (wie file_get_contents(), fsockopen(), stream_socket_client() ) möglicherweise keine erfolgreiche Verbindung mehr aufgebaut, solange die Überprüfung der Gegenstelle (peer verification) nicht über die "verify_peer"-Einstellung im Kontext des betreffenden Streams manuell deaktiviert wurde.

    Weitere Informationen über dieses Thema finden Sie in diesem Dokument.

  • PHP ändert in vielen Fällen die Handhabung von Groß-/Kleinschreibung:

    • Jegliche interne Handhabung von Namen für Klassen, Funktionen und Konstanten mit Ignorierung von Groß-/Kleinschreibung wird gemäß der ASCII-Regeln abgewickelt. Aktuelle Locale-Einstellungen werden ignoriert.

    • Bei den Schlüsselworten "self", "parent" und "static" wird die Groß-/Kleinschreibung jetzt nicht mehr beachtet.

    • Die Funktion json_decode() akzeptiert jetzt keine Varianten von "boolean"-Werten mit Großbuchstaben mehr.

  • Die GUID-Funktionen für Logos, wie php_logo_guid(), wurden entfernt.

  • Es ist nicht mehr möglich, Schlüssel in statischen Scalar-Arrays zu überschreiben. Ein Beispiel und weitere Informationen zu diesem Thema finden Sie im PHP-Fehlerbericht 66015.

  • Die Funktionen mcrypt_encrypt(), mcrypt_decrypt() und mcrypt_{MODE}() akzeptieren keine Schlüssel oder IVs mit inkorrekter Größe mehr. Desweiteren ist jetzt ein IV erforderlich, wenn der benutzte Blockverschlüsselungsmodus dies verlangt.

  • Aus rechtlichen Gründen wurde die JSON-Implementierung, die zu PHP gehört, durch die vom "jsonc"-PECL-Modul bereitgestellte Version ersetzt. Code, der sich auf feinere Implementierungsdetails des PHP-JSON-Parsers bezieht, muss eventuell kontrolliert werden.

Weitere Informationen sowie eine vollständige Liste potentieller Probleme finden Sie in der Liste der PHP-Autoren über rückwärts-kompatible Änderungen für PHP 5.5 und 5.6.

5.5. Incompatible changes in Apache HTTPD 2.4

[Anmerkung]Anmerkung

This section only applies to systems, which have installed an Apache HTTPD server and configured it manually.

There has been a number of changes to the configuration of the Apache HTTPD server in version 2.4. On the upstream side, the syntax has changed. Notably, the access control directives have changed considerably and will need manual migration to the new directives.

The managing of configuration files have also been changed in the Debian packaging. In particular, all configuration files and sites must now end with ".conf" to be parsed by default. This change also replaces the existing use of /etc/apache2/conf.d/.

For more information and the full list of changes, please refer to:

  • Upgrading to 2.4 from 2.2 document provided by Apache for the upstream side.

  • The /usr/share/doc/apache2/NEWS.Debian.gz file provided by the apache2 package.

5.6. Durch ein Upgrade wird das neue Standard-Init-System für Jessie installiert

Jessie wird mit systemd-sysv als standardmäßigem Init-System ausgeliefert. Falls Sie ein anderes Init-System wie z.B. sysvinit-core oder upstart bevorzugen, wird empfohlen, vor dem Upgrade APT-Pinning einzurichten. Dies könnte auch erforderlich sein, wenn Sie LXC-Container vor dem Host-Rechner aktualisieren. In diesem Fall lesen Sie bitte Abschnitt 5.8.1, „Upgrade von LXC-Guests, die auf Wheezy-Hosts laufen“.

Als Beispiel, um die Installation von systemd während dem Upgrade zu verhindern, können Sie eine Datei namens /etc/apt/preferences.d/local-pin-init mit folgendem Inhalt erstellen:

Package: systemd-sysv
Pin: release o=Debian
Pin-Priority: -1
  
[Achtung]Achtung

Seien Sie gewarnt, dass einige Pakete ein schlechteres Verhalten zeigen oder Funktionalitäten vermissen lassen könnten, wenn nicht das Standard-Init-System verwendet wird.

Bitte beachten Sie, dass während dem Upgrade trotz eingerichtetem APT-Pinning Pakete installiert werden könnten, die "systemd" in ihrem Namen enthalten. Durch dies allein wird nicht Ihr Init-System geändert, dazu muss zunächst das Paket systemd-sysv installiert werden.

5.6.1. Strengere Handhabung von fehlgeschlagenen mount-Vorgängen während des Bootens unter systemd

Verglichen mit sysvinit reagiert das neue Standard-Init-System systemd-sysv strenger darauf, wenn mit "auto" markierte mount-Einträge während des Bootens nicht eingebunden werden können. In einem solchen Fall (und wenn nicht die Option "nofail" angegeben ist) wird systemd auf eine Notfall-Shell wechseln, statt mit dem Booten fortzufahren.

Wir empfehlen, dass alle "optionalen " mount-Einträge (z.B. für nicht-kritische Netzwerklaufwerke) oder solche für Wechseldatenträger in /etc/fstab entweder die Option "noauto" oder "nofail" enthalten.

5.6.2. Einige systemd-Dienste könnten einen Kernel erfordern, der mit CONFIG_DEVPTS_MULTIPLE_INSTANCES=y konfiguriert wurden (keine Standardsysteme)

[Anmerkung]Anmerkung

Dieser Abschnitt ist nur für Leute relevant, die Ihren eigenen Kernel kompilieren. Wenn Sie die von Debian vorkompilierten Kernel verwenden, können Sie dies ignorieren.

Einige durch systemd aktivierte Dienste machen es erforderlich, dass der Kernel mit CONFIG_DEVPTS_MULTIPLE_INSTANCES=y kompiliert wurde. Daher sollten Sie beim Kompilieren eigener Kernels sicherstellen, dass diese Option aktiviert ist. Die Dateien solcher Dienste enthalten oft mindestens einen der folgenden Einträge:

PrivateTmp=yes
PrivateDevices=yes
PrivateNetwork=yes
ProtectSystem=yes
  

5.6.3. Lokal angepasste init-Skripte müssen eventuell auf systemd portiert werden

[Anmerkung]Anmerkung

Dieser Abschnitt betrifft nur Systeme, auf denen init-Skripte, die von Debian bereitgestellt wurden, lokal verändert worden sind.

Falls Sie von Debian bereitgestellte init-Skripte lokal verändert haben, beachten Sie bitte, dass diese möglicherweise durch eine system-unit-Datei oder durch systemd selbst ersetzt worden sind. Haben Sie debsums installiert, können Sie mit folgendem Befehl nach lokal veränderten init-Skripten suchen:

debsums -c -e | grep ^/etc/init.d
  

Alternativ können Sie folgendes verwenden, wenn debsums nicht installiert ist.

  dpkg-query --show -f'${Conffiles}' | sed 's, /,\n/,g' | \
    grep /etc/init.d | awk 'NF,OFS="  " {print $2, $1}' | \
    md5sum --quiet -c

Wenn entweder keiner dieser Befehle irgendwelche Dateien und dazugehörige Pakete ausgibt oder systemd jetzt eine systemd-unit-Datei für diesen Dienst anbietet, wird die systemd-unit-Datei sich um das lokal veränderte init-Skript kümmern. Abhängig von der Natur der Änderungen gibt es verschiedene Wege, die Migration durchzuführen.

Falls nötig, ist es möglich, die systemd-unit-Datei zu überschreiben, so dass sie das sysvinit-Skript startet. Weitere Informationen über systemd-unit-Dateien finden Sie hier:

5.7. udev in Jessie benötigt einen Kernel mit CONFIG_DEVTMPFS=y (keine Standardsysteme)

[Anmerkung]Anmerkung

Dieser Abschnitt ist nur für Leute relevant, die Ihren eigenen Kernel kompilieren. Wenn Sie die von Debian vorkompilierten Kernel verwenden, können Sie dies ignorieren.

Das udev-Paket in Jessie erfordert einen Kernel, der mit "CONFIG_DEVTMPFS=y" kompiliert wurde. Bitte stellen Sie sicher, dass Ihr Kernel mit dieser Option kompiliert wurde, bevor Sie mit dem Upgrade beginnen. Weitere Informationen finden Sie in /usr/share/doc/systemd/README.gz.

5.8. Relevante Gesichtspunkte für ein Upgrade von LXC-Hosts und -Containern

[Anmerkung]Anmerkung

Dieser Abschnitt betrifft nur Systeme, die LXC-Hosts und -Container enthalten. Auf Systeme normaler Benutzer trifft dies üblicherweise nicht zu.

Durch das Upgrade von Wheezy auf Jessie wird Ihr System standardmäßig auf das systemd-Init-System migriert (lesen Sie dazu Abschnitt 5.6, „Durch ein Upgrade wird das neue Standard-Init-System für Jessie installiert“).

Beim Upgrade eines LXC-Containers respektive einer LXC-virtuellen Maschine hat dies verschiedene Konsequenzen, abhängig davon, ob das Host-System bereits auf Jessie aktualisiert wurde oder nicht.

5.8.1. Upgrade von LXC-Guests, die auf Wheezy-Hosts laufen

Wenn Sie einen LXC-Guest-Container aktualisieren, der auf einem Wheezy-Host-System läuft, müssen Sie verhindern, dass der Guest automatisch auf systemd migriert wird. Dies erreichen Sie mittels APT-Pinning, wie in Abschnitt 5.6, „Durch ein Upgrade wird das neue Standard-Init-System für Jessie installiert“ beschrieben.

Das ist erforderlich, da dem Wheezy-Host-System Funktionalitäten fehlen, um ein System zu booten, auf dem systemd läuft.

Sobald das Host-System auf Jessie aktualisiert wurde, sollte es ohne Probleme möglich sein, den LXC-Guest auf systemd umzustellen.

5.8.2. Upgrade von LXC-Guests, die auf Jessie-Hosts laufen

Um LXC-Guests mit systemd booten zu können, müssen Sie die Konfiguration Ihres LXC-Containers anpassen. Sie finden diese normalerweise in /var/lib/lxc/CONTAINER_NAME/config. Folgende zwei Einstellungen müssen der Konfiguration hinzugefügt werden:

lxc.autodev = 1
lxc.kmsg = 0

5.8.3. Weitere Informationen

Weitere Informationen über LXC in Debian finden Sie im Debian Wiki.

5.9. Manuelle Migration von Laufwerken, die mit LUKS whirlpool verschlüsselt sind (keine Standardsysteme)

[Anmerkung]Anmerkung

Dieser Abschnitt ist nur für Leute relevant, die LUKS-verschlüsselte Laufwerke selbst mittels dem whirlpool-Hash eingerichtet haben. Der debian-installer hat nie die Erzeugung solcher Laufwerke unterstützt.

Haben Sie händisch ein verschlüsseltes Laufwerk mit LUKS whirlpool eingerichtet, müssen Sie es jetzt manuell auf ein stärkeres Hash migrieren. Sie können mit folgendem Befehl überprüfen, ob Ihr Laufwerk whirlpool verwendet:

    # /sbin/cryptsetup luksDump <gerätedatei> | grep -i whirlpool
  

Weitere Informationen über die Migration finden Sie im Abschnitt "8.3 Gcrypt 1.6.x and later break Whirlpool" der cryptsetup-FAQ.

[Achtung]Achtung

Sollten Sie ein solches Laufwerk haben, wird cryptsetup sich standardmäßig weigern, es zu entschlüsseln. Sind Ihr root-Laufwerk oder andere Systemlaufwerke (z.B. /usr) mit whirlpool verschlüsselt, sollten Sie diese migrieren, bevor Sie nach der Aktualisierung des cryptsetup-Pakets einen Reboot durchführen.

5.10. Der GNOME-Desktop erfordert grundlegende 3D-Grafikfähigkeiten

GNOME 3.14 in Jessie hat keinen Ausweichmodus für Rechner ohne grundlegende 3D-Grafikfähigkeiten mehr. Um korrekt zu laufen, benötigt es entweder einen ausreichend aktuellen PC (jeder PC, der in den letzten 10 Jahren gebaut wurde, sollte die benötigte SSE2-Unterstützung bieten) oder - für andere Architekturen als i386 und amd64 - eine 3D-beschleunigte Grafikkarte mit EGL-Treibern.

5.11. Der GNOME-Desktop funktioniert nicht mit AMDs proprietärem FGLRX-Treiber

Anders als sonstige OpenGL-Treiber unterstützt der FGLRX-Treiber von AMD für Radeon-Grafikkarten nicht die EGL-Schnittstelle. Daher werden verschiedene GNOME-Anwendungen, inklusive der Kernanwendung des GNOME-Desktops, erst gar nicht starten, wenn dieser Treiber verwendet wird.

Es wird empfohlen, dass Sie stattdessen den freien radeon-Treiber verwenden, welcher in Jessie der Standardtreiber ist.

5.12. Änderungen bei den Standard-Tastaturkürzeln in GNOME

Die standardmäßigen Tastaturkürzel des GNOME-Desktops wurden geändert, um sie mehr denen einiger anderer Betriebssysteme anzupassen.

Tastaturkürzel, die vorher durch den Benutzer angepasst worden sind, werden auch über das Upgrade hinaus erhalten bleiben. Die Einstellungen für die Tastaturkürzel können nach wie vor über das GNOME Controlcenter eingerichtet werden, erreichbar über das Menü oben rechts, indem Sie auf das "Einstellungen"-Icon klicken.

5.13. Changes to default shell of system users provided by base-passwd

The upgrade of base-passwd package will reset the shell of system users that is provides to the "nologin" shell. This includes the following users:

  • daemon

  • bin

  • sys

  • games

  • man

  • lp

  • mail

  • news

  • uucp

  • proxy

  • www-data

  • backup

  • list

  • irc

  • gnats

  • nobody

If your local setup requires that any of these users have a shell, you should say no to migrating or migrate and then change the shell of the necessary users. Notable examples includes local backups done via the "backup" user with an "ssh-key" authentication.

[Achtung]Achtung

The migration will happen automatically if your debconf question priorty is "high" or above.

If you know you want to keep the current shell of a given user, you can preseed the questions by using the following:

    echo 'base-passwd base-passwd/system/username/shell/current-shell-mangled/_usr_sbin_nologin boolean false' | debconf-set-selections
  

Where username is the name of the user in question and current-shell-mangled is the mangled name of the shell. The mangling is done by replacing all non-alphanumerical, non-dashes and non-underscores with underscores. E.g. /bin/bash becomes _bin_bash.