Capítulo 5. Problemas a estar atento na stretch

Índice

5.1. Itens específicos de actualizações para Stretch
5.1.1. Já não é suportado a montagem tardia de /usr
5.1.2. O acesso FTP a mirrors Debian será removido
5.1.3. Pacotes relevantes obsoletos
5.1.4. Componentes depreciados para stretch
5.1.5. Coisas a fazer após a actualização e antes de reiniciar
5.1.6. Os executáveis são agora compilados, por omissão, como executáveis de posição independente (PIE).
5.1.7. A maioria dos pacotes de compatibilidade LSB foram removidos
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. Alterações ao ambiente gráfico Xorg
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
5.3.7. As alterações em Perl podem afectar software de terceiros
5.3.8. Incompatibilidade PL/Perl
5.3.9. O pacote net-tools será depreciado em favor do iproute2
5.3.10. The _netdev mount option is recommended when using AoE (ATA over ethernet) devices
5.3.11. Harmeless Unespaced ... in regex is deprecated, ... warnings during upgrade

Por vezes, as alterações introduzidas num novo lançamento têm efeitos secundários que não podemos evitar razoavelmente, ou porão 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 em Secção 6.1, “Leitura adicional”.

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

This section covers items related to the upgrade from jessie to stretch.

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

[Nota]Nota

Esta secção apenas é aplicável a sistemas que utilizem um kernel personalizado, onde /usr/ esteja num ponto de montagem diferente de /. Se utilizar os pacotes de kernel disponibilizados por Debian, não será afectado por isto.

Montar /usr utilizando apenas ferramentas que se encontram em / já não é suportado. Isto funcionou apenas para algumas configurações especificas no passado, e agora é explicitamente não suportadas.

Isto significa que para stretch todos os sistemas onde /usr esteja numa partição separada necessitam de utilizar um gerador de initramfs que monte /usr. Todos os geradores de initramfs em stretch fazem-no.

5.1.2. O acesso FTP a mirrors Debian será removido

Os mirrors alojados de Debian irão deixar de disponibilizar acesso FTP. Se tem utilizado o protocolo ftp: no seu sources.list, então por favor migre para http:. Por favor considere o seguinte exemplo para a migração:

deb http://deb.debian.org/debian          stretch         main
deb http://deb.debian.org/debian-security stretch/updates main

# tor variant (requires apt-transport-tor)
# deb  tor+http://vwakviie2ienjx6t.onion/debian          stretch            main
# deb  tor+http://sgvtcaew4bxjd7ln.onion/debian-security stretch/updates    main

Os exemplos acima não incluem as non-free e contrib. Por favor lembre-se de incluir estes se necessitar desses componentes activos.

Para mais informação, por favor refira-se ao anúncio Shutting down public FTP services.

5.1.3. 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:

5.1.4. Componentes depreciados para stretch

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

Isto inclui as seguintes funcionalidades:

  • TODO: Acrescentar itens, se houver algum

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

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


      acrescentar aqui a lista de itens
      
    

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

Por predefiniçã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.

Infelizmente, o kernel Linux disponibilizado em Debian 8 (até à 8.7) tem um problema que pode fazer com que alguns programas compilados como executáveis independentes de posição possam crashar com um problema sem descrição tal como segmentation fault. Este problema foi resolvido na versão de Linux disponibilizada na 8.8 (versão 3.16.43 ou posterior) e o kernel disponibilizado em Debian 9 (versão 4.9 ou posterior).

Recomendamos que actualize o kernel para uma versão corrigida e depois reinicie antes de iniciar a actualização para stretch. Se estiver a correr o kernel de Debian 8.8 ou mais recente, não está afectado por este problema.

Se durante a actualização estiver a correr uma versão afectada do kernel, recomendamos fortemente que reinicie para utilizar o kernel do stretch logo após a actualização para evitar encontrar este problema.

5.1.6.1. Mudanças no comportamento de PIE para administradores de sistemas e desenvolvedores

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

O acima também leva a algumas alterações que vale a pena estar a par.

  • A ferramenta file (entre outras) irá classificar tais binários como shared object em vez de executable. Se tiver filtros baseados em ficheiros binários então estes podem necessitar de serem actualizados (e.g. filtros de spam).

  • As bibliotecas estáticas que sejam compiladas em executáveis agora também necessitam de ser compiladas como código independente de posição. A seguinte mensagem de erro do linker é um simtoma disto:

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

    Note that even though the error message says -fPIC, it is sufficient to recompile with -fPIE (which is the default in the GCC 6 packages that are part of stretch).

  • 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 optimization may not be applicable to all architectures. Please consider evaluating the performance of your code if you are targeting machine architectures with a very limited number of registers.

