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. El acceso FTP a las réplicas hospedadas por Debian será eliminado
5.1.3. Paquetes obsoletos notables
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. Se han eliminado la mayoría de los paquetes de compatibilidad LSB
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 construido alrededor de libv8 y Node.js
5.3. Problemas específicos de paquetes
5.3.1. Por omisión los cifrados antiguos y el protocolo SSH1 están deshabilitados en OpenSSH
5.3.2. Cambios en APT potencialmente incompatibles con versiones anteriores
5.3.3. Los escritorios migrarán al controlador Xorg libinput
5.3.4. Upstart eliminado
5.3.5. La herramienta debhelper genera ahora paquetes dbgsym por omisión
5.3.6. Cambios relativos a OpenSSL
5.3.7. Cambios en Perl que pueden romper programas de terceros
5.3.8. Incompatibilidad PostgreSQL PL/Perl
5.3.9. El paquete net-tools está obsoleto y ha sido reemplazado por iproute2
5.3.10. Se recomienda la opción de montaje _netdev cuando se utilizan dispositivos AoE («ATA over ethernet»)
5.3.11. Mensajes inofensivos Unescaped ... in regex is deprecated, ... durante la actualización
5.3.12. Migración de políticas SELinux almacenadas
5.3.13. iSCSI Enterprise Target no longer supported

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 solo 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 solo las herramientas en /. Esta configuración solo 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 separada tienen que utilizar un generador de «initramfs» que monte /usr. Todos los generadores de stretch lo hacen.

5.1.2. El acceso FTP a las réplicas hospedadas por Debian será eliminado

Las réplicas hospedadas por Debian dejarán de ofrecer acceso FTP. Si ha estado utilizando el protocolo ftp:// en su sources.list deberá migrar las entradas a http:. Tenga en cuenta el siguiente ejemplo cuando haga la migración:

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

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

El ejemplo anterior no incluye las áreas non-free and contrib. Debe incluir éstas si su sistema necesita tener esos componentes habilitados.

PAra más información puede consultar el anuncio: Apagando los servicios públicos FTP.

5.1.3. 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.8, “Nuevo archivo para símbolos de depuración”

  • Los gestores de contraseñas fpm2 y kedpm ya no están siendo mantenidos por los desarrolladores originales. Se recomienda que utilice otros gestores de contraseñas como pass, keepassx, o keepass2. Asegúrese de extraer sus contraseñas de fpm2 o de kedpm antes de eliminar estos paquetes.

  • El paquete net-tools va a dejar de utilizarse y se reemplazará por iproute2. Para más infomación consulte Sección 5.3.9, “El paquete net-tools está obsoleto y ha sido reemplazado por iproute2 o el Manual de referencia de Debian.

  • Se han eliminado las herramientas de monitorización nagios3 de stretch. El paquete icinga es el reemplazo más próximo. Lee los archivos de configuración de una ruta distinta a la de Nagios, pero es compatible en cualquier otro aspecto.

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. No hay que hacer ninguna acción especial antes del siguiente reinicio del sistema tras la actualización a stretch.

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

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 ofrece una mitigación para una clase entera de vulnerabilidades.

Desgraciadamente, el núcleo de Linux que se ofrece en Debian 8 (hasta la versión 8.7) tenía un problema que provocaba que algunos programas compilados como ejecutables independientes de posición se interrumpierran con un error poco descriptivo como fallo de segmentación. Este fallo se ha solucionado en la versión del núcleo de Linux que se proporciona en la versión 8.8 (versión 3.16.43 o superior) y en el núcleo proporcionado en Debian 9 (versión 4.9 o superior).

We recommend that you upgrade your kernel to a fixed version and then reboot before starting the upgrade to stretch. If you are running the kernel from Debian 8.8 or newer, you are not affected by this issue.

Si vd. está ejecutando una versión afectada del núcleo durante la actualización, le recomendamos encarecidamente que realice un reinicio del núcleo de stretch justo después de la actualización para evitar encontrarse con este problema.

5.1.5.1. Cambios de comportamiento de PIE para administradores de sistema y desarrolladores

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

Lo anterior también lleva a algunos cambios que es importante conocer.

  • 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
    

    Tenga en cuenta que aunque el mensaje de error diga -fPIC, es suficiente con recompilarlo con -fPIE (que es la opción por omisión en los paquetes GCC 6 que son parte de stretch).

  • 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. Se han eliminado la mayoría de los paquetes de compatibilidad LSB

Debido a una falta de interés y de capacidad de pruebas, Debian ha eliminado la gran mayoría de los paquetes de compatibilidad de Linux Standard Base (LSB).

