Chapitre 5. Problèmes à connaître pour Buster

Table des matières

5.1. Mise à niveau d'éléments spécifiques pour Buster
5.1.1. Option de montage hidepid de procfs non prise en charge
5.1.2. ypbind ne démarre pas avec -no-dbus
5.1.3. sshd échoue à s'authentifier
5.1.4. Les démons ne se lancent pas ou le système semble bloqué pendant le démarrage
5.1.5. Migration depuis les anciens noms d'interface réseau
5.1.6. Configuration de module pour les liens et interfaces factices
5.1.7. Augmentation de la version par défaut et du niveau de sécurité d'OpenSSL
5.1.8. Certaines applications ne fonctionnent pas dans GNOME avec Wayland
5.1.9. Paquets obsolètes
5.1.10. Composants dépréciés pour Buster
5.1.11. Choses à faire avant de redémarrer après la mise à niveau
5.1.12. Paquets liés à SysV init plus nécessaires
5.2. Limitations de la prise en charge de sécurité
5.2.1. État de sécurité des navigateurs web et de leurs moteurs de rendu
5.2.2. Paquets basés sur Go
5.3. Problèmes spécifiques à des paquets
5.3.1. La sémantique de l'utilisation des variables d'environnement pour su a changé
5.3.2. Les bases de données PostgreSQL existantes doivent être réindexées
5.3.3. mutt et neomutt
5.3.4. Accéder à GNOME Settings sans souris
5.3.5. gnome-disk-utility échoue à modifier le mot de passe LUKS, causant une perte de données permanente
5.3.6. evolution-ews a été supprimé et les boîtes de messagerie utilisant Exchange, Office365 ou Outlook ont été supprimées
5.3.7. L’installateur Calamares laisse les clés de chiffrement lisibles

Parfois, des changements ont des effets de bord que nous ne pouvons pas raisonnablement éviter sans nous exposer à des bogues à un autre endroit. Cette section documente les problèmes que nous connaissons. Veuillez également lire l'errata, la documentation des paquets concernés, les rapports de bogues et les autres sources d'informations mentionnées en Section 6.1, « Lectures pour aller plus loin ».

5.1. Mise à niveau d'éléments spécifiques pour Buster

Cette section concerne les éléments liés à la mise à niveau de Stretch vers Buster

5.1.1. Option de montage hidepid de procfs non prise en charge

Utiliser l'option de montage hidepid pour /proc est connu pour causer des problèmes avec les versions actuelles de systemd et est considéré par l'amont comme une configuration non prise en charge. Il est recommandé aux utilisateurs, ayant modifié /etc/fstab pour activer cette option, de la désactiver avant la mise à niveau pour être sûr que les sessions de login fonctionnent sur Buster. (Un moyen possible de réactiver cette option est résumé sur la page Hardening du wiki.)

5.1.2. ypbind ne démarre pas avec -no-dbus

Les options par défaut de ypbind ont changé. Cependant, si vous avez modifié ce fichier, les anciennes valeurs par défaut ne seront pas mises à jour et vous devrez vous assurer que l'option YPBINDARGS= dans /etc/default/nis n'inclut pas -no-dbus. En présence de -no-dbus, ypbind échouera à se lancer et vous pourriez être dans l'incapacité de vous connecter. Pour plus d'informations, consultez le rapport de bogue nº 906436.

5.1.3. sshd échoue à s'authentifier

La signification des options PubkeyAcceptedKeyTypes et HostbasedAcceptedKeyTypes de sshd a changé. Ces options indiquent désormais les algorithmes de signature acceptés pour leurs mécanismes d’authentification respectifs, alors qu'elles indiquaient précédemment les types de clés acceptés. Cette distinction est importante quand les algorithmes de signature RSA/SHA2, rsa-sha2-256, rsa-sha2-512 et leurs équivalents de certificats sont utilisés. Les configurations qui changent ces options mais oublient ces noms d'algorithmes pourraient subir des échecs d'authentification.

