Capítulo 5. Problemas a estar atento em bullseye

Índice

5.1. Itens específicos de actualizações para Bullseye
5.1.1. Novo driver VA-API predefinido para GPUs Intel
5.1.2. O sistema de ficheiros XFS já não suporta a opção barrier/nobarrier
5.1.3. Alteração do layout do arquivo de segurança
5.1.4. O hashing de palavras-passe utiliza yescrypt por predefinição
5.1.5. Suporte para NSS NIS e NIS+ necessita de novos pacotes
5.1.6. Ficheiros de fragmentos de configuração no unbound
5.1.7. depreciação de parâmetros do rsync
5.1.8. Vim addons
5.1.9. OpenStack e cgroups v1
5.1.10. Ficheiros policy da API OpenStack
5.1.11. sendmail sem função durante a atualização
5.1.12. FUSE 3
5.1.13. Ficheiro de opções de GnuPG
5.1.14. Linux habilita user namespaces por predefinição
5.1.15. redmine não está em bullseye
5.1.16. Exim 4.94
5.1.17. Deteção de dispositivos SCSI é não-determinística
5.1.18. rdiff-backup necessita de uma atualização combinada de servidor e cliente
5.1.19. Coisas a fazer após a actualização e antes de reiniciar
5.2. Itens não limitados ao processo de atualização
5.2.1. Limitações no suporte de segurança
5.2.2. Aceder à aplicação de definições do GNOME sem o rato
5.2.3. A opção de arranque rescue não é utilizavel sem uma palavra-passe de root
5.3. Obsolescência e depreciação
5.3.1. Pacotes relevantes obsoletos
5.3.2. Componentes depreciados para bullseye
5.3.3. Hardware já não suportado

Por vezes, as alterações introduzidas num novo lançamento têm efeitos secundários que não podemos evitar razoavelmente, ou irão pôr a descoberto bugs noutro lado. Esta secção documenta os problemas que conhecemos. Por favor leia a errata, a documentação dos pacotes relevantes, relatórios de bugs e outra informação mencionada na Secção 6.1, “Leitura adicional”.

5.1. Itens específicos de actualizações para Bullseye

Esta secção cobre itens relacionados com a actualização de buster para bullseye.

5.1.1. Novo driver VA-API predefinido para GPUs Intel

Para GPUs disponíveis com Broadwell e mais recentes, a implementação de Video Accelearation API (VA-API) tem agora predefinido o intel-media-va-driver para descodificação de vídeo acelerado por hardware. Sistemas que tenham instalado o va-driver-all irão ser atualizados automaticamente para o novo controlador.

O antigo driver ainda está disponível no pacote i965-va-driver e suporta até à micro arquitectura Cannon Lake. Para preferir o driver antigo em vez do predefinido, tem de definir a variável de ambiente LIBVA_DRIVER_NAME para i965, por exemplo pode definir a variável em /etc/environment. Para mais informação, por favor veja a página Wiki aceleração de vídeo por hardware.

5.1.2. O sistema de ficheiros XFS já não suporta a opção barrier/nobarrier

Foi removido o suporte para as opções de mount barrier e nobarrier do sistema de ficheiros XFS. É recomendado verificar em /etc/fstab pela presença de alguma dessas palavras-chave e removê-las. As partições que utilizem estas opções irão falhar o mount.

5.1.3. Alteração do layout do arquivo de segurança

Para o bullseye, o conjunto de segurança é agora chamado de bullseye-security em vez de buster/updates e os utilizadores devem adaptar os seus ficheiros source-list do APT de acordo, ao atualizarem.

A linha do security na sua configuração do APT pode parecer assim:

deb https://deb.debian.org/debian-security bullseye-security main contrib

5.1.4. O hashing de palavras-passe utiliza yescrypt por predefinição

A hash predefinida das palavras-passe para as contas de sistema locais foi alterada de SHA-512 para yescrypt (ver crypt(5)). Isto é esperado que melhore a segurança contra ataques de tentativa de adivinhar palavras-passe com recurso a dicionário, em termos de espaço e complexidade de tempo para o ataque.