Debian continuará proporcionando un conjunto seleccionado de herramientas LSB clave que se utilizan tanto internamente como externamente, como la herramienta lsb-release y las funciones de inicialización de sysvinit en lsb-base. Más aún, Debian sigue defendiendo firmemente el Estándar de Jerarquía de Ficheros («Filesystem Hierarchy Standard», FHS) versión 2.3 con las alteraciones menores descritas en el Manual de Política de Debian.

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 construido 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, 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 saneados obtenidos de Internet.

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

5.3. Problemas específicos de paquetes

La actualización de los paquetes entre jessie y stretch debería ser esencial en la mayoría de los casos. Existe un pequeño número de casos en los que es necesaria una intervención manual, bien antes o bien después de la actualización. Estos casos se detallan a continuación para cada paquete.

5.3.1. Por omisión los cifrados antiguos y el protocolo SSH1 están deshabilitados en OpenSSH

La versión 7 de OpenSSH ha deshabilitado algunos algoritmos de cifrado antiguos así como el protocolo SSH1 por omisión. Tenga esto en cuenta al actualizar sistemas en los que solo tiene acceso SSH.

Moreover, the default of the "UseDNS" configuration option has changed from yes to no. This may cause users who use the "from=" functionality in authorized_keys to limit ssh access by host to be locked out, which is especially troublesome if upgrading remotely.

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 obitiene ahora los archivos con un usuario no privilegiado (_apt)

APT intentará ahora descartar todos los privilegios de administrador antes de descargar ficheros de cualquier réplica. APT puede detectar algunos casos habituales en los que esto no funcionará y seguirá actualizando ficheros como administrador con un aviso. Sin embargo, puede no ser capaz de detectar algunas configuraciones poco habituales (p.ej. el uso de reglas de cortafuegos específicas por identificador de usuario).

Si detecta problemas con esta nueva funcionalidad, modifique el usuario _apt y compruebe que:

  • puede leer los ficheros en /var/lib/apt/lists y /var/cache/apt/archives.

  • tiene acceso para leer el almacén de confianza de APT (/etc/apt/trusted.gpg y /etc/apt/trusted.gpg.d/)

  • puede hacer resolución DNS de nombres y descargar ficheros. Unos ejemplos para probar ésto son los siguientes:

    # Del paquete dnsutils (si utiliza tor, utilice en su lugar tor-resolve).
    $ nslookup debian.org > /dev/null || echo "No se puede resolver debian.org"
    $ wget -q https://debian.org/ -O- > /dev/null || echo "No se puede descargar la página de índice de  debian.org"
    

    Si se encuentra con problemas en la resolución de nombres DNS, compruebe que puede leer /etc/resolv.conf.

5.3.2.2. Nuevo mecanismo de fijación de APT

APT 1.1 introduce un nuevo mecanismo de fijación que ahora coincide con la descripción en la página de manual.

El mecanismo antiguo asignaba una prioridad de fijación por paquete. El nuevo mecanismo asigna prioridades de fijación por versión. A continuación escoje la versión con el valor de fijación mayor que no es una versión anterior o que tiene un valor > 1000.

Esto cambia el efecto de algunas fijaciones, especialmente las que tienen valor negativo. Anteriormente, si se fijaba una versión a -1 esto impedía de forma efectiva que el paquete se instalara (el valor fijado del paquete era -1). Ahora sólo impide que la versión de ese paquete se instale.

5.3.2.3. Nuevos requisitos para los repositorios APT

[Nota]Nota

Esta sección solo le aplica si tiene (o va a tener) activo la descarga desde repositorios de terceros o si mantiene un repositorio de APT.

APT requiere ahora lo siguiente de cualquier repositorio de paquetes APT, con el fin de mejorar la estabilidad de las descargas y poder garantizar la seguridad del contenido descargado:

  • El fichero InRelease debe estar disponible.

  • Todos los metadatos deben incluir al menos una suma de comprobación SHA256 para todos los elementos. Esto incluye también la firma GPG en el archivo «InRelease».

  • Las firmas del archivo InRelease deben hacerse con una clave de tamaño 2048 bits o mayor.

Si vd. depende de repositorios de terceros que no cumplen con las condiciones descritas anteriormente, debe ponerse en contacto con ellos para que actualicen su repositorio. Encontrará más información sobre el archivo «InRelease» en el Wiki de Debian.

5.3.3. Los escritorios migrarán al controlador Xorg libinput

[Nota]Nota

Esta sección sólo es relevante si ha modificado o tiene que modificar la configuración de entrada de Xorg por omisión.