5.1.7. A maioria dos pacotes de compatibilidade LSB foram removidos

Devido a falta de interesse e teste, Debian removeu a vasta maioria dos pacotes de compatibilidade Linux Standard Base (LSB).

Debian irá continuar a disponibilizar uns poucos utilitários LSB chave utilizados internamente e externamente, tais como lsb-release e as funções sysvinit init em lsb-base. Além disso, Debian continua firmemente a suportar o Filesystem Hierarchy Standard (FHS) version 2.3 com alterações menores descritas no Debian Policy Manual.

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

Debian 9 includes several browser engines which are affected by a steady stream of security vulnerabilities. The high rate of vulnerabilities and partial lack of upstream support in the form of long term branches make it very difficult to support these browsers with backported security fixes. Additionally, library interdependencies make it impossible to update to newer upstream releases. Therefore, browsers built upon the webkit, qtwebkit and khtml engines are included in stretch, but not covered by security support. These browsers should not be used against untrusted websites.

Para um navegador web recomendamos o Firefox ou Chromium.

Chromium - apesar de construído sobre o código do Webkit - é um pacote leaf, o qual irá ser mantido actualizado ao recompilar os actuais lançamentos do Chromium para stable. O Firefox e Thunderbird 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

In most cases, packages should upgrade smoothly between jessie and stretch. There are a small number of cases where some intervention may be required, either before or during the upgrade; these are detailed below on a per-package basis.

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

The OpenSSH 7 release has disabled some older ciphers and the SSH1 protocol by default. Please be careful when upgrading machines where you only have SSH access.

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 como um utilizador não privilegiado (_apt)

APT will now attempt to discard all root privileges before fetching files from mirrors. APT can detect some common cases where this will fail and fall back to fetching things as root with a warning. However, it may fail to detect some exotic setups (e.g. UID-specific firewall rules).

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:

    # From the dnsutils package (if using tor, please check with tor-resolve instead).
    $ 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. Novo motor de APT pinning

O APT 1.1 introduziu um novo motor de pinning que agora coincide com a descrição na página do manual.

The old engine assigned one pin priority per package; the new one assigns pin priorities per version. It then picks the version with the highest pin that is not a downgrade or that has a pin > 1000.

This changes the effect of some pins, especially negative ones. Previously, pinning a version to -1 effectively prevented the package from being installed (the package pin was -1); it now only prevents the version of this package from being installed.

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

To improve download stability and ensure security of the downloaded content, APT now requires the following from an APT repository:

  • The InRelease file must be available.

  • Todos os metadados têm de incluir, pelo menos, informação de controlo 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. Alterações ao ambiente gráfico Xorg

This section describes some of the major changes related to the Xorg graphical environment. It is mostly relevant to desktop systems or other systems providing a graphical (GUI) environment to users.

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

[Nota]Nota

This change only applies if your X Display Manager supports running X without root privileges (or if you start X manually via startx). Currently the only known display manager supporting this is gdm. Other display managers simply start X as root regardless of this change.

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 atingidos, por favor instale o pacote xserver-xorg-legacy para reinstalar o Xorg com setuid.

5.3.3.2. Os Desktops irão migrar para o driver Xorg libinput

[Nota]Nota

This section is only relevant if you have tweaked or need to change the default Xorg input configuration.

In jessie, the default input driver for Xorg is the evdev driver. In stretch, the default has changed to libinput. If you have Xorg configuration that relies on the evdev driver, you will either have to convert it to the libinput driver or reconfigure your system to use the evdev driver.

The following is an example configuration for libinput to enable the Emulate3Buttons feature.

Section "InputClass"
        Identifier "mouse"
        MatchIsPointer "on"
        Driver "libinput"
        Option "MiddleEmulation" "on"
EndSection

Insert it into /etc/X11/xorg.conf.d/41-middle-emulation.conf, reboot (or restart your Xserver) and it should now be enabled.

The evdev driver is still available in the xserver-xorg-input-evdev package.

5.3.4. Upstart foi removido

Due to the lack of upstream maintainers, the Upstart init system has been removed from stretch. If your system relies on this package, you should note that it will not be updated during the lifetime of Debian 9, and starting from Debian 10 (buster), Upstart jobs may be removed from packages.

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.

