Cap. 5. Probleme în buster de care ar trebui să știți

Cuprins

5.1. Elemente specifice actualizării la buster
5.1.1. Opțiunea de montare hidepid pentru procfs nu este suportată
5.1.2. ypbind nu pornește cu -no-dbus
5.1.3. NIS server does not answer NIS client requests by default
5.1.4. Eșecuri sshd la autentificare
5.1.5. Daemoni nu pornesc sau sistemul aparent se blochează în timpul pornirii
5.1.6. Migrarea de la numele de interfață de rețea tradiționale
5.1.7. Configurarea modulelor pentru „bonding” și interfețe „dummy”
5.1.8. Ridicarea versiunii implicite și a nivelului de securitate implicit OpenSSL
5.1.9. Anumite aplicații nu funcționează în GNOME pe Wayland
5.1.10. Pachete notabile învechite
5.1.11. Componente depășite din buster
5.1.12. Operațiuni de executat după actualizare și înainte de repornire.
5.1.13. Pachetele SysV init nu mai sunt necesare
5.2. Limitări în suportul de securitate
5.2.1. Starea securității navigatoarelor web și a motoarelor de randare
5.2.2. Pachete bazate pe Go
5.3. Probleme specifice anumitor pachete
5.3.1. Utilizarea variabilelor de mediu pentru su este modificată
5.3.2. Bazele de date PostgreSQL existente trebuie reindexate
5.3.3. mutt și neomutt
5.3.4. Accesarea setărilor GNOME fără mouse
5.3.5. gnome-disk-utility fails to change LUKS password causing permanent data loss (buster 10.0 only)
5.3.6. evolution-ews a fost scos iar conturile care folosesc Exchange, Office365 sau serverul Outlook vor fi șterse
5.3.7. Programul de instalare Calamares lasă cheile de criptare accesibile
5.3.8. S3QL URL changes for Amazon S3 buckets
5.3.9. Split in configuration for logrotate
5.3.10. The rescue boot option is unusable without a root password

Uneori, modificările introduse într-o versiune nouă au efecte secundare pe care nu le putem evita în mod rezonabil sau schimbările expun probleme în altă parte. Aceasta secțiune documentează problemele cunoscute. Vă rugăm să citiți și erata, documentația pachetelor relevante, rapoartele de probleme precum și alte informații menționate în Secțiune 6.1, „Referințe suplimentare”.

5.1. Elemente specifice actualizării la buster

Această secțiune tratează elemente legate de actualizarea de la stretch la buster.

5.1.1. Opțiunea de montare hidepid pentru procfs nu este suportată

Folosirea opțiunii de montare hidepid pentru /proc cauzează probleme cu versiunea curentă de systemd și este considerată o configurație nesuportată de către dezvoltatorii systemd. Utilizatorii care au modificat /etc/fstab pentru a activa această opțiune sunt sfătuiți să o dezactiveze înainte de actualizare, pentru a permite funcționarea sesiunilor login în buster. (O posibilă cale de a o re-activa este indicată în pagina de wiki Hardening.)

5.1.2. ypbind nu pornește cu -no-dbus

Opțiunile implicite ale lui ypbind s-au schimbat. În cazul în care ați modificat acest fișier valoarea implicită veche nu va fi actualizată și trebuie să vă asigurați că opțiunea YPBINDARGS= din /etc/default/nis nu include -no-dbus. Cu opțiunea -no-dbus prezentă ypbind nu va porni și este posibil să nu vă puteți autentifica. Pentru mai multe informații vedeți raportul de problemă #906436.

5.1.3. NIS server does not answer NIS client requests by default

The default behavior of rpcbind has changed to no longer answer remote calls from NIS clients. On NIS servers you will need to add the (Debian-specific) -r flag to the command line options of rpcbind, otherwise users will not be able to log into your NIS client machines. For more info see bug #935492.

5.1.4. Eșecuri sshd la autentificare