Para tomar partido da melhoria desta segurança, altere as palavras-passe locais; por exemplo utilize o comando passwd.

As palavras-passe antigas irão continuar a funcionar, qualquer que tenha sido a hash de palavras-passe utilizada para as criar.

Yescript não é suportado em Debian 10 (Buster). Por isso, os ficheiros de shadow password (/etc/shadow) não podem ser copiados de um sistema Bullseye para um sistema Buster. Se esses ficheiros forem copiados, as palavras-passe que foram alteradas no sistema Bullseye não irão funcionar no sistema Buster. Similarmente, não se pode fazer cortar&colar às hashes de palavra-passe de um sistema Bullseye para um Buster.

Se for necessária a compatibilidade entre sistemas Bullseye e Buster, então modifique /etc/pam.d/common-password. Encontre a linha que se parece com:

password [success=1 default=ignore] pam_unix.so obscure yescrypt
	

e substitua yescrypt por sha512.

5.1.5. Suporte para NSS NIS e NIS+ necessita de novos pacotes

O suporte para NSS NIS e NIS+ foi movido para pacotes separados chamados libnss-nis e libnss-nisplus. Infelizmente, glibc não pode depender desses pacotes, pois agora são apenas recomendados.

Em sistemas que utilizem NIS ou NIS+, é por isso recomendado verificar se esses pacotes estão correctamente instalados após a atualização.

5.1.6. Ficheiros de fragmentos de configuração no unbound

O DNS resolver unbound foi alterado na forma como lida com ficheiros de fragmentos de configuração. Se depende da directiva include: para juntar os vários fragmentos para uma configuração válida, deve ler o ficheiro NEWS.

5.1.7. depreciação de parâmetros do rsync

Os parâmetros --copy-devices e --noatime do rsync foram renomeados para --write-devices e para --open-noatime. As formas antigas já não são suportadas; se as está a utilizar, então deve ver: o ficheiro NEWS. Os processos de transferência entre sistemas que corram diferentes versões de lançamentos de Debian podem necessitar que do lado do Buster seja atualizado para uma versão do rsync do repositório backports.

5.1.8. Vim addons

Os addons para vim eram disponibilizados historicamente por vim-scripts, agora são geridos pela funcionalidade nativa package do Vim em vez do vim-addon-manager. Os utilizadores de Vim devem-se preparar antes de atualizar seguindo as instruções no ficheiro NEWS.

5.1.9. OpenStack e cgroups v1

O OpenStack Victoria (lançado em bullseye) necessita de cgroup v1 para QoS de dispositivos de bloco. Já que a partir de bullseye também muda para a utilização de cgroupv2 por predefinição (veja a Secção 2.2.4, “Control groups v2”), a árvore sysfs em /sys/fs/cgroup não irá incluir as funcionalidades de cgroup v1, tais como /sys/fs/cgroup/blkio, e como resultado cgcreate -g blkio:foo irá falhar. Para nós de OpenStack que corram nova-compute ou cinder-volume, é altamente recomendado acrescentar os parâmetros systemd.unified_cgroup_hierarchy=false e system.legacy_systemd_cgroup_controller=false à linha de comandos do kernel de modo a ultrapassar a predefinição e restaurar a antiga hierarquia cgroup.

5.1.10. Ficheiros policy da API OpenStack

Seguindo as recomendações dos autores, o OpenStack Victoria conforme é lançado em bullseye muda a API OpenStack para utilizar o novo formato YAML. Como resultado, a maioria dos serviços de OpenStack, incluindo Nova, Glance e Keystone parecem estragados com todas as políticas de API escritas explicitamente nos ficheiros policy.d. Por isso, os pacotes agora vêm com um directório /etc/PROJECT/policy.d contendo um ficheiro 00_default_policy.yaml, com todas as políticas comentadas, por predefinição.

Para evitar que o antigo ficheiro policy.json se mantenha ativo, os pacotes OpenStack em Debian agora renomeiam esse ficheiro como disabled.policy.json. Em alguns casos onde não pode ser feito nada melhor a tempo do lançamento o policy.json é simplesmente apenas apagado. Por isso antes de atualizar, é fortemente aconselhado fazer uma cópia de segurança aos ficheiros policy.json das suas instalações.