The debhelper tool suite will now generate dbgsym packages by default for ELF binaries. If you develop and package binaries, please check that your tooling supports these extra auto-generated packages.

If you use reprepro, you want to upgrade it to at least version 4.17.0. For aptly, you will need at least version 1.0.0, which is unfortunately not available in Debian stretch.

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

A aplicação openssl espera argumentos de opções antes dos argumentos que não opções. Por exemplo, isto já não funciona:

openssl dsaparam 2048 -out file

enquanto que isto ainda funciona:

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.

5.3.7. As alterações em Perl podem afectar software de terceiros

[Nota]Nota

Esta secção aplica-se a código mantido fora de Debian - local, de terceiros ou scripts e módulos antigos de Perl.

  • Alguns módulos foram removidos do core Perl e são agora distribuídos em pacotes separados. Exemplos notáveis são CGI, disponível no pacote libcgi-pm-perl e Module::Build, disponível no pacote libmodule-build-perl.

  • The current working directory (.) has been removed from the default list of include directories, @INC. This may affect usage of require(), do(), etc., where the arguments are files in the current directory.

    Todos os programas e módulos perl distribuídos por Debian foram corrigidos para dar resposta a quaisquer incompatibilidades causadas pelo acima; por favor registe bugs se este não for o caso. Como a mudança agora feita em perl 5.26.0, o software de terceiros também terão de ser corrigidas. Informação para os developers sobre como corrigir este problema é disponibilizada nas perl 5.26 release notes (veja a secção SECURITY).

    Se necessário pode restablecer temporariamente . globalmente em @INC ao comentar a linha em /etc/perl/sitecustomize.pl, mas só deve fazer isto percebendo os potenciais riscos. Esta alternativa irá ser removida em Debian 10. Também pode definir a variável de ambiente PERL_USE_UNSAFE_INC num contexto específico que terá o mesmo efeito.

  • A lista completa de alterações em Perl desde a versão em Debian 8 está disponível em perl522delta e perl524delta.

5.3.8. Incompatibilidade PL/Perl

The PostgreSQL PL/Perl procedural language package in jessie is incompatible with the Perl version in stretch. The postgresql-plperl-9.4 package will be removed during the update, rendering server-side Perl procedures dysfunctional. Upgrading to PostgreSQL 9.6 should be unaffected; the procedures will work in the new PostgreSQL cluster if the postgresql-plperl-9.6 package is installed. If unsure, take a backup of your PostgreSQL 9.4 clusters before upgrading to stretch.

5.3.9. O pacote net-tools será depreciado em favor do iproute2

The net-tools package is no longer part of new installations by default, since its priority has been lowered from important to optional. Users are instead advised to use the modern iproute2 toolset (which has been part of new installs for several releases already). If you still prefer to continue using the net-tools programs you can simply install it via

apt install net-tools

[Atenção]Atenção

Please keep in mind that net-tools may be uninstalled during the upgrade if it was only installed to satisfy a dependency. If you rely on net-tools, please remember to mark it as a manual installed package before the upgrade via:

apt-mark manual net-tools

Aqui está um sumário de comandos net-tools, em conjunto com o seu equivalente iproute2:

comandos do antigo net-toolscomandos do substituto iproute2
arpip n (vizinho ip)
ifconfigip a (ip addr), ip link, ip -s (ip -stats)
iptunnelip tunnel
nameifip link
netstatss, ip route (for netstat -r), ip -s link (for netstat -i), ip maddr (for netstat -g)
routeip r (ip route)

5.3.10. The _netdev mount option is recommended when using AoE (ATA over ethernet) devices

[Nota]Nota

This only applies to systems that have ATA over ethernet (AoE) devices mounted. If the system does not mount any network shares, you can safely skip this section.

Due to a cleanup in the handling of network deconfiguration, AoE devices in use are no longer handled as expected during shutdown, possibly resulting in hangs and/or data loss. To mitigate that situation, it is suggested to mount such devices using the _netdev mount option. That option is available when using swap over AoE as well.

5.3.11. Harmeless Unespaced ... in regex is deprecated, ... warnings during upgrade

During the upgrade, you may see some warning like:

Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/^(.*?)(\\)?\${ <-- HERE ([^{}]+)}(.*)$/ at /usr/share/perl5/Debconf/Question.pm line 72.
Unescaped left brace in regex is deprecated, passed through in regex; marked by <-- HERE in m/\${ ≶-- HERE ([^}]+)}/ at /usr/share/perl5/Debconf/Config.pm line 30.

These are harmless and happens if perl-base is upgraded before the debconf package.