Aucune action n'est nécessaire pour les configurations qui acceptent les valeurs par défaut de ces options.

5.1.4. Les démons ne se lancent pas ou le système semble bloqué pendant le démarrage

À cause du besoin d'entropie de systemd pendant le démarrage et comme le noyau considère ces appels bloquants quand l'entropie disponible est faible, le système pourrait être bloqué entre plusieurs minutes et plusieurs heures jusqu'à ce que le sous-système de nombres aléatoires soit suffisamment initialisé (random: crng init done). Pour les systèmes amd64 prenant en charge l'instruction RDRAND, ce problème est évité car le noyau fourni par Debian utilise cette instruction par défaut (CONFIG_RANDOM_TRUST_CPU).

Les autres systèmes et certains types de machines virtuelles doivent fournir une autre source d'entropie pour continuer à démarrer rapidement. haveged a été choisi pour cela par le projet de l'installateur Debian et peut être une option valable si l'entropie matérielle n'est pas disponible sur le système. Sur les machines virtuelles, il est possible de transférer de l'entropie depuis l'hôte vers les VM grâce à virtio_rng.

Si vous lisez cela après avoir mis à niveau un système distant vers Buster, envoyez une commande ping sur le réseau en continu car cela ajoute des valeurs aléatoires à la réserve d'entropie et le système finira par être à nouveau accessible par ssh.

Veuillez consulter le wiki pour plus de détails et le résumé du problème par DLange (en anglais) pour d'autres options.

5.1.5. Migration depuis les anciens noms d'interface réseau