Estão disponíveis mais detalhes na documentação dos autores.

5.1.11. sendmail sem função durante a atualização

Em contraste com as atualizações normais de sendmail, durante a atualização de buster para bullseye, o serviço sendmail irá ser parado, causando uma paragem mais longa do que é normal. Para conselhos genéricos acerca de como reduzir o tempo de paragem veja a Secção 4.1.3, “Preparar para desligar temporariamente os serviços”.

5.1.12. FUSE 3

Alguns pacotes que incluem gvfs-fuse, kio-fuse, e sshfs mudaram para FUSE 3. Durante as atualizações isto irá fazer com que fuse3 seja instalado e que fuse seja removido.

Nalgumas circunstâncias excepcionais, e.g. quando se atualiza apenas correndo apt-get dist-upgrade em vez dos passos de atualização recomendados na Capítulo 4, Actualizações a partir de Debian 10 (buster), os pacotes que dependam de fuse3 podem ser mantidos durante as atualizações. Correr os passos discutidos na Secção 4.4.5, “Actualizar o sistema” contra o apt de bullseye ou atualizado manualmente irá resolver a situação.

5.1.13. Ficheiro de opções de GnuPG

A partir da versão 2.2.27-1, a configuração por utilizador do conjunto GnuPG foi completamente movida para ~/gnupg/gpg.conf, e ~/gnupg/options deixou de ser utilizado. Por favor renomeie o ficheiro se necessário, ou mova o seu conteúdo para a nova localização.

5.1.14. Linux habilita user namespaces por predefinição

A partir de Linux 5.10, é permitido, por predefinição, a todos os utilizadores criarem user namespaces. Isto irá permitir a programas tais como navegadores web e gestores de containers criar sandboxes mais restringidas para código não-confiável ou menos-confiável, sem a necessidade de correr como root ou utilizar a ajuda de setuid-root.

A anterior predefinição de Debian era restringir esta funcionalidade a processos que corressem como root, porque expunham mais problemas de segurança no kernel. No entanto, como a implementação desta funcionalidade amadureceu, agora estamos confiantes que o risco de a habilitar é ultrapassado pelos beneficios de segurança que disponibiliza.

Se preferir manter esta funcionalidade restrita, defina o sysctl:

kernel.unprivileged_userns_clone = 0
      

Note que várias funcionalidades de desktop e de containers não irão funcionar com esta restrição, incluindo navegadores web, WebKitGTK, Flatpak e miniaturas de GNOME.

5.1.15. redmine não está em bullseye

O pacote redmine não é disponibilizado em bullseye já que era tarde demais para migrar da antiga versão de rails que está no final do suporte pelos autores (apenas recebe correções para bugs de segurança sérios) para a versão que está em bullseye. Os Maintainers de Ruby Extras seguem o original de perto e irão lançar uma versão através de backports assim que for lançado e tenham pacotes funcionais. Se não puder esperar por isto acontecer antes da atualização, pode utilizar uma VM ou um container a correr buster para isolar esta aplicação específica.

5.1.16. Exim 4.94

Por favor tenha em conta que a versão de Exim em bullseye é uma grande atualização de Exim. Introduz o conceito de dados contaminados (tainted) lidos a partir de fontes não-confiáveis, como e.g. o remetente da mensagem ou o destinatário. Estes dados contaminados (e.g. $local_part ou $domain) não podem ser utilizados, entre outras coisas, como nome de ficheiro, ou de directório ou de comando.

Isto irá estragar configurações que não sejam atualizadas de acordo. Os ficheiros de Debian antidos da configuração de Exim também não irão funcionar sem serem modificados; a nova configuração tem de ser instalada com as modicficações locais acrescentadas.

Exemplos típicos não-funcionais incluem:

  • Entrega em /var/mail/$local_part. Use $local_part_data em combinação com check_local_user.

  • Utilizando

    data = ${lookup{$local_part}lsearch{/some/path/$domain/aliases}}
    

    em vez de

    data = ${lookup{$local_part}lsearch{/some/path/$domain_data/aliases}}
    

    para um ficheiro de alias de domínio virtual.

