Capítulo 5. Problemas que debe tener en cuenta para stretch

Tabla de contenidos

5.1. Actualizar elementos específicos para Stretch
5.1.1. Ya no está soportado el montaje tardío de /usr
5.1.2. Paquetes obsoletos notables
5.1.3. Componentes obsoletos de Stretch
5.1.4. Cosas a hacer después de la actualización y antes de reiniciar
5.1.5. Los ejecutables se compilan por omisión como ejecutables independientes de posición (PIE)
5.1.6. Los requisitos mínimos para Intel de 32-bits es ahora i686 (con una excepción menor)
5.2. Limitaciones en el soporte de seguridad
5.2.1. Estado de seguridad en los navegadores web
5.2.2. Sin soporte de seguridad para el ecosistema construído alrededor de libv8 y Node.js
5.3. Package specific issues
5.3.1. Older ciphers and SSH1 protocol disabled in OpenSSH by default
5.3.2. Cambios en APT potencialmente incompatibles con versiones anteriores
5.3.3. El servidor Xorg ya no tiene setuid root por omisión
5.3.4. Upstart eliminado
5.3.5. The debhelper tool now generates dbgsym packages by default
5.3.6. Cambios relativos a OpenSSL

Algunas veces los cambios tienen efectos colaterales que no podemos evitar, o aparecen fallos en otro lugar. A continuación se documentan los problemas que conocemos. Puede leer también la fe de erratas, la documentación de los paquetes relevantes, los informes de fallos, y otra información mencionada en Sección 6.1, “Para leer más”.

5.1. Actualizar elementos específicos para Stretch

Esta sección cubre los elementos relacionados con la actualización de Jessie a Stretch

5.1.1. Ya no está soportado el montaje tardío de /usr

[Nota]Nota

Esta sección sólo aplica a aquellos sistemas que utilizan un núcleo a medida, y donde /usr está en un punto de montaje distinto de /. Aquellos sistemas que utilicen los paquetes del núcleo ofrecidos en Debian no están afectados por este problema.

No se proporciona soporte al montaje de /usr utilizando sólo las herramientas en /. Esta configuración sólo funcionaba para configuraciones específicas del sistema en el pasado y ahora deja de estar soportado explícitamente.

Esto significa que para stretch todos los sistemas donde /usr es una partición separata tienen que utilizar un generador de «initramfs» que monte /usr. Todos los generadores de Stretch lo hacen.

5.1.2. Paquetes obsoletos notables

A continuación se muestra una lista de los paquetes conocidos y notables que ahora están obsoletos (consulte Sección 4.8, “Paquetes obsoletos” para obtener una descripción).

La lista de paquetes obsoletos incluye:

  • La mayoría de los paquetes «-dbg» se han eliminado del archivo principal. Se han reemplazado por paquetes «-dbgsym» que están disponibles en el archivo «debian-bug». Por favor, vea Sección 2.2.4, “Nuevo archivo para símbolos de depuración”

  • El gestor de contraseñas fpm2 ya no está siendo mantenido por el desarrollador original. Se recomienda que utilice otros gestores de contraseñas como pass, keepassx, o keepass2. Asegúrese de extraer sus contraseñas de «fpm2» antes de eliminar el paquete.

5.1.3. Componentes obsoletos de Stretch

Con la publicación de Debian 10 (nombre en clave Buster) algunas funcionalidades estarán obsoletas. Los usuarios deben migrar a otras alternativas para evitar problemas al actualizar a 10.

Esto incluye las siguientes funcionalidades:

  • POR HACER: Añadir elementos, si procede.

5.1.4. Cosas a hacer después de la actualización y antes de reiniciar

Cuando haya terminado apt-get dist-upgrade la actualización formal se habrá completado, pero hay ciertas cosas que deberá hacer antes del siguiente reinicio del sistema.


      añadir lista de elementos aquí
      
    

5.1.5. Los ejecutables se compilan por omisión como ejecutables independientes de posición (PIE)

[Nota]Nota

Esta sección será fundamentalmente de interés para desarrolladores y administradores de sistemas. Es poco probable que los usuarios del entorno de escritorio estén afectados por estos cambios.

El compilador de GNU GCC 6 que se ofrece en Debian stretch compila, por omisión, todos los ejecutables como independientes de posición. Esto mitiga un conjunto entero de vulnerabilidades, pero también introduce algunos cambios que es importante tener en cuenta.

  • La herramienta file (entre otras) clasifica ahora este tipo de binarios como «objetos compartidos» en lugar de como «ejecutables». Si tiene filtros que se basan en objetos (como por ejemplo, filtros de correo basura) puede ser necesario actualizarlos.

  • Las librerías estáticas que se compilen dentro de un ejecutable también tienen que compilarse como código independiente de posición. El siguiente mensaje de error es un síntoma de este problema:

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

  • Historicamente, los ejecutables independientes de posición se han asociado a problemas de rendimientos en algún hardware. Un caso notable es la architectura i386 de Debian (máquinas Intel de 32-bits). Aunque GCC 5 y GCC 6 han mejorado notablemente el rendimiento de los ejecutables independientes de posición en Intel de 32-bits, esta optimización puede no ser aplicable a todas las arquitecturas. Considere como posibilidad la evaluación del rendimiento de su código si va a ejecutarlo en máquinas con arquitecturas con un número limitado de registros.

5.1.6. Los requisitos mínimos para Intel de 32-bits es ahora i686 (con una excepción menor)

The 32-bit PC support (known as the Debian architecture "i386") now no longer covers a plain i586 processor. The new baseline is the i686, although some i586 processors (e.g. the "AMD Geode") will remain supported.