En jessie, el controlador de entrada por omisión para Xorg es el controlador evdev. En stretch, el controlador por omisión ha cambiado a libinput. Si tiene una configuración de Xorg que depende del controlador evdev, tendrá que o bien convertirlo al controlador libinput o reconfigurar su sistema para utilizar el controlador evdev.

El siguiente ejemplo muestra una configuración para libinput para utilizar la funcionalidad de Emulate3Buttons.

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

Introduzca esta configuración en /etc/X11/xorg.conf.d/41-middle-emulation.conf, reinicie el sistema (o reinicie su servidor X) y esta configuración debería activarse.

El controlador evdev sigue estando disponible en el paquete xserver-xorg-input-evdev.

5.3.4. Upstart eliminado

Se ha eliminado el sistema de arranque «Upstart» de stretch debido a la falta de mantenimiento por los desarrolladores originales. Si su sistema depende de este paquete tiene que tener en cuenta que no se actualizará durante el ciclo de vida de Debian 9. A partir de la versión de Debian 10 (buster), las tareas de arranque de «Upstart» podrían eliminarse de los paquetes.

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

5.3.5. La herramienta debhelper genera ahora paquetes dbgsym por omisión

[Nota]Nota

Esta sección está destinada para desarrolladores u organizaciones que construyen sus propios paquetes debian.

El conjunto de herramientas debhelper ahora generan paquetes dbgsym por omisión para binarios ELF. Compruebe que sus herramientas tienen soporte para estos paquetes extra generados automáticamente si desarrolla o empaqueta binarios.

Tendrá que actualizar a la versión 4.17.0 el paquete reprepro si lo utiliza. Para aptly necesitará al menos la versión 1.0.0 que, desgraciadamente, no está disponible en Debian stretch.

Si sus herramientas no pueden gestionar este cambio, puede deshabilitar esta funcionalidad de «debhelper» añadiendo noautodbgsym a la variable DEB_BUILD_OPTIONS en su servicio de construcción de paquetes. Puede consultar la página de manual de dh_strip para más información.

5.3.6. Cambios relativos a OpenSSL

La aplicación openssl ahora espera los argumentos con opciones antes de los argumentos sin opciones. Por ejemplo, la siguiente ejecución no funcionará a partir de la actualización:

openssl dsaparam 2048 -out file

mientras que sí funcionará lo siguiente:

openssl dsaparam -out file 2048

La orden openssl enc ha modificado la suma de comprobación (utilizada para crear la clave de la frase de contraseña) y ahora utiliza SHA256 en lugar de MD5. Puede especificar el algoritmo que desea con la opción -md si tiene que descifrar archivos antiguos con la nueva versión de OpenSSL (o al contrario).

Los algorimos de cifrado 3DES y RC4 ya no están disponibles para comunicaciones TLS/SSL. Los servidores que utilicen OpenSSL no ofrecerán estos algoritmos y los clientes no podrán conectarse a aquellos servidores que ofrezcan solo éstos. Esto significa que OpenSSL y Windows XP no comparten ningún algoritmo de cifrado.

El paquete libssl-dev proporciona los ficheros de cabecera para compilar contra la versión 1.1.0 de OpenSSL. La interfaz de programación (API) ha cambiado sustancialmente y es posible que algunos programas no compilen. Puede consultar un resumen de los cambios. También puede utilizar libssl1.0-dev si necesita las cabeceras de la versión 1.0.2 de OpenSSL.

5.3.7. Cambios en Perl que pueden romper programas de terceros

[Nota]Nota

Esta sección aplica a los programas que se mantienen fuera de Debian. Lo que incluye programas y módulos de Perl locales, de terceros o antiguos.

  • Algunos módulos se han eliminado de Perl y se distribuyen ahora en paquetes separados. Algunos ejemplos importantes son CGI, que está disponible en el paquete libcgi-pm-perl, y Module::Build, que está disponible en el paquete libmodule-build-perl.

  • Se ha eliminado el directorio de trabajo actual (.) de la lista de directorios donde se buscan ficheros a incluir por omisión (variable @INC). Este cambio puede afectar al uso de require(), do(), etc., cuando los argumentos son ficheros que están en el directorio de trabajo actual.

    Todos los programas y módulos de Perl distribuídos con Debian deberían estar arreglados para resolver las incompatibilidades causadas por lo anterior. Por favor, envíe informes de erratas si no es el caso. Como el cambio se ha aplicado ya en Perl 5.26.0, los programas de terceros deberían también empezar a arreglarse. Se ofrece información a los desarrolladores de cómo resolver este problema en las notas de publicación de Perl 5.26 (consulte la sección de SEGURIDAD).

    Si tiene que introducir de nuevo temporalmente, y de forma global, el valor . en @INC puede comentar la línea correspondiente en /etc/perl/sitecustomize.pl. Sólo debería hacer ésto si entiende los riesgos potenciales que introduce. Esta alternativa se eliminará en Debian 10. También puede fijar el valor de la variable de entorno PERL_USE_UNSAFE_INC en un contexto específico, lo que tendrá el mismo efecto.

  • Puede consultar la lista completa de los cambios en Perl desde la versión de Debian 8 en perl522delta y perl524delta.