A estratégia básica para lidar com esta alteração é utilizar o resultado de lookup em processamento adicional em vez do valor (disponibilizado remotamente) original.

Para facilitar a atualização, há uma nova opção de configuração para fazer temporariamente downgrade de erros de taint para avisos, deixando a antiga configuração funcionar com o novo Exim. Para utilizar esta funcionalidade acrescente

.ifdef _OPT_MAIN_ALLOW_INSECURE_TAINTED_DATA
 allow_insecure_tainted_data = yes
.endif

à configuração do Exim (e.g. para /etc/exim4/exim4.conf.localmacros) antes de atualizar e verificar o ficheiro log por avisos de taint. Isto é um subterfúgio temporário o qual já está marcado para remoção após a introdução.

5.1.17. Deteção de dispositivos SCSI é não-determinística

Devido a alterações no kernel Linux, a deteção de dispositivos SCSI já não é determinística. Isto pode ser um problema para instalações que se baseiam na ordem de deteção de discos. Duas alternativas possíveis utilizando links em /dev/disk/by-path ou é sugerida uma regra de udev em esta publicação na mailing list.

5.1.18. rdiff-backup necessita de uma atualização combinada de servidor e cliente

O protocolo de rede com versões 1 e 2 do rdiff-backup são incompatíveis. Isto significa que terá de correr localmente e remotamente a mesma versão (ou 1 ou 2) do rdiff-backup. Já que o buster distribui a versão 1.2.8 e bullseye distribui a versão 2.0.5, atualizar de buster para bullseye apenas o sistema local ou apenas o sistema remoto irá estragar a execução do rdiff-backup entre os dois.

Está disponível no arquivo buster-backports a versão 2.0.5 de rdiff-backup, veja backports. Isto permite aos utilizadores primeiro atualizar apenas o pacote rdiff-backup nos seus sistemas buster, e depois atualizar independentemente os sistemas bullseye na sua conveniência.

5.1.19. Coisas a fazer após a actualização e antes de reiniciar

Quando apt full-upgrade tiver terminado, a actualização formal estará completa. Para o upgrade para bullseye não é necessário tomar ações especiais antes de reiniciar.

5.2. Itens não limitados ao processo de atualização

5.2.1. Limitações no suporte de segurança

Existem alguns pacotes onde Debian não pode prometer disponibilizar backports mínimos para problemas de segurança. Estes estão cobertos nas seguintes subsecções.

[Nota]Nota

O pacote debian-security-support ajuda a seguir o estado do suporte de segurança dos pacotes instalados.

5.2.1.1. Estado da segurança dos navegadores web e seus rendering engines

Debian 11 inclui vários motores de navegador da internet que são afectados por um fluxo regular de vulnerabilidades de segurança. A alta taxa de vulnerabilidades e a falta parcial de suporte dos autores sob a forma de branches por períodos de tempo longos torna muito difícil suportar estes navegadores e motores com backports de correcções de segurança. Além disso, as interdependências entre bibliotecas tornam extremamente difícil actualizar para novos lançamentos de orginais mais recentes. Por isso, os navegadores compilados sob os motores webkit e khtml[6] estão incluidos em bullseye, mas não estão cobertos pelo suporte de segurança. Estes navegadores não devem ser utilizados para aceder a sites que não sejam de confiança. Os motores webkit2gtk e wpewebkit são cobertos pelo suporte de segurança.

Como navegador da web recomendamos Firefox ou Chromium. Estes irão manter-se atualizados ao recompilar os atuais lançamentos ESR para a stable. A mesma estratégia pode ser aplicada para o Thunderbird.

5.2.1.2. OpenJDK 17

