Capítulo 5. Problemas a estar atento na stretch

Índice

5.1. Tópicos de atualização específicos de Stretch
5.1.1. Já não é suportado a montagem tardia de /usr
5.1.2. Pacotes relevantes obsoletos
5.1.3. Componentes depreciados para Stretch
5.1.4. Coisas a fazer após a actualização e antes de reiniciar
5.1.5. Os executáveis são agora compilados, por omissão, como executáveis de posição independente (PIE).
5.1.6. 32-bit MIPS now requires an R2 processor
5.2. Limitações no suporte de segurança
5.2.1. Estado da segurança dos navegadores web
5.2.2. Falta de suporte de segurança para o ecossistema à roda de libv8 e Node.js
5.3. Problemas com pacotes específicos
5.3.1. Cifras antigas e o protocolo SSH1 estão desabilitados mo OpenSSH por defeito
5.3.2. Possíveis alterações não retro-compatíveis a APT
5.3.3. O servidor Xorg já não tem, por defeito, setuid root
5.3.4. Upstart foi removido
5.3.5. A ferramenta debhelper agora gera, por defeito, pacotes dbgsym
5.3.6. Alterações relacionadas com OpenSSL

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

5.1. Tópicos de atualização específicos de Stretch

Esta seção cobre tópicos relacionados com a atualização de Jessie para Stretch

5.1.1. Já não é suportado a montagem tardia de /usr

[Nota]Nota

This section only applies to systems using a custom kernel, where /usr is on a separate mount point from /. If you use the kernel packages provided by Debian, you are unaffected by this issue.

Mounting of /usr using only tools found in / is no longer supported. This has only worked for a few specific configurations in the past, and now they are explicitly unsupported.

This means that for stretch all systems where /usr is a separate partition need to use an initramfs generator that will mount /usr. All initramfs generators in Stretch do so.

5.1.2. Pacotes relevantes obsoletos

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

A lista de pacotes obsoletos inclui:

  • Most "-dbg" packages have been removed from the main archive. They have been replaced by "-dbgsym" packages that are available from the "debian-debug" archive. Please see Secção 2.2.4, “Um novo arquivo para símbolos de debug”

  • The password manager fpm2 is no longer maintained upstream. Please use another password manager like pass, keepassx, or keepass2. Make sure that you extract your passwords from fpm2 before removing the package.

5.1.3. Componentes depreciados para Stretch

Com o lançamento de Debian 10 (nome de código Buster) serão depreciadas algumas funcionalidades. Os utilizadores terão de migrar para outras alternativas para prevenir problemas ao atualizar para 10.

Isto inclui as seguintes funcionalidades:

  • TODO: Add items if any

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

Quando apt-get dist-upgrade tiver terminado, a atualização formal terá terminado, mas existem algumas outras coisas que devem ser tratadas antes da próxima inicialização.


      add list of items here
      
    

5.1.5. Os executáveis são agora compilados, por omissão, como executáveis de posição independente (PIE).

[Nota]Nota

Esta secção destina-se principalmente a desenvolvedores ou administradores de sistema. É improvável que os utilizadores de Ambientes de Trabalho sejam afectados por esta secção.

Por omissão, o compilador GNU GCC 6 disponibilizado por Debian stretch irá compilar todos os executáveis como independentes de posição. Isto fornece mitigação para uma classe inteira de vulnerabilidades, mas também leva a algumas alterações que vale a pena estar ciente.

  • The file tool (among other) will classify such binaries as "shared object" rather than an "executable". If you have filters based on binary files, these may need to be updated (e.g. spamfilters).

  • Static libraries being compiled into an executable now also need to be compiled as position independent code. The following error message from the linker is a symptom of this:

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

  • Historically, position independent executables have been associated with performance loss on some hardware. Notably the Debian architecture i386 (32-bit Intel machines). While GCC 5 and GCC 6 have greatly improved performance for position independent executables on 32-bit Intel, this optimisation may not be applicable to all architectures. Please consider evaluating the performance of your code if you are targetting machine architectures with very limited number of registers.

5.1.6. 32-bit MIPS now requires an R2 processor

