Capitolo 5. Problemi di cui essere al corrente per stretch

Indice

5.1. Aspetti specifici dell'aggiornamento a Stretch
5.1.1. Late mounting of /usr is no longer supported
5.1.2. FTP access to Debian hosted mirrors will be removed
5.1.3. Pacchetti obsoleti degni di nota
5.1.4. Componenti deprecati per Stretch
5.1.5. Cose da fare dopo l'aggiornamento prima di riavviare
5.1.6. Executables are now compiled as position independent executables (PIE) by default
5.2. Limitazione nel supporto per la sicurezza
5.2.1. Stato della sicurezza dei browser web
5.2.2. Mancanza di supporto di sicurezza per l'ecosistema di libv8 e Node.js
5.3. Problemi relativi a specifici pacchetti
5.3.1. Protocollo SSH1 e cifrari più vecchi disabilitati in OpenSSH in modo predefinito
5.3.2. Modifiche potenziamente incompatibili all'indietro in APT
5.3.3. Il server Xorg non è più in modo predefinito setuid root
5.3.4. Upstart rimosso
5.3.5. The debhelper tool now generates dbgsym packages by default
5.3.6. OpenSSL related changes
5.3.7. Perl changes that may break third-party software
5.3.8. iproute2 will replace net-tools

A volte i cambiamenti introdotti da un nuovo rilascio comportano effetti collaterali che non si possono ragionevolmente evitare o che espongono a errori da altre parti. In questa sezione sono documentati i problemi noti. Si leggano anche le errata corrige, la documentazione dei pacchetti interessati, le segnalazioni di errori e altre informazioni riportate in Sezione 6.1, «Ulteriori letture».

5.1. Aspetti specifici dell'aggiornamento a Stretch

Questa sezione tratta le voci relative all'aggiornamento da Jessie a Stretch

5.1.1. Late mounting of /usr is no longer supported