Debian bullseye vem com um acesso antecipado à versão OpenJDK 17 (a próxima versão esperada de OpenJDK LTS após OpenJDK 11, para evitar um processo de arranque bastante fastidioso o plano é OpenJDK 17 receber uma atualização em bullseye no lançamento oficial final anunciado para Outubro de 2021, seguido de atualizações de segurança numa base do melhor esforço, os utilizadores não devem esperar ver atualizações em cada atualização de segurança trimestral oficial.

5.2.1.3. Pacotes baseados em Go

A infraestrutura Debian atualmente tem problemas com a recompilação de pacotes de tipos que utilizem sistematicamente static linking. Até ao buster, na prática, isto não era um problema, mas com o crescimento do ecosistema Go isto significa que os pacotes baseados em Go serão cobertos por um suporte de segurança limitado até a infraestrutura ser melhorada para lidar com estes com manutenção sustentável.

Se houverem atualizações às bibliotecas de desenvolvimento de Go, estas apenas poderão vir através dos lançamentos pontuais, os quais poderão ser lentos a chegar.

5.2.2. Aceder à aplicação de definições do GNOME sem o rato

Sem um dispositivo apontador, não há forma directa de alterar as definições na aplicação de definições do GNOME, disponibilizada por gnome-control-center. Como forma de contornar isto, pode navegar desde a barra lateral para o conteúdo principal carregando duas vezes na Seta Direita. Para voltar à barra lateral, pode iniciar uma pesquisa com Ctrl+F, escreva qualquer coisa e depois carregue em Esc para cancelar a pesquisa. Agora pode utilizar a Seta Cima e Seta Baixo para navegar pela barra lateral. Não é possível seleccionar resultados de pesquisa com o teclado.

5.2.3. A opção de arranque rescue não é utilizavel sem uma palavra-passe de root

Com a implementação de sulogin utilizado desde o buster, arrancar com a opção rescue necessita sempre da palavra-passe de root. Se não foi definida nenhuma, isto torna o modo rescue efectivamente inutilizavel. No entanto ainda é possível arrancar utilizando o parâmetro do kernel init=/sbin/sulogin --fore.

Para configurar systemd para fazer o equivalente a isto sempre que arrancar para o modo rescue (também conhecido como single mode: veja systemd(1)), corra sudo systemctl edit rescue.service e criar um ficheiro com apenas:

[Service]
Environment=SYSTEMD_SULOGIN_FORCE=1
      

Também pode (ou em vez disso) ser útil para fazer isto para o unit emergency.service, o qual é iniciado automaticamente no caso de certos erros (veja systemd.special(7)), ou se emergency for acrescentado à linha de comandos do kernel (e.g. se o sistema não poder ser recuperado ao utilizar o modo modo rescue).

Para enquadramento e uma discussão das implicações de segurança veja #802211.

5.3. Obsolescência e depreciação

5.3.1. Pacotes relevantes obsoletos

Os seguintes são uma lista de pacotes conhecidos e relevantes que são obsoletos (para uma descrição, veja a Secção 4.8, “Pacotes obsoletos” ).

A lista de pacotes obsoletos inclui:

  • O pacote lilo foi removido de bullseye. O sucessor de lilo como gestor de arranque é o grub2.

  • A versão 3 do pacote de gestão de listas de correio Mailman é a única versão do Mailman neste lançamento. O Mailman foi dividido em vários componentes; o core está disponível no pacote mailman3 e o conjunto completo pode ser obtido através do metapacote mailman3-full.

    O antigo Mailman versão 2.1 já não está disponível (costuma ver o pacote mailman. Este branch depende de Python 2, que já não está disponível em Debian.

    Para instruções de atualização, por favor veja a documentação de migração do projecto.

  • O kernel Linux já não disponibiliza suporte isdn4linux (i4l). Consequentemente, os pacotes de utilizador relacionados, isdnutils, isdnactivecards, drdsl e ibod foram removidos dos arquivos.

  • As bibliotecas libappindicator descontinuadas já não são disponibilizadas. Como resultado, os pacotes libappindicator1, libappindicator3-1 e libappindicator-dev já não estão disponíveis. Isto é esperado causar erros de dependências a software de terceiros que ainda dependa de libappindicator para disponibilizar suporte para a bandeja do sistema e indicadores.

    Debian utiliza libayatana-appindicator como o sucessor de libappindicator. Para o enquadramento histórico veja este anúncio.

  • Debian já não disponibliza chef. Se utilizar Chef para gestão de configuração, o melhor caminho para o atualização é provavelmente mudar para os pacotes disponibilizados por Chef Inc.

    Para o enquadramento da remoção, veja o pedido de remoção.

  • Python 2 já ultrapassou o seu fim de vida e não irá receber atualizações de segurança. Não é suportado para correr aplicações e os pacotes em que se baseavam, ou mudaram para Python 3 ou foram removidos. No entanto, Debian bullseye ainda inclui a versão 2.7 de Python, assim como um número reduzido de ferramentas de compilação em Python 2, tais como python-setuptools. Estas estão presentes apenas porque são necessárias para alguns processos de compilação de aplicações que ainda não foram convertidos para Python 3.

  • O pacote aufs-dkms não faz parte de bullseye. A maioria dos utilizadores de aufs-dkms deve ser capaz de mudar para overlayfs, que disponibiliza funcionalidades semelhantes com suporte do kernel. No entanto, é possível ter uma instalação de Debian num sistema de ficheiros que não seja compatível com overlayfs, e.g. xfs sem d_type. Os utilizadores de aufs-dkms são aconselhados a migrar de aufs-dkms antes de atualizar para bullseye.

5.3.2. Componentes depreciados para bullseye

Com o próximo lançamento de Debian 12 (nome de código bookworm) serão depreciadas algumas funcionalidades. Os utilizadores irão necessitar de migrar para outras alternativas para prevenir problemas ao actualizar para 12.

Isto inclui as seguintes funcionalidades:

  • As justificações históricas para esta disposição do sistema de ficheiros, com os directórios /bin, /sbin, e /lib separados dos seus equivalentes em /usr já não se aplicam atualmente; veja o resumo em Freedesktop.org. Debian bullseye irá ser o último lançamento de Debian que suporta o layout non-merged-usr; para sistemas com o layout antigo que tenham sido atualizados sem serem reinstalados, existe o pacote usrmerge para fazer a conversão, caso seja desejado.

  • Bullseye é o último lançamento de Debian a incluir apt-key. Em vez disso, as chaves devem ser geridas ao largar ficheiros em /etc/apt/trusted.gpg, em formato binário conforme criadas por gpg --export com uma extensão .gpg, ou codificado em ASCII com uma extensão .asc.

    Está planeado um substituto para apt-key list para investigar o chaveiro manualmente, mas o trabalho ainda não iniciou.

  • Os backends de base de dados, de slapd, slapd-bdb(5), slapd-hdb(5) e slapd-shell(5) estão a ser retirados e não serão incluidos em Debian 12. As bases de dados LDAP que utilizem backends bdb ou hdb devem ser migrados para o backend slapd-mdb(5).

    Além disso, os backends slapd-perl(5) e slapd-sql(5) estão descontinuados e poderão ser removidos num lançamento futuro.

    O Projecto OpenLDAP não suporta backends retirados ou descontinuados. O suporte a estes backends em Debian 11 é numa base de melhor esforço.

5.3.3. Hardware já não suportado

Para um número de dispositivos baseados em armel que eram suportados em buster, já não é viável para Debian compilar o kernel Linux necessário devido a limitações de hardware. Os dispositivos não suportados são:

  • QNAP TS-109/TS-209, TS-119/TS-219 and TS-409

  • HP Media Vault mv2120

Os utilizadores destas plataformas que mesmo assim desejem atualizar de bullseye devem manter ativas as fontes APT de buster. Antes de atualizarem devem acrescentar um ficheiro preferences contendo:

Package: linux-image-marvell
Pin: release n=buster
Pin-Priority: 900
	

O suporte de segurança para esta configuração irá durar apenas até ao fim de vida do buster.



[6] Estes motores são distribuidos num número de pacotes fonte diferentes e a preocupação aplica-se a todos os pacotes que os distribuem. A preocupação também se estende a motores de web rendering que não explicitamente mencionados aqui, com a excepção do novo webkit2gtk.