The 32-bit MIPS support (both big and little endian) now requires a processor supporting MIPS32 Release 2 of the MIPS instruction set. Notably the Loongson-2E/2F and systems based on them (including the Yeeloong laptop) are no longer supported.

The following shell script can be used to indicate if your machine supports R2 (assuming only one type of processor is present). Note that Loongson-3 processors are supported even though they only claim to support MIPS32 Release 1.

if grep -E -q '^isa.*\bmips(32|64)r2\b' /proc/cpuinfo; then
	echo "OK (R2 supported)"
elif grep -q '^cpu model.*\bICT Loongson-3\b' /proc/cpuinfo; then
	echo "OK (Loongson 3)"
else
	echo "NOT OK: R2 not supported"
fi

5.2. 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.

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

5.2.1. Estado da segurança dos navegadores web

O debian 9 inclui diversos motores de navegador de 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 criadores sob a forma de lançamentos com largos períodos de suporte, torna muito difícil suportar estes navegadores através da adaptação de correcções de segurança (backports). Além disto, as interdependências entre bibliotecas tornam impossível a actualização para versões originais mais recentes. Como tal, os navegadores criados sob os motores webkit, qtwebkit e khtml estão incluídos no Stretch, 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.

Para um navegador web recomendamos o Firefox ou Chromium.

Chromium - apesar de construído sob o código do Webkit - é um pacote leaf, o qual irá ser mantido actualizado ao recompilar o actual lançamento do Chromium para stable. O Firefox e Icedove também irão ser mantidos actualizados ao recompilar os actuais lançamentos ESR para stable.

5.2.2. Falta de suporte de segurança para o ecossistema à roda de libv8 e Node.js

A plataforma Node.js é construída sob libv8-3.14, a qual experimenta um grande volume de problemas de segurança, mas actualmente não existem voluntários dentro do projecto ou da equipa de segurança suficientemente interessados e disponíveis para utilizar uma grande quantidade de tempo necessário para resolver esses problemas.

Infelizmente, isto significa que libv8-3.14, nodejs, e o ecossistema de pacotes node-* associados actualmente não devem ser utilizados com conteúdo não-confiável, tal como dados por tratar da Internet.

Além disso, estes pacotes não irão receber quaisquer actualizações de segurança durante o tempo de vida do lançamento Stretch.

5.3. Problemas com pacotes específicos

Na maioria dos casos, a atualização dos pacotes deve ser suave entre Jessie e Stretch. Existe um pequeno número de casos onde pode ser necessária alguma intervenção, quer antes ou depois da atualização; Estes estão detalhados abaixo por pacote.

5.3.1. Cifras antigas e o protocolo SSH1 estão desabilitados mo OpenSSH por defeito

O lançamento de OpenSSH 7 desabilita, por defeito, algumas cifras mais antigas e o protocolo SSH1. Por favor tenha cuidado ao actualizar as máquinas, se tiver apenas acesso por SSH.

Para mais informação por favor veja a documentação do OpenSSH.

5.3.2. Possíveis alterações não retro-compatíveis a APT

Esta secção cobre algumas alterações incompatíveis ao APT que possam afectar o seu sistema.

5.3.2.1. O APT agora obtém ficheiros com um utilizador não privilegiado ("_apt")

O APT agora irá tentar descartar todos os privilégios de root antes de obter ficheiros a partir dos mirrors. O APT pode detectar alguns casos onde isto irá falhar e como recurso irá obter os ficheiros como root mas com um aviso. No entanto, isto poderá falhar nalgumas configurações mais exóticas (e.g. regras de firewall com uid específico).

Se experimentar problemas com esta funcionalidade, por favor mude para o utilizador "_apt" e verifique que:

  • tem acesso a ficheiros em /var/lib/apt/lists e /var/cache/apt/archives.

  • tem acesso de leitura à trust store do APT (/etc/apt/trusted.gpg e /etc/apt/trusted.gpg.d/)

  • consegue resolver nomes de DNS e obter ficheiros. Métodos de exemplo para testar:

    # Do pacote dnsutils (se utilizar tor, por favor verifique antes tor-resolve).
    $ nslookup debian.org >/dev/null || echo "Cannot resolve debian.org"
    $ wget -q https://debian.org/ -O- > /dev/null || echo "Cannot download index page of debian.org"
    

    Para problemas com DNS, por favor verifique que /etc/resolv.conf é legível.