[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. FTP access to Debian hosted mirrors will be removed

Debian hosted mirrors will stop providing FTP access. If you have been using the ftp protocol in your sources.list, please migrate to http. Please consider the following example for migrating:

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

The above examples do not include non-free and contrib. Please remember to include these if you require those components enabled.

For more information, please refer to the annoucement: Shutting down public FTP services.

5.1.3. Pacchetti obsoleti degni di nota

Quello che segue è un elenco di pacchetti obsoleti noti e degni di nota (vedere Sezione 4.8, «Pacchetti obsoleti» per una descrizione).

L'elenco dei pacchetti obsoleti comprende:

5.1.4. Componenti deprecati per Stretch

Con il prossimo rilascio di Debian 10 (nome in codice Buster) alcune funzionalità diventeranno deprecate. Gli utenti dovranno migrare ad altre alternative per evitare problemi nell'aggiornamento a 10.

Ciò include le seguenti funzionalità:

  • TODO: Add items if any

5.1.5. Cose da fare dopo l'aggiornamento prima di riavviare

Quando apt-get dist-upgrade ha terminato, l'aggiornamento è «formalmente» completo, ma ci sono alcune altre cose di cui ci si deve occupare prima del successivo avvio.


      add list of items here
      
    

5.1.6. Executables are now compiled as position independent executables (PIE) by default

[Nota]Nota

This section mainly intended for developers or system administrators. Desktop users are unlikely to be affected by this section.

By default, the GNU GCC 6 compiler provided by Debian stretch will compile all executables as position independent. This provides a mitigation for an entire class of vulnerabilities, but it also leads to some changes that are worth being aware of.

  • 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.2. Limitazione nel supporto per la sicurezza

Ci sono alcuni pacchetti per i quali Debian non può garantire di fornire i backport minimi per ragioni di sicurezza. Questi verranno trattati nelle sottosezioni che seguono.

Notare che il pacchetto debian-security-support aiuta a tenere traccia dello stato del supporto di sicurezza per i pacchetti installati.

5.2.1. Stato della sicurezza dei browser web

Debian 9 contiene diversi motori per browser che sono affetti da varie vulnerabilità di sicurezza. L'alto tasso di vulnerabilità e la parziale mancanza di supporto a lungo termine da parte degli autori originali complica l'attività di supporto di questi browser tramite l'applicazione delle correzioni di sicurezza alle versioni precedenti. Inoltre la dipendenza reciproca delle librerie rende impossibile aggiornare a una nuova versione. Perciò, in Stretch sono presenti browser basati sui motori webkit, qtwebkit e khtml, ma non sono coperti dal supporto di sicurezza. Non si dovrebbe usare questi browser con siti web non fidati.

Per un browser web di uso generico si raccomanda Firefox oppure Chromium.

Chromium, pur essendo costruito sul codice Webkit, è un pacchetto foglia che verrà mantenuto aggiornato ricompilando i rilasci correnti di Chromium per stable. Firefox e Icedove verranno anch'essi mantenuti aggiornati ricompilando i rilasci ESR correnti per stable.

5.2.2. Mancanza di supporto di sicurezza per l'ecosistema di libv8 e Node.js

La piattaforma Node.js è costruita sulla base di libv8-3.14 che ha un grande volume di problemi di sicurezza ma al momento non ci sono volontari all'interno del progetto o nel Team di sicurezza sufficientemente interessati e con la volontà di investire la grande quantità di tempo richiesto per limitare questi problemi in arrivo.

Sfortunatamente ciò significa che libv8-3.14, nodejs e l'ecosistema di pacchetti node-* associati attualmente non dovrebbe essere usato con contenuti non fidati, come dati non ripuliti presi da Internet.

In aggiunta questi pacchetti non riceveranno alcun aggiornamento di sicurezza durante la vita del rilascio Stretch.

5.3. Problemi relativi a specifici pacchetti

Nella maggior parte dei casi i pacchetti dovrebbero aggiornarsi senza problemi da Jessie a Stretch. C'è un numero limitato di casi dove può essere necessario un qualche intervento, prima o durante l'aggiornamento; questi casi sono descritti in dettaglio di seguito, pacchetto per pacchetto.

5.3.1. Protocollo SSH1 e cifrari più vecchi disabilitati in OpenSSH in modo predefinito

Il rilascio di OpenSSH 7 ha disabilitato in modo predefinito alcuni vecchi cifrari e il protocollo SSH1. Fare attenzione quando si aggiornano macchine a cui si ha accesso solo via SSH.

Fare riferimento alla documentazione di OpenSSH per maggiori informazioni.

5.3.2. Modifiche potenziamente incompatibili all'indietro in APT

Questa sezione copre alcune delle modifiche incompatibili ad APT che potrebbero influenzare il sistema.

5.3.2.1. APT ora recupera i file con un utente non privilegiato («_apt»)

APT ora cerca di liberarsi di tutti i privilegi di root prima di recuperare i file dai mirror. APT può rilevare alcuni casi d'uso comuni dove ciò porterebbe a un fallimento e ripiega sul recuperare il materiale come root dando un avvertimento. Tuttavia può non riuscire a rilevare alcune configurazioni particolari (es. regole di firewall specifiche per UID).

Se si incontrano problemi con questa funzionalità, diventare l'utente «_apt» e controllare che:

  • abbia accesso in lettura ai file in /var/lib/apt/lists e /var/cache/apt/archives;

  • abbia accesso in lettura all'archiviazione della fiducia di APT (/etc/apt/trusted.gpg e /etc/apt/trusted.gpg.d/);

  • possa risolvere nomi DNS e scaricare file. Esempi di metodi per testarlo sono:

    # Dal pacchetto dnsutils (se si usa tor, controllare invece con tor-resolve).
    $ nslookup debian.org >/dev/null || echo "Impossibile risolvere debian.org"
    $ wget -q https://debian.org/ -O- > /dev/null || echo "Impossibile scaricare la pagina indice di debian.org"
    

    Per problemi con DNS controllare che /etc/resolv.conf sia leggibile.

5.3.2.2. New APT pinning engine

APT 1.1 introduced a new pinning engine that now matches the description in the manual page.

The old engine assigned one pin priority per package, the new 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. Nuovi requisiti per repository 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.

Per migliorare la stabilità degli scaricamenti e garantire la sicurezza dei contenuti scaricati, APT ora ha per i repository APT i seguenti requisiti:

  • Il file InRelease deve essere disponibile.

  • Tutti i metadati devono includere almeno i codici di controllo SHA256 di tutti gli elementi. Ciò include la firma gpg del file InRelease.

  • Le firme del file InRelease devono essere fatte con una chiave di dimensione uguale o maggiore di 2048 bit.

Se ci si affida ad un repository di terze parti che non può conformarsi con i requisiti suddetti, invitare i responsabili ad aggiornare il proprio repository. Ulteriori informazioni sul file InRelease possono essere trovate sul Debian Wiki.

5.3.3. Il server Xorg non è più in modo predefinito setuid root

[Nota]Nota

Questa modifica si applica solo se il proprio display manager di X gestisce l'esecuzione di X senza privilegi di root (o se si avvia X manualmente tramite startx). Attualmente l'unico display manager conosciuto che fa questo è gdm. Gli altri display manager semplicemente avviano X come root, indipendentemente da questo cambiamento.

Questo riduce il rischio di una scalata di privilegi grazie a bug nel server X. Tuttavia, per funzionare, ha alcuni requisiti:

  • Richiede logind e libpam-systemd.

  • Richiede un driver video nel kernel (dato che Xorg non può più comunicare direttamente con l'hardware).

  • Richiede di essere in esecuzione sulla console virtuale da cui è stato avviato.

Quando eseguito come utente normale, il log di Xorg sarà disponibile in ~/.local/share/xorg/.

Se non è possibile soddisfare questi requisiti, installare il pacchetto xserver-xorg-legacy per ripristinare Xorg con setuid.

5.3.4. Upstart rimosso

A causa della mancanza di manutenzione da parte degli autori a monte, il sistema init Upstart è stato rimosso da Stretch. Se il proprio sistema fa affidamento su questo pacchetto, tenere a mente che non verrà aggiornato durante la vita di Debian 9 e che, a partire da Debian 10 (Buster), i compiti upstart potrebbero essere rimossi dai pacchetti.

Considerare il passaggio a un sistema init supportato, come systemd o 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. 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. OpenSSL related changes

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.

5.3.7. Perl changes that may break third-party software

[Nota]Nota

This section applies to code maintained outside Debian 9 - local, third-party or legacy Perl scripts and modules.

  • Some modules have been removed from Perl core and are now shipped in separate packages. Notable examples are CGI, available in the libcgi-pm-perl package, and Module::Build, available in the libmodule-build-perl package.

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

  • The full list of changes in Perl since the version in Debian 8 is available in perl522delta and perl524delta.

5.3.8. iproute2 will replace net-tools

The net-tools package's priority has been changed from important to optional, while iproute2 has been upgraded to important. New installations will have iproute2 installed by default, while systems upgraded from Jessie should consider migrating from net-tools to iproute2.

Here is a summary of the net-tools commands, together with their iproute2 equivalent:

legacy net-tools commandsiproute2 replacement commands
arpip n (ip neighbor)
ifconfigip a (ip addr), ip link, ip -s (ip -stats)
iptunnelip tunnel
iwconfigiw
nameifip link, ifrename
netstatss, ip route (for netstat-r), ip -s link (for netstat -i), ip maddr (for netstat-g)
routeip r (ip route)