Si votre système a été mis à niveau depuis une version précédente et utilise toujours les anciens noms d'interface réseau dépréciés depuis Stretch (comme eth0 ou wlan0), sachez que le mécanisme pour définir leurs noms avec /etc/udev/rules.d/70-persistent-net.rules n’est officiellement plus pris en charge par udev dans Buster (bien qu’il puisse toujours fonctionner dans certains cas). Pour éviter que votre machine ne perde le réseau après la mise à niveau vers Buster, il est recommandé que vous fassiez d'abord la migration vers le nouveau schéma de nommage (avec des noms du type enp0s1 ou wlp2s5, qui incluent les numéros de bus et d'emplacement PCI). Veillez à mettre à jour toutes les interfaces écrites en dur dans les configurations des pare-feux, de ifupdown, etc.

Une autre possibilité est de passer à un mécanisme pris en charge pour conserver l'ancien schéma de nommage, tel qu’un fichier systemd .link (consultez systemd.link(5)). L'option en ligne de commande du noyau net.ifname=0 pourrait également fonctionner pour les systèmes n’ayant qu’une seule interface réseau (pour un type donné).

Pour trouver les nouveaux noms qui seront utilisés, déterminez d'abord les noms en cours des interfaces pertinentes :

$ echo /sys/class/net/[ew]*
    

Pour chacun de ces noms, vérifiez s'il est utilisé dans des fichiers de configuration et quel nom udev préférerait utiliser à la place :

$ sudo rgrep -w eth0 /etc
$ udevadm test-builtin net_id /sys/class/net/eth0 2>/dev/null
    

Cela devrait donner suffisamment d'informations pour concevoir un plan de migration. (si la sortie de udevadm contient un nom « onboard », il prend la priorité ; les noms basés sur les adresses MAC sont normalement traités comme des solutions de repli, mais pourraient être nécessaires aux matériels réseau USB).

Lorsque vous être prêt à procéder au changement, désactivez 70-persistent-net.rules soit en le renommant, soit en commentant ses lignes. Sur les machines virtuelles, il vous faudra supprimer les fichiers /etc/systemd/network/99-default.link et /etc/systemd/network/50-virtio-kernel-names.link (si vous utilisez les périphériques réseau virtio). Puis reconstruisez l'initrd :

$ sudo update-initramfs -u
    

et redémarrez. Votre système devrait maintenant avoir les nouveaux noms d'interface réseau. Ajustez tous les fichiers de configurations restants et testez votre système.

Consultez la documentation amont et le README.Debian de udev pour de plus amples informations.

5.1.6. Configuration de module pour les liens et interfaces factices

Les systèmes utilisant le lien de canal (channel bonding) et/ou les interfaces factices, par exemple pour configurer une machine en tant que routeur, peuvent rencontrer des problèmes en mettant à niveau vers Buster. Les nouvelles versions de systemd installent un fichier /lib/modprobe.d/systemd.conf (prévu pour simplifier la configuration avec systemd-networkd) qui contient les lignes suivantes

 options bonding max_bonds=0
 options dummy numdummies=0
    

Les administrateurs qui dépendaient de valeurs différentes doivent s’assurer qu’elles sont réglées de façon à avoir la priorité. Un fichier dans /etc/modprobe.d surchargera tout fichier du même nom situé dans /lib/modprobe.d, mais les noms sont traités dans l’ordre alphabétique, donc /lib/modprobe.d/systemd.conf suit et surcharge (par exemple) /etc/modprobe.d/dummy.conf. Assurez-vous que tout fichier de configuration local ait un nom passant après « systemd.conf », tel que « /etc/modprobe.d/zz-local.conf ».

5.1.7. Augmentation de la version par défaut et du niveau de sécurité d'OpenSSL

Suite à diverses recommandations de sécurité, la version minimum de TLS a été changée de TLSv1 vers TLSv1.2.

Le niveau de sécurité par défaut pour les connexions TLS a également été augmenté de niveau 1 vers le niveau 2. Cela fait passer du niveau de sécurité à 80 bits au niveau de sécurité à 112 bits et nécessite des clés RSA et DHE de 2048 bits ou plus, des clés ECC de 224 bits ou plus, et SHA-2.

Les paramètres du système peuvent être modifiés dans /etc/ssl/openssl.cnf. Les applications pourraient avoir un moyen spécifique de surcharger ces valeurs par défaut.

Le fichier /etc/ssl/openssl.cnf contient une ligne MinProtocol et une ligne CipherString. CipherString peut également régler le niveau de sécurité. Des informations à propos des niveaux de sécurité peuvent être trouvées dans la page de manuel SSL_CTX_set_security_level(3ssl). La liste des chaînes valables pour la version minimale de protocole est disponible dans SSL_CONF_cmd(3ssl). D’autres informations sont disponibles dans ciphers(1ssl) et config(5ssl).

Changer les valeurs par défaut de /etc/ssl/openssl.cnf pour tout le système vers les anciennes valeurs peut être réalisé en configurant :

        MinProtocol = None
        CipherString = DEFAULT
      

Il est recommandé que vous contactiez le site distant si les valeurs par défaut posent problème.

5.1.8. Certaines applications ne fonctionnent pas dans GNOME avec Wayland

GNOME dans Buster a changé de serveur d'affichage par défaut, passant de Xorg à Wayland (Section 2.2.11, « GNOME utilise Wayland par défaut »). Certaines applications, comme le gestionnaire de paquets populaire synaptic, la méthode de saisie pour le chinois simplifié, fcitx et la plupart des applications d'enregistrement d'écran, n'ont pas été mises à jour pour fonctionner correctement avec Wayland. Pour pouvoir utiliser ces paquets, il est nécessaire de s'authentifier avec une session GNOME on Xorg.

5.1.9. Paquets obsolètes

La liste suivante contient des paquets connus et obsolètes (voir Section 4.8, « Paquets obsolètes » pour une description).

La liste des paquets obsolètes contient :

  • Le paquet mcelog n'est plus pris en charge dans les noyaux 4.12 et suivants. rasdaemon peut être utilisé comme remplacement.

  • Le paquet revelation, qui est utilisé pour stocker des mots de passe, n'est pas inclus dans Buster. keepass2 peut importer les fichiers XML de mots de passe exportés précédemment depuis revelation. Veuillez vous assurer que vous pouvez exporter vos données depuis revelation avant de faire la mise à niveau pour éviter de perdre l'accès à vos mots de passe.

  • Le paquet phpmyadmin n'est pas inclus dans Buster.

  • ipsec-tools et racoon ont été supprimés de Buster car leurs sources prenaient trop de temps à s'adapter aux nouvelles menaces.

    Les utilisateurs sont encouragés à migrer vers libreswan qui a une plus grande compatibilité de protocoles et est activement maintenu en amont.

    libreswan devrait être pleinement compatible en terme de protocoles de communication car il implémente un sur-ensemble des protocoles pris en charge par racoon.

  • L'agent de transfert de courriel simple ssmtp a été retiré de Buster car il ne valide actuellement pas les certificats TLS (voir le bogue nº 662960).

  • Le paquet ecryptfs-utils ne fait pas partie de Buster à cause d’un bogue sérieux non corrigé (nº 765854). À l’écriture de ce paragraphe, aucune recommandation claire n’est disponible, à part celle de ne pas mettre à niveau.

5.1.10. Composants dépréciés pour Buster

Avec la prochaine publication de Debian 11 (nom de code Bullseye), certaines fonctionnalités seront déconseillées. Les utilisateurs devront migrer vers des alternatives pour éviter les problèmes lors de la mise à jour vers Debian 11.

Cela comprend les fonctionnalités suivantes :

  • Python 2 ne sera plus pris en charge par l'amont à partir du premier janvier 2020. Debian espère abandonner python-2.7 pour Debian 11. Si des utilisateurs ont des fonctionnalités qui reposent sur python, ils devraient se préparer à migrer vers python3.

  • Icinga en version 1.x n'est plus maintenu par l'amont depuis le 31 décembre 2018 ; même si le paquet icinga est toujours présent, les utilisateurs devraient profiter du cycle de vie de Buster pour migrer vers Icinga 2 (paquet icinga2) et Icinga Web 2 (icingaweb2). Le paquet icinga2-classicui est toujours présent pour utiliser l'interface web CGI d'Icinga 1.x avec Icinga 2, mais sa prise en charge sera supprimée dans Icinga 2.11. Icinga Web 2 devrait être utilisé à la place.

  • La version 3 de la suite de gestion de listes de diffusion Mailman fait son apparition dans cette publication. Mailman a été séparé en divers composants ; le cœur est disponible dans le paquet mailman3 et la suite complète peut être obtenue grâce au métapaquet mailman3-full.

    L'ancienne version 2.1 de Mailman reste disponible dans cette publication dans le paquet mailman, afin que vous puissiez migrer les installations existantes à votre rythme. Le paquet Mailman 2.1 sera maintenu en état de fonctionnement dans un avenir proche, mais ne verra plus de modifications ou améliorations d'importance. Il sera supprimé de la première publication de Debian suivant l'arrêt de la prise en charge de cette branche par les développeurs amont de Mailman.

    Chacun est encouragé à mettre à niveau vers Mailman 3, la version moderne et en cours de développement actif.

  • Les paquets spf-milter-python et dkim-milter-python ne sont plus activement développés en amont, mais leurs remplaçants pyspf-milter et dkimpy-milter, plus riches en fonctionnalités, sont disponibles dans Buster. Les utilisateurs devraient migrer vers les nouveaux paquets avant que les anciens ne soit supprimés de Bullseye.

5.1.11. Choses à faire avant de redémarrer après la mise à niveau

Lorsque apt full-upgrade a terminé, la mise à niveau « formelle » est complète. Pour la mise à niveau vers Buster il n'y a rien de particulier à faire avant de redémarrer.

5.1.12. Paquets liés à SysV init plus nécessaires

[Note]Note

Cette section ne s'applique pas si vous avez décidé de conserver sysvinit-core.

Après le changement vers systemd en tant que système de démarrage par défaut dans Jessie puis des perfectionnements dans Stretch, divers paquets liés à SysV ne sont plus nécessaires et peuvent maintenant être purgés en toute sécurité avec

apt purge initscripts sysv-rc insserv startpar

5.2. Limitations de la prise en charge de sécurité

Il y a certains paquets pour lesquels Debian ne peut pas garantir de rétroportages minimaux pour les problèmes de sécurité. Ceux-ci sont couverts dans les sous-sections suivantes.

[Note]Note

Le paquet debian-security-support aide à suivre l’état de la prise en charge du suivi de sécurité des paquets installés.

5.2.1. État de sécurité des navigateurs web et de leurs moteurs de rendu

Debian 10 inclut plusieurs moteurs de navigateur web qui sont affectés par un flot continu de vulnérabilités de sécurité. Ce taux élevé de vulnérabilités ainsi que le manque partiel de prise en charge amont sous la forme de branches maintenues à long terme rendent difficiles les corrections de sécurité rétroportées. De plus, les interdépendances des bibliothèques rendent impossible la mise à niveau vers une nouvelle version. Par conséquent les navigateurs basés par exemple sur les moteurs webkit, qtwebkit et khtml[6] sont inclus dans Buster mais ne sont pas couverts par une prise en charge complète de la sécurité. Ces navigateurs ne devraient pas être utilisés sur des sites web non fiables. Le paquet source webkit2gtk est couvert par une prise en charge complète de la sécurité.

Pour une utilisation classique, nous recommandons les navigateurs Firefox ou Chromium. Ceux-ci seront maintenus à jour en recompilant les versions ESR actuelles pour stable. La même stratégie sera appliquée pour Thunderbird.

5.2.2. Paquets basés sur Go

L’infrastructure de Debian ne permet actuellement pas de recompiler correctement à grande échelle les paquets qui lient statiquement des parties d’autres paquets. Jusqu’à Buster, cela n’a pas été un problème en pratique, mais la croissance de l’écosystème de Go signifie que les paquets basés sur Go ne seront pas couverts par le processus normal de prise en charge de sécurité jusqu’à ce que l’infrastructure soit améliorée pour pouvoir les gérer durablement.

Si les mises à jour sont justifiées, elles ne peuvent venir que des mises à jour intermédiaires normales, ce qui pourrait mettre du temps à arriver.

5.3. Problèmes spécifiques à des paquets

Dans la plupart des cas, les paquets devraient se mettre à jour sans incident entre Stretch et Buster. Il existe un petit nombre de cas pour lesquels une intervention pourrait être nécessaire, avant ou pendant la mise à niveau ; ces cas sont détaillés ci-dessous paquet par paquet.

5.3.1. La sémantique de l'utilisation des variables d'environnement pour su a changé

La sémantique de su a changé dans Buster et ne préserve plus les variables d’environnement DISPLAY et XAUTHORITY de l’utilisateur. Si vous devez exécuter des applications graphiques avec su, vous devrez les renseigner explicitement pour permettre l'accès à votre écran. Consultez le bogue nº 905409 pour une discussion complète sur le sujet.

5.3.2. Les bases de données PostgreSQL existantes doivent être réindexées

Pendant la mise à niveau de Stretch vers Buster, les données locales de glibc sont mises à niveau. En particulier, cela change la façon dont PostgreSQL trie les données dans les index de texte. Pour éviter une corruption, ces index doivent être réindexés avec la commande REINDEX immédiatement après la mise à niveau des paquets locales ou locales-all, avant de remettre la base de données en production.

Commande suggérée :

sudo -u postgres reindexdb --all

Autrement, mettez à niveau les bases de données vers PostgreSQL 11 avec pg_upgradecluster. (Cette commande utilise pg_dump par défaut, ce qui va reconstruire tous les index. Utiliser -m upgrade ou pg_upgrade n'est pas sûr car ces commandes préservent le mauvais ordre de tri des index).

Veuillez vous référer au wiki de PostgreSQL pour plus d'informations.

5.3.3. mutt et neomutt

Dans Stretch, le paquet mutt avait des correctifs appliqués depuis des sources venant de https://neomutt.org. À partir de Buster, le paquet fournissant /usr/bin/mutt sera à la place basé uniquement sur les sources originales en provenance de http://www.mutt.org et un paquet neomutt séparé, fournissant /usr/bin/neomutt, est disponible.

Cela signifie que certaines des fonctionnalités qui étaient auparavant fournies par mutt ne sont plus disponibles. Si cela casse votre configuration, vous pouvez installer neomutt à la place.

5.3.4. Accéder à GNOME Settings sans souris

Sans dispositif de pointage, il n’y a pas de moyen direct de modifier les réglages dans l’application GNOME Settings fournie par gnome-control-center. Pour contourner cela, il est possible de naviguer de la barre latérale vers le contenu principal en appuyant deux fois sur Flèche droite. Pour revenir à la barre latérale, vous pouvez commencer une recherche avec Ctrl+F, taper quelque chose, puis appuyer sur Echap. pour annuler la recherche. Maintenant, vous pouvez utiliser Flèche haut et Flèche bas pour naviguer dans la barre latérale. Il est n’est pas possible de sélectionner les résultats de recherche au clavier.

5.3.5.  gnome-disk-utility échoue à modifier le mot de passe LUKS, causant une perte de données permanente

Les utilisateurs ne devraient pas changer le mot de passe LUKS de disques chiffrés avec l’interface graphique de GNOME pour la gestion de disque. Le paquet gnome-disk-utility dans Buster a un bogue nº 928893 très grave quand il est utilisé pour modifier le mot de passe LUKS : il supprime l’ancien mot de passe mais échoue à régler le nouveau correctement, rendant toutes les données du disque inaccessibles.

5.3.6.  evolution-ews a été supprimé et les boîtes de messagerie utilisant Exchange, Office365 ou Outlook ont été supprimées

Users using evolution as their email client and connecting to a server running Exchange, Office365 or Outlook using the evolution-ews plugin should not upgrade to buster without backing up data and finding an alternative solution beforehand, as evolution-ews has been dropped due to bug #926712 and their email inboxes, calendar, contact lists and tasks will be removed and will no longer be accessible with Evolution.

The evolution-ews package has been reintroduced via buster-backports. Users upgrading from stretch to buster can enable buster-backports after the upgrade and then they will be able to reinstall evolution-ews.

5.3.7.  L’installateur Calamares laisse les clés de chiffrement lisibles

Quand Debian est installée depuis un média autonome en utilisant l’installateur Calamares (Section 2.2.13, « Nouveautés de l'équipe Debian Live ») et que le chiffrement complet du disque est sélectionné, la clé de déverrouillage du disque est stockée dans l’initramfs qui est lisible par tout le monde. Cela permet à des utilisateurs ayant accès au système de fichiers local de lire la clé privée et d’avoir accès au système de fichiers à l’avenir.

Cela peut être contourné en ajoutant UMASK=0077 à /etc/initramfs-tools/conf.d/initramfs-permissions et en exécutant la commande update-initramfs -u. Cela récréera l’initramfs sans les permissions de lecture pour tout le monde.

Un correctif pour l’installateur est prévu (voir le bogue nº 931373) et sera publié dans debian-security. En attendant, les utilisateurs du chiffrement complet devraient utiliser le contournement présenté plus haut.



[6] Ces moteurs sont fournis dans un certain nombre de paquets source différents et le problème s'applique à tous les paquets qui les fournissent. Il s'étend aussi à tous les moteurs de rendu web qui ne sont pas explicitement mentionnés ici, à l'exception de webkit2gtk.