The supported i586 processors have all the features of an i686 processor except the "long NOP" (NOPL) instruction. The following shell script may be a useful indicator (assuming only one processor is installed in the machine):

if grep -q '^flags.*\bfpu\b.*\btsc\b.*\bcx8\b.*\bcmov\b' /proc/cpuinfo; then
	echo "OK (assuming all CPUs are of the same type)"
else
	echo "NOT OK: Missing one or more of the required CPU extensions"
fi

If your machine is not compatible with this requirement, it is recommended that you stay with Jessie for the reminder of its support cycle. For more information, please refer to the mail thread Defaulting to i686 for the Debian i386 architecture.

5.2. Limitaciones en el soporte de seguridad

Hay algunos paquetes para los que Debian no puede comprometerse a proporcionar versiones actualizadas resolviendo problemas de seguridad. La información de estos paquetes se cubre en las siguientes subsecciones.

Tenga en cuenta que el paquete debian-security-support ayuda a supervisar el estado de soporte de seguridad de los paquetes instalados en el sistema.

5.2.1. Estado de seguridad en los navegadores web

Debian 9 incluye varios motores de navegadores web que están afectados por un flujo constante de vulnerabilidades de seguridad. La alta tasa de vulnerabilidades y la falta de un soporte por parte de los desarrolladores a versiones anteriores hace muy difícil dar soporte a estos navegadores con arreglos de seguridad preparados para las versiones distribuidas. Además, las interdependencias entre bibliotecas hacen imposible actualizar a las nuevas versiones distribuidas. Por tanto, los navegadores basados en los motores de webkit, qtwebkit y khtml están incluidos en Stretch, pero no están cubiertos por el soporte completo de seguridad. No deberían utilizarse estos navegadores para acceder a sitios no confiables.

Para el uso general de navegación web recomendamos el uso de Firefox o Chromium.

Chromium, aunque basado en el código fuente de Webkit, es un paquete menor. Este paquete se mantendrá actualizado compilando las versiones actuales de Chromium para la versión «estable» de Debian. Firefox y Icedove también se mantendrán actualizadas recompilando la última versión de ESR para la versión «estable».

5.2.2. Sin soporte de seguridad para el ecosistema construído alrededor de libv8 y Node.js

La plataforma Node.js está construida sobre el paquete libv8-3.14, que ha tenido múltiples problemas de seguridad en el pasado. Actualmente no hay suficientes voluntarios dentro del proyecto o del equipo de seguridad interesados y dispuestos a dedicar el elevado tiempo necesario para resolver los problemas de seguridad que puedan aparecer en el futuro.

Esto significa que, desgraciadamente, que los paquetes libv8-3.14, nodejs, y el ecosistema de paquetes node-* no deberían utilizarse junto con contenido no confiable, como pueda ser datos no sanizados obtenidos de Internet.

Adicionalmente, no se va a proporcionar actualizaciones de seguridad para estos paquetes durante el ciclo de vida de Stretch.

5.3. Package specific issues

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. Older ciphers and SSH1 protocol disabled in OpenSSH by default

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.

Consulte la documentación de OpenSSH para más información.

5.3.2. Cambios en APT potencialmente incompatibles con versiones anteriores

Esta sección cubre algunos cambios a APT incompatibles con versiones anteriores que pueden afectar a su sistema.

5.3.2.1. APT now fetches files with an unprivileged user ("_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 fallback to fetching things as root with a warning. However, it may fail to detect some exotic setups (e.g. uid-specific firewall rules).

If you experience issues with this feature, please change to the "_apt" user and check that it:

  • has read access to files in /var/lib/apt/lists and /var/cache/apt/archives.

  • has read access to the APT trust store (/etc/apt/trusted.gpg and /etc/apt/trusted.gpg.d/)

  • can resolve DNS names and download files. Example methods for testing:

    # 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"
    

    For DNS issues, please check that /etc/resolv.conf is readable.

5.3.2.2. Nuevos requisitos para los repositorios APT

[Nota]Nota

This section only applies if you have (or intend to use) third-party repositories enabled or if you maintain an APT repository.

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

  • The InRelease file must be available

  • All metadata must include at least SHA256 checksums of all items. This includes the gpg signature of the InRelease file.

  • Las firmas del archivo InRelease deben hacerse con una clave de al menos 2048 bits

If you rely on a third-party repository that cannot comply with the above, please urge them to upgrade their repository. More information about the InRelease file can be found on the Debian Wiki.

5.3.3. El servidor Xorg ya no tiene setuid root por omisión

[Nota]Nota

This change only applies if your X Display Manager supports running X as rootless (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.

This reduces the risk of privilege escalation via bugs in the X server. However, it has some requirements for working:

  • Necesita los paquetes logind y libpam-systemd.

  • It needs a kernel video driver (as Xorg cannot talk directly to the hardware anymore).

  • It needs to run on the virtual console it was started from.

When run as a regular user, the Xorg log will be available from ~/.local/share/xorg/.

If these requirements are not possible, please install the xserver-xorg-legacy package to reinstate the setuid Xorg.

5.3.4. Upstart eliminado

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 could be removed from packages.

Valore la posibilidad de cambiar a un sistema de init soportado, como «systemd» u «openrc».

5.3.5. The debhelper tool now generates dbgsym packages by default

[Nota]Nota

This section mainly intended for developers or organizations that build their own debian packages.

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. At the time of writing, the aptly does not support dbgsym packages.

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. Cambios relativos a 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.