5.3.2.2. Novos requisitos para repositórios APT

[Nota]Nota

Esta secção apenas se aplica se tiver activos (ou quiser utilizar) repositórios de terceiros ou se mantiver um repositório APT.

Para melhorar a estabilidade do download e assegurar a segurança do conteúdo a que foi feito download, o APT agora necessita do seguinte a partir de um repositório APT:

  • O ficheiro InRelease tem de estar disponível

  • Todos os metadados têm de incluir controlos SHA256 de todos os itens. Isto inclui a assinatura gpg do ficheiro InRelease.

  • As assinaturas do ficheiro InRelease devem ser feitas com uma chave de tamanho 2048 bits ou superior.

Se depender de algum repositório de terceiros que não possa cumprir com o acima, por favor incite-os a actualizar o repositório. Está disponível mais informação acerca do ficheiro InRelease, que pode ser encontrada no Debian Wiki.

5.3.3. O servidor Xorg já não tem, por defeito, setuid root

[Nota]Nota

Esta alteração é aplicável apenas se o X Display Manager suportar X sem root (ou se iniciar o X manualmente com startx). O único display manager actualmente conhecido que o suporta é o gdm. Os outros display managers simplesmente iniciam o X como root independentemente desta alteração.

Isto reduz o risco de escalamento de privilégios através de bugs no servidor X. No entanto, tem alguns requisitos para funcionar:

  • Necessita de logind e de libpam-systemd.

  • Necessita de um driver de video do kernel (pois o Xorg já não consegue comunicar com o hardware).

  • Necessita correr na consola virtual em que foi iniciado.

Quando corre como um utilizador normal, o log do Xorg estará disponível em ~/.local/share/xorg/.

Se estes requisitos não forem possíveis, por favor instale o pacote xserver-xorg-legacy para reinstalar o Xorg xom setuid.

5.3.4. Upstart foi removido

Devido à falta de mantenedores do software original, o sistema de init Upstart foi removido de Stretch. Se o seu sistema depender deste pacote, deve notar que este não irá ser actualizado durante o tempo de vida de Debian 9, e que a partir de Debian 10 (Buster), os jobs do upstart podem ser removidos dos pacotes.

Por favor considere mudar para um sistema init suportado, como o systemd ou openrc.

5.3.5. A ferramenta debhelper agora gera, por defeito, pacotes dbgsym

[Nota]Nota

Esta secção destina-se principalmente a desenvolvedores ou organizações que compilem os seus próprios pacotes debian.

O conjunto de ferramentas debhelper agora irá gerar pacotes "dbgsym" por defeito para binários ELF. Se desenvolver e empacotar binários, por favor verifique que as suas ferramentas suportam estes pacotes extra que são automaticamente gerados.

Se utilizar reprepro, irar querer actualizar pelo menos para a versão 4.17.0. Na altura em que isto é escrito, o aptly não suporta pacotes dbgsym.

Should your tooling be unable to cope with these gracefully, you can ask debhelper to disable this feature by adding "noautodbgsym" in the DEB_BUILD_OPTIONS variable of your build service. Please see the dh_strip manpage for more information

5.3.6. Alterações relacionadas com OpenSSL

The openssl application expects option arguments before non-option arguments. For example, this does not work anymore:

openssl dsaparam 2048 -out file

while this still does:

openssl dsaparam -out file 2048

The openssl enc command changed the default digest (used to create the key from passphrase) from MD5 to SHA256. The digest can be specified with the -md option in case old files need to be decrypted with newer openssl (or the other way around).

The 3DES and RC4 ciphers are no longer available for TLS/SSL communication. Servers linked against openssl can't offer them and clients can't connect to servers which offer only those. This means that openssl and Windows XP share no common cipher.

The package libssl-dev provides header files to compile against openssl 1.1.0. The API changed a lot and it is possible that the software won't compile anymore. There is an overview of the changes. If you can't update your software, there is also libssl1.0-dev which provides headers against openssl 1.0.2.