5.3.8. Incompatibilidad PostgreSQL PL/Perl

El paquete del lenguaje procedimental PostgresSQL PL/Perl en jessie es incompatible con la versión de Perl en stretch. El paquete postgresql-plperl-9.4 se eliminará durante la actualización, haciendo que los procedimientos en el lado del servidor de Perl dejen de funcionar. La actualización a PostgreSQL 9.6 no debería estar afectado. Los procedimientos funcionarán en el nuevo clúster PostgreSQL si se instala el paquete postgresql-plperl-9.6. Si no está seguro, haga una copia de seguridad de sus clústers PostgreSQL 9.4 antes de actualizar a stretch.

5.3.9. El paquete net-tools está obsoleto y ha sido reemplazado por iproute2

El paquete net-tools ya no es parte de las nuevas instalaciones por omisión, porque su prioridad se ha rebajado de importante a opcional. Se recomienda a los usuarios utilizar en su lugar el conjunto de herramientas más moderno iproute2 (que ha sido parte de las nuevas instalaciones desde hace ya varias publicaciones). Si quiere seguir utilizando los programas de net-tools puede instalarlo simplemente via

apt install net-tools

[Aviso]Aviso

Tenga en cuenta que el paquete net-tools puede llegar a desinstalarse durante la actualización si sólo se instaló para satisfacer una dependencia. Si depende de net-tools, debe recordar marcarlo como instalado manualmente antes de realizar la actualización haciendo lo siguiente:

apt-mark manual net-tools

A continuación se muestra un resumen de las órdenes net-tools, junto con la orden equivalente con iproute2:

órdenes antiguas net-toolsórdenes de iproute2 que las reemplazan
arpip n (ip neighbor)
ifconfigip a (ip addr), ip link, ip -s (ip -stats)
iptunnelip tunnel
nameifip link
netstatss, ip route (para netstat -r), ip -s link (para netstat -i), ip maddr (para netstat -g)
routeip r (ip route)

5.3.10. Se recomienda la opción de montaje _netdev cuando se utilizan dispositivos AoE («ATA over ethernet»)

[Nota]Nota

Esta sección sólo aplica a aquellos sistemas que tienen dispositivos «ATA over ethernet» (AoE) montados. Si su sistema no monta ninguna unidad de red puede omitir esta sección.

Debido a una limpieza en la gestión de la desconfiguración de red, los dispositivos AoE en uso no se gestionan como se podría esperar durante un apagado del sistema. Esto podría provocar bloqueos y/o pérdida de información. Para mitigar esta situación, se sugiere que monte estos dispositivos con la opción de montaje _netdev. Esta opción también está disponible cuando se monta la zona de intercambio también con AoE.

5.3.11. Mensajes inofensivos Unescaped ... in regex is deprecated, ... durante la actualización

Durante la actualización puede llegar a ver algunos avisos como:

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.

Estos son inocuos y se producen si se actualiza perl-base antes del paquete debconf.

5.3.12. Migración de políticas SELinux almacenadas

[Nota]Nota

Esta sección solo aplica a los sistemas que utilizan SELinux, que no está activo por omisión.

El almacen de las políticas de SELinux se ha movido en stretch de /etc/selinux/<policy_name> a /var/lib/selinux/<policy_name>. Además, el formato utilizado en el almacen ha cambiado.

Se migrarán de forma automática las políticas que se ofrecen en Debian (de p.ej. el paquete selinux-policy-default package). Pero las políticas específicas del sistema deberán migrarse manualmente.

El paquete semanage-utils ofrece el programa /usr/lib/selinux/semanage_migrate_store para realizar esta transición.

5.3.13. iSCSI Enterprise Target no longer supported

The iSCSI Enterprise Target (IET), packaged in the iscsitarget package in previous releases, is no longer in Debian, as it will not work with recent kernel versions, and the project has seen no development activity in recent years.

Users of IET are encouraged to switch to the LIO stack, which is fully supported in Debian stretch. The package targetcli-fb provides the configuration utility for the LIO iSCSI target.

As the LIO stack was developed independently of the IET, the configuration has to be migrated manually.