Semantica opțiunilor PubkeyAcceptedKeyTypes și HostbasedAcceptedKeyTypes pentru sshd s-a schimbat. Acestea specifică acum algoritmii de semnături acceptați pentru mecanismele lor de autentificare respective, pe când înainte specificau tipurile de chei acceptate. Această distincție contează când sunt folosiți algoritmii de semnături RSA/SHA2 rsa-sha2-256, rsa-sha2-512 și echivalentele lor pe bază de certificate. Configurațiile care specifică aceste opțiuni dar omit aceste nume de algoritmi pot cauza eșecuri neașteptate la autentificare.

Nu este necesară nicio măsură pentru configurațiile care acceptă valorile implicite pentru aceste opțiuni.

5.1.5. Daemoni nu pornesc sau sistemul aparent se blochează în timpul pornirii

Deoarece systemd necesită entropie în timpul inițializării sistemului, iar nucleul tratează asemenea solicitări ca „blocante” atunci când entropia disponibilă este scăzută, sistemul poate să rămână „agățat” pentru minute sau chiar ore, până când subsistemul pentru date aleatorii este inițializat suficient (random: crng init done). Pentru sisteme amd64 care suportă instrucțiunea RDRAND această problemă este evitată de nucleul Debian prin folosirea implicită a acestei instrucțiuni (CONFIG_RANDOM_TRUST_CPU).

Sisteme non-amd64 și anumite tipuri de mașini virtuale trebuie să furnizeze o sursă diferită de entropie pentru a continua inițializarea rapidă. Pentru Programul de instalare a fost ales haveged și ar putea fi o opțiune valabilă dacă pe sistem nu este disponibilă entropie hardware. Pentru mașini virtuale se poate transmite entropie din gazdă către mașinile virtuale prin intermediul virtio_rng.

Dacă citiți această secțiune după actualizarea unui sistem la buster de la distanță atunci trimiteți ping-uri către sistem prin rețea deoarece acestea adaugă entropie la rezerva de date aleatorii și sistemul va fi din nou accesibil prin ssh.

Consultați wiki-ul și rezumatul lui DLange pentru opțiuni.

5.1.6. Migrarea de la numele de interfață de rețea tradiționale

Dacă sistemul a fost actualizat de la versiunea precedentă și încă utilizează nume de interfață de rețea pe stil vechi, care au fost declarate învechite în stretch (cum ar fi eth0 sau wlan0), țineți cont că mecanismul de definire a numelor în /etc/udev/rules.d/70-persistent-net.rules nu mai este suportat oficial de udev în buster. Pentru a evita pericolul de a pierde conexiunea la rețea după actualizarea la buster, se recomandă să migrați în avans la noua schemă de denumire (în general denumiri de genul enp0s1 sau wlp2s5, care conțin numerele de magistrală PCI și slot). Aveți grijă să actualizați numele de interfețe specificate în configurații pentru firewall, ifupdown, și altele.

The alternative is to switch to a supported mechanism for enforcing the old naming scheme, such as a systemd .link file (see systemd.link(5)). The net.ifnames=0 kernel commandline option might also work for systems with only one network interface (of a given type).

Pentru a afla numele de tip nou care vor fi folosite mai întâi aflați numele actuale ale interfețelor relevante.

$ echo /sys/class/net/[ew]*
    

Pentru fiecare dintre acestea verificați dacă sunt utilizate în fișiere de configurare și ce denumire ar fi alocată de udev:

$ sudo rgrep -w eth0 /etc
$ udevadm test-builtin net_id /sys/class/net/eth0 2>/dev/null
    

This should give enough information to devise a migration plan. (If the udevadm output includes an onboard or slot name, that takes priority; MAC-based names are normally treated as a fallback, but may be needed for USB network hardware.)

După ce ați efectuat tranziția dezactivați 70-persistent-net.rules prin redenumire sau dezactivarea liniilor individuale. În mașini virtuale va fi necesar să îndepărtați fișierele /etc/systemd/network/99-default.link și (dacă folosiți dispozitive de rețea virtio) /etc/systemd/network/50-virtio-kernel-names.link. După aceea refaceți initrd-ul:

$ sudo update-initramfs -u
    

și reporniți. Sistemul ar trebui să aibă acum nume de interfețe de rețea pe stil nou. Ajustați fișierele de configurare rămase și testați sistemul.

See the wiki, upstream documentation, and the udev README.Debian for further information.

5.1.7. Configurarea modulelor pentru „bonding” și interfețe „dummy”

Sistemele care folosesc „channel bonding” (n. trad. combinarea canalelor) și/sau interfețe „dummy”, de exemplu pentru a configura o mașină ca router, pot întâmpina probleme actualizând la buster. Versiuni noi de systemd instalează un fișier /lib/modprobe.d/systemd.conf (pentru a simplifica configurarea prin intermediul systemd-networkd) care conține liniile

 options bonding max_bonds=0
 options dummy numdummies=0
    

Administratorii care depind de valori diferite vor trebui să le configureze astfel încât să aibă prioritate. Un fișier în /etc/modprobe.d trece peste un fișier cu același nume în /lib/modprobe.d, dar numele sunt procesate în ordine alfabetică. În consecință /lib/modprobe.d/systemd.conf urmează și trece peste /etc/modprobe.d/dummy.conf (de exemplu). Un fișier cu configurație locală va trebui să aibă un nume în ordine alfabetică după systemd.conf, cum ar fi /etc/modprobe.d/zz-local.conf.

5.1.8. Ridicarea versiunii implicite și a nivelului de securitate implicit OpenSSL

Conform cu diverse recomandări de securitate versiunea minimă implicită de TLS a fost schimbată de la TLSv1 la TLSv1.2.

Totodată și nivelul de securitate implicit pentru conexiuni TLS a fost crescut de la nivelul 1 la nivelul 2. Astfel se trece de la nivelul de securitate cu 80 de biți la nivelul de securitate cu 112 biți și va necesita chei RSA și DHE cu 2048 biți sau mai mari, chei ECC cu 224 biți sau mai mari, precum și SHA-2.

Configurația generală a sistemului poate fi modificată în /etc/ssl/openssl.cnf. Aplicațiile are putea să aibă un mecanism specific pentru a modifica valorile implicite.

Fișierul /etc/ssl/openssl.cnf conține o linie MinProtocol și CipherString. CipherString poate configura și nivelul de securitate. Informații despre nivelele de securitate pot fi găsite în pagina de manual SSL_CTX_set_security_level(3ssl). Lista cu valori valide pentru protocolul minim poate fi găsită în SSL_CONF_cmd(3ssl). Alte informații se găsesc în ciphers(1ssl) și config(5ssl).

Revenirea la valorile precedente se poate face configurând următoarele valori în /etc/ssl/openssl.cnf:

        MinProtocol = None
        CipherString = DEFAULT
      

Se recomandă să luați legătura cu partea de la distanță dacă valorile implicite cauzează probleme.

5.1.9. Anumite aplicații nu funcționează în GNOME pe Wayland

GNOME în buster a schimbat serverul implicit de afișare de la Xorg la Wayland (vedeți Secțiune 2.2.11, „GNOME folosește implicit Wayland”). Anumite aplicații, inclusiv popularul manager de pachete synaptic, metoda implicită de introducere pentru chineza simplificată fcitx, precum și majoritatea aplicaților de înregistrare a ecranului nu au fost actualizate pentru a funcționa cu Wayland. Pentru a folosi aceste pachete este necesar să porniți o sesiune GNOME pe Xorg.

5.1.10. Pachete notabile învechite

Mai jos urmează o listă de pachete învechite cunoscute și notabile (consultați Secțiune 4.8, „Pachete învechite” pentru descriere).

Lista pachetelor învechite include:

  • Pachetul mcelog nu mai este suportat cu nuclee mai noi decât 4.12. rasdaemon poate fi folosit ca înlocuitor.

  • Pachetul revelation, care este utilizat pentru a păstra parole, nu este inclus în buster. keepass2 poate importa fișiere XML exportate din revelation. Exportați datele din revelation înainte de actualizare, pentru a evita pierderea accesului la parole.

  • Pachetul phpmyadmin nu este inclus în buster.

  • ipsec-tools și racoon au fost scoase din buster deoarece nu au ținut pasul în adaptarea la noi amenințări.

    Utilizatorii sunt încurajați să migreze la libreswan, care are compatibilitate mai bună și beneficiază de mentenanță activă din partea autorilor.

    libreswan ar trebui să fie compatibil din punct de vederea al protocoalelor de comunicare deoarece implementează toate protocoalele suportate de racoon.

  • MTA-ul simplu ssmtp a fost scos din buster pentru că momentan nu validează certificate TLS. Vedeți și raportul de problemă #662960.

  • Pachetul ecryptfs-utils nu face parte din buster datorită unei probleme serioase nerezolvate (#765854). La momentul compunerii acestui paragraf singura recomandare clară pentru utilizatorii eCryptfs era să nu actualizeze.

5.1.11. Componente depășite din buster

Odată cu următoarea lansare de Debian 11 (cu nume de cod bullseye) anumite funcții vor fi declarate învechite (n. trad. „deprecated”). Pentru a preveni probleme la actualizarea la Debian 11 utilizatorii ar trebui să migreze la soluții alternative.

Următoarele funcții sunt afectate:

  • Suportul din partea autorilor pentru Python 2 va fi oprit la 1 ianuarie 2020. Debian speră să renunțe la python-2.7 pentru Debian 11. Dacă utilizatorii au funcționalități care depind de python, vor trebui să se pregătească să migreze la python3.

  • Icinga 1.x este EOL din 2018-12-31 (n. trad. „end of life”, adică sfârșitul vieții produsului). Deși pachetul icinga este încă disponibil utilizatorii ar trebui să folosească durata de viață a versiunii buster să migreze la Icinga 2 (pachetul icinga2) și Icinga Web 2 (pachetul icingaweb2). Pachetul icinga2-classicui este încă disponibil pentru a utiliza interfața web Icinga 1.x CGI cu Icinga 2, dar suportul va fi scos în Icinga 2.11. În locul acesteia ar trebui să folosiți Icinga Web 2.

  • Suita Mailman 3 pentru gestionarea listelor de e-mail este disponibilă în această versiune Debian. Mailman a fost separat în mai multe componente. Nucleul este disponibil în pachetul mailman3 și suita completă poate fi obținută prin intermediul meta-pachetului mailman3-full.

    Mailman versiunea 2.1 rămâne disponibil în această versiune Debian în pachetul mailman, astfel încât puteți migra instalări existente când considerați. Pachetul Mailman 2.1 va fi menținut în stare de funcționare în viitorul previzibil, dar nu va mai avea parte de modificări majore sau îmbunătățiri. Va fi scos din prima versiune Debian după ce autorii Mailman opresc suportul pentru această ramură.

    Se recomandă actualizarea la Mailman 3, versiunea modernă și dezvoltată activ.

  • Pachetele spf-milter-python și dkim-milter-python nu mai sunt dezvoltate activ. Înlocuitoarele lor cu mai multe funcții pyspf-milter și dkimpy-milter sunt disponibile în buster. Utilizatorii ar trebui să migreze la pachetele noi înainte ca cele vechi să fie scoase din bullseye.

5.1.12. Operațiuni de executat după actualizare și înainte de repornire.

Când apt full-upgrade s-a încheiat partea formală a actualizării este completă. Pentru actualizarea la buster nu sunt necesare operațiuni speciale înainte de repornire.

5.1.13. Pachetele SysV init nu mai sunt necesare

[Notă]Notă

Această secțiune nu se aplică dacă ați decis să păstrați sysvinit-core.

După trecerea la systemd ca și sistem init implicit în Jessie și mai multă rafinare în Stretch diferite pachete legate de SysV nu mai sunt necesare și pot fi eliminate în siguranță cu

apt purge initscripts sysv-rc insserv startpar

5.2. Limitări în suportul de securitate

Există anumite pachete pentru care Debian nu poate promite furnizarea actualizărilor de securitate. Acestea sunt menționate în sub-secțiunile de mai jos.

[Notă]Notă

Pachetul debian-security-support ajută la urmărirea stadiului suportului de securitate al pachetelor instalate.

5.2.1. Starea securității navigatoarelor web și a motoarelor de randare

Debian 10 include mai multe motoare de navigatoare, care sunt afectate de un flux constant de vulnerabilități de securitate. Rata mare de vulnerabilități și lipsa parțială a suportului din partea dezvoltatorilor în forma unor versiuni cu suport pe durată lungă face ca suportarea acestor navigatoare și motoare de randare cu remedieri de securitate adaptate la versiunea mai veche să fie foarte dificilă. Mai mult, datorită interdependențelor de biblioteci actualizarea la o versiune mai nouă este extrem de dificilă. În aceste condiții, navigatoarele construite pe baza motoarelor webkit și khtml sunt incluse în buster, dar nu au suport de securitate. Aceste navigatoare nu ar trebui folosite cu situri web care nu sunt de încredere. Pachetul sursă webkit2gtk are suport de securitate.

Pentru navigare generală recomandăm Firefox sau Chromium. Acestea vor fi ținute la zi prin recompilarea versiunilor ESR (n. trad. „Extended Support Release”, adică versiunea cu suport extins) pentru distribuția stabilă. Aceiași strategie va fi aplicată și pentru Thunderbird.

5.2.2. Pachete bazate pe Go

În acest moment infrastructura Debian nu are posibilitatea de a recompila pe scară largă pachete care leagă static (n. trad. „statically link”) părți ale altor pachete. În practică acest lucru nu a fost o problemă până la buster. Odată cu creștera ecosistemului Go acest lucru înseamnă că pachetele bazate pe Go nu vor avea parte de suportul obișnuit de securitate până când infrastructura nu va fi îmbunătățită pentru a putea fi gestionate mai ușor.

În cazul în care ar fi necesare actualizări acestea vor putea veni doar prin versiuni intermediare, care ajung mai rar.

5.3. Probleme specifice anumitor pachete

În majoritatea cazurilor pachetele ar trebui să fie actualizate fără probleme de la stretch la buster. Există un număr mic de cazuri în care este necesar să interveniți, înainte sau în timpul actualizării. Acestea sunt expuse în detaliu în continuare pentru fiecare pachet în parte.

5.3.1. Utilizarea variabilelor de mediu pentru su este modificată

su a schimbat semantica în buster și nu mai păstrează variabilele de mediu ale utilizatorului DISPLAY și XAUTHORITY. Dacă este necesar să rulați aplicații grafice cu su, va trebui să le configurați explicit pentru a permite accesul la afișaj. Vedeți raportul #905409 pentru o discuție detaliată.

5.3.2. Bazele de date PostgreSQL existente trebuie reindexate

Când actualizați de la stretch la buster, datele de localizare din glibc vor fi actualizate. Acest lucru schimbă modul în care PostgreSQL sortează informația în indecșii pentru text. Pentru a evita coruperea indecșii trebuie REINDEXați imediat după actualizarea pachetelor locales sau locales-all, înainte de a pune baza de date înapoi în producție.

Comandă sugerată:

sudo -u postgres reindexdb --all

Alternativ puteți actualiza baza de date la PostgreSQL 11 folosind pg_upgradecluster. (În mod implicit aceasta folosește pg_dump care reconstruiește toți indecșii. Utilizarea -m upgrade sau pg_upgrade nu este sigură deoarece păstrează ordonarea greșită a indexului.)

Consultați Wikiul PostgreSQL pentru mai multe informații.

5.3.3. mutt și neomutt

În stretch pachetul mutt are aplicate petice de la https://neomutt.org. Începând cu buster pachetul care conține /usr/bin/mutt va fi bazat doar pe sursele originale de la http://www.mutt.org. Pachetul separat neomutt este disponibil pentru a oferi /usr/bin/neomutt.

Din acest motiv anumite funcții furnizate de mutt nu mai sunt disponibile. Dacă acest lucru vă strică configurația puteți instala neomutt în schimb.

5.3.4. Accesarea setărilor GNOME fără mouse

Fără un dispozitiv de indicare nu există o cale directă pentru a modifica setări în aplicația GNOME Settings din gnome-control-center. Pentru a ocoli problema puteți naviga din bara laterală la conținutul principal apăsând de două ori săgeată dreapta. Pentru a ajunge din nou în bara laterală puteți porni o căutare cu Ctrl+F, scrieți ceva, după care apăsați Esc pentru a anula căutarea. Acum puteți folosi săgeată sus și săgeată jos pentru a naviga în bara laterală. Rezultatele căutării nu se pot selecta cu tastatura.

5.3.5. gnome-disk-utility fails to change LUKS password causing permanent data loss (buster 10.0 only)

Users of the initial buster release images should not change the LUKS password of encrypted disks with the GNOME graphical interface for disk management. The gnome-disk-utility package in buster had a very nasty bug (#928893) when used to change the LUKS password: it deleted the old password but failed to correctly set the new one, making all data on the disk inaccessible. This has been fixed in the first point release.

5.3.6. evolution-ews a fost scos iar conturile care folosesc Exchange, Office365 sau serverul Outlook vor fi șterse

Utilizatorii care folosesc evolution ca și client de email și se conectează la un server Exchange, Office365 sau Outlook folosind modulul evolution-ews ar trebui să nu actualizeze la buster înainte de a salva toate datele și de a găsi o soluție alternativă. evolution-ews a fost scos din distribuție din cauza unei probleme (#926712) iar mesajele email, calendarele, listele de contact și sarcinile vor fi șterse și nu vor mai fi accesibile din Evolution.

The evolution-ews package has been reintroduced via buster-backports. Users upgrading from stretch to buster can enable buster-backports after the upgrade and then they will be able to reinstall evolution-ews.

5.3.7. Programul de instalare Calamares lasă cheile de criptare accesibile

Dacă instalați Debian de pe medii live cu programul de instalare Calamares Secțiune 2.2.13, „Noutăți de la echipa Debian Live” alegând funcția de criptare a discului, cheia de criptare va fi păstrată în initramfs, care este accesibil fără restricții. Acest lucru permite utilizatorilor cu acces la sistemul de fișiere local să citească cheia privată și să obțină acces la sistemul de fișiere în viitor.

Pentru a preveni acest lucru adăugați UMASK=0077 în /etc/initramfs-tools/conf.d/initramfs-permissions și executați comanda update-initramfs -u. Astfel initramfs-ul va fi recreat cu permisiuni mai restrictive.

O corecție pentru programul de instalare este planificată (vedeți raportul de problemă #931373) și va fi încărcată în arhiva debian-security. Între timp utilizatorii care folosesc criptarea completă a discului ar trebui să aplice soluția de mai sus.

5.3.8. S3QL URL changes for Amazon S3 buckets

When using s3ql with Amazon S3 buckets, the configuration needs updating for a change in the URL. The new format is:

s3://<region>/<bucket>/<prefix>

5.3.9. Split in configuration for logrotate

The shipped configurations for /var/log/btmp and /var/log/wtmp have been split from the main configuration file (/etc/logrotate.conf) into separate standalone files (/etc/logrotate.d/btmp and /etc/logrotate.d/wtmp).

If you have modified /etc/logrotate.conf in this regard, make sure to re-adjust the two new files to your needs and drop any references to (b|w)tmp from the main file, since duplicate definitions can cause errors.

5.3.10. The rescue boot option is unusable without a root password

With the implementation of sulogin now used, booting with the rescue option always requires the root password. If one has not been set, this makes the rescue mode effectively unusable. However it is still possible to boot using the kernel parameter init=/sbin/sulogin --force

To configure systemd to do the equivalent of this whenever it boots into rescue mode (also known as single mode: see systemd(1)), run sudo systemctl edit rescue.service and create a file saying just:

[Service]
Environment=SYSTEMD_SULOGIN_FORCE=1
    

It might also (or instead) be useful to do this for the emergency.service unit, which is started automatically in the case of certain errors (see systemd.special(7)), or if emergency is added to the kernel command line (e.g. if the system can't be recovered by using the rescue mode).

For background and a discussion on the security implications see #802211.