Kapitola 5. Problémy vyskytujúce sa v stretch

Obsah

5.1. Položky týkajúce sa aktualizácie na stretch
5.1.1. Oneskorené pripájanie /usr už viac nie je podporované
5.1.2. Prístup cez FTP k zrkadlám Debianu bude odstránený
5.1.3. Významné zastaralé balíky
5.1.4. Čo urobiť po aktualizácii pred reštartom
5.1.5. Spustiteľné súbory sú teraz predvolene kompilované ako spustiteľné súbory nezávislé od pozície v pamäti (PIE - position independent executables)
5.1.6. Most LSB compatibility packages have been removed
5.2. Obmedzenia bezpečnostnej podpory
5.2.1. Bezpečnostný status webových prehliadačov
5.2.2. Chýbajúca bezpečnostná podpora ekosystému okolo libv8 a Node.js
5.3. Problémy s konkrétnymi balíkmi
5.3.1. Staré šifry a protokol SSH1 v OpenSSH štandardne zakázané
5.3.2. Zmeny v APT, ktoré môžu byť spätne nekompatibilné
5.3.3. Pracovné prostredia budú migrované na ovládač Xorg libinput
5.3.4. Odstránený systém Upstart
5.3.5. The debhelper tool now generates dbgsym packages by default
5.3.6. Zmeny súvisiace s OpenSSL
5.3.7. Zmeny v Perl, ktoré môžu spôsobiť problémy so softvérom od tretích strán
5.3.8. Nekompatibilita PostgreSQL PL/Perl
5.3.9. net-tools bude označený ako zastaralý v prospech balíka iproute2
5.3.10. Pri pripájaní zariadení AoE (ATA over ethernet) sa odporúča voľba _netdev
5.3.11. Harmless Unescaped ... in regex is deprecated, ... warnings during upgrade
5.3.12. Migrácia úložiska politík SELinux

Niekedy majú zmeny zavedené v novom vydaní vedľajšie účinky, ktorým sa nedokážeme rozumne vyhnúť alebo by spôsobili objavenie chýb inde. Tu dokumentujeme problémy, ktorých sme si vedomí. Tiež si prosím prečítajte errata, dokumentáciu relevantných balíkov, hlásenia o chybách a ďalšie informácie, ktoré spomína Oddiel 6.1, “Ďalšie čítanie”.

5.1. Položky týkajúce sa aktualizácie na stretch

Táto časť pokrýva položky týkajúce sa aktualizácie z jessie na stretch

5.1.1. Oneskorené pripájanie /usr už viac nie je podporované

[Poznámka]Poznámka

Táto časť sa týka iba systémov používajúcich upravené jadro, kde je /usr pripojený oddelene od /. Ak používate balíky jadra, ktoré poskytuje Debian, tento problém sa vás netýka.

Pripojenie /usr len pomocou nástrojov dostupných v rámci / už nie je podporované. To v minulosti fungovalo pre niekoľko špecifických konfigurácií a dnes už je explicitne nepodporované.

To znamená, že od stretch všetky systémy, kde /usr je na samostatnej diskovej oblasti musia používať generátor initramfs, ktorý pripojí /usr. Všetky generátor initramfs v stretch to robia.

5.1.2. Prístup cez FTP k zrkadlám Debianu bude odstránený

Zrkadlá Debianu prestanú poskytovať prístup cez FTP. Ak ste používali protokol ftp: vo svojom súbore zdrojov softvéru, prosím, zmeňte ho na http:. Zvážte použitie nasledovného príkladu migrácie:

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

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

Vyššie uvedené príklady neobsahujú non-free a contrib. Prosím, pamätajte, že tieto musíte uviesť, ak ich chcete používať.

Ďalšie informácie nájdete v oznámení: Vypnutie verejných služieb FTP.

5.1.3. Významné zastaralé balíky

Nasleduje zoznam známych významných zastaralých balíkov (ich popis nájdete v Oddiel 4.8, “Zastaralé balíky”).

Medzi zastaralé balíky patria:

  • Väčšina balíkov -dbg bola odstránená z hlavného archívu. Boli nahradené balíkmi -dbgsym, ktoré sú dostupné z archívu debian-debug. Prosím, pozrite si Oddiel 2.2.7, “Nový archív ladiacich symbolov”.

  • Upstream už neudržiava správcov hesiel fpm2 a kedpm. Použite iného správcu hesiel, ako napr. pass, keepassx alebo keepass2. Nezabudnite pred odstránením balíkov vybrať svoje heslá z fpm2 a kedpm.

  • Balík net-tools je označený ako zastaraný v prospech balíka iproute2. Ďalšie informácie nájdete v Oddiel 5.3.9, “net-tools bude označený ako zastaralý v prospech balíka iproute2 alebo v Referenčnej príručke Debianu.

  • Monitorovacie nástroje nagios3 boli z vydania Stretch odstránené. Balík icinga je ich najbližšou náhradou. Svoje konfiguračné súbory číta z inej cesty ako nagios, ale v iných ohľadoch je s ním kompatibilný.

5.1.4. Čo urobiť po aktualizácii pred reštartom

Po dokončení apt-get dist-upgrade je aktualizácia formálne dokončená. Pri aktualizácii na stretch už nie je potrebné urobiť nič zvláštne pred reštartovaním počítača.

5.1.5. Spustiteľné súbory sú teraz predvolene kompilované ako spustiteľné súbory nezávislé od pozície v pamäti (PIE - position independent executables)

Štandardne kompilátor GNU GCC 6 dostupný v Debian Stretch kompiluje všetky spustiteľné súbory ako nezávislé od pozície v pamäti. To zmierňuje celú triedu zraniteľností.

Bohužiaľ, jadro Linuxu poskytované v Debian 8 (do vydania 8.7) obsahuje problém, ktorý môže spôsobiť, že niektoré programy zostavené ako spustiteľné súbory nezávislé od pozície havarujú s hlásením ako napr. chyba segmentácie, ktoré nie je dostatočne špecifické na určenie problému. Tento problém je vyriešený vo verzii Linuxu dodávanej vo vydaní 8.8 (verzia 3.16.43 alebo novšia) a v jadre dodávanom v Debian 9 (verzia 4.9 alebo novšia).

Odporúčame vám aktualizovať jadro na opravenú verziu a následne reštartovať počítač pred spustením aktualizácie na Stretch. Ak používate jadro vo vydaní Debian 8.8 alebo novšom, tento problém sa vás netýka.

Ak počas aktualizácie používate verziu jadra s týmto problémom, dôrazne odporúčame, aby ste ihneď po aktualizácii reštartovali systém na jadro zo Stretch, aby ste sa problému vyhli.

5.1.5.1. Zmeny správania PIE pre správcov systémov a vývojárov

[Poznámka]Poznámka

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

The above also leads to some changes that are worth being aware of.

  • The file tool (among others) 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
    

    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.6. Most LSB compatibility packages have been removed

Due to lack of interest and testability, Debian has removed the vast majority of the Linux Standard Base (LSB) compatibility packages.

Debian will still provide a selected few key LSB utilities used internally and externally, such as lsb-release and the sysvinit init functions in lsb-base. Furthermore, Debian is still firmly standing by the Filesystem Hierarchy Standard (FHS) version 2.3 with the minor alterations described in the Debian Policy Manual.

5.2. Obmedzenia bezpečnostnej podpory

Existujú niektoré balíky, pre ktoré Debian nemôže sľúbiť poskytovanie minimálnych spätných portov v prípade bezpečnostných problémov. Tieto sú popísané v nasledovných častiach.

Balík debian-security-support pomáha sledovať stav bezpečnostnej podpory nainštalovaných balíkov.

5.2.1. Bezpečnostný status webových prehliadačov

Debian 9 obsahuje niekoľko nových jadier prehliadačov, ktoré postihuje neustály tok nových bezpečnostných zraniteľností. Vysoký tok zraniteľností a čiastočný nedostatok podpory vo forme vetiev s dlhodobou podporou znamená, že je pre nás veľmi ťažké podporovať tieto prehliadače spätne portovanými bezpečnostnými opravami. Naviac, závislosti na knižniciach znemožňujú aktualizáciu na novšie vydania od dodávateľa. Preto sú prehliadače založené na jadrách webkit, qtwebkit a khtml súčasťou stretch, ale nevzťahuje sa na ne bezpečnostná podpora. Tieto prehliadače by ste nemali používať na prístup k nedôveryhodným stránkam.

Ako všeobecný prehliadač odporúčame prehliadače Firefox alebo Chromium.

Chromium - hoci je postavený na kóde Webkit - je to tzv. listový balík, ktorý bude priebežne aktualizovaný opätovným zostavením aktuálnej verzie Chrome v prostredí stabilného vydania. Firefox a Thunderbird budú tiež udržiavané aktuálne opätovným zostavením aktuálnej ESR verzie v prostredí stabilného vydania.

5.2.2. Chýbajúca bezpečnostná podpora ekosystému okolo libv8 a Node.js

Platforma Node.js je postavená na libv8-3.14, ktoré postihuje veľké množstvo bezpečnostných problémov, ale momentálne projekt nemá žiadnych dobrovoľníkov ani bezpečnostný tím s dostatočným záujmom, ochotných stráviť veľké množstvo času riešením tohto typu problémov.

Nanešťastie to znamená, že ekosystém libv8-3.14, nodejs a súvisiacich balíkov node-* by ste momentálne nemali používať na prácu s nedôveryhodným obsahom ako sú neošetrené dáta z internetu.

Okrem toho tieto balíky nebudú dostávať žiadne bezpečnostné aktualizácie počas životného cyklu vydania stretch.

5.3. Problémy s konkrétnymi balíkmi

Vo väčšine prípadov by sa mala aktualizácia balíkov medzi jessie a stretch prebehnúť hladko. V malom počte prípadov, môže byť potrebný zásah, a to buď pred aktualizáciou alebo počas nej. Tieto prípady sú uvedené nižšie pre jednotlivé balíky.

5.3.1. Staré šifry a protokol SSH1 v OpenSSH štandardne zakázané

Vydanie OpenSSH 7 v predvolenom nastavení zakázalo niektoré staršie šifry a protokol SSH1. Buďte opatrní pri aktualizácii strojov, ku ktorým máte prístup len prostredníctvom SSH.

Ďalšie informácie nájdete v dokumentácii OpenSSH.

5.3.2. Zmeny v APT, ktoré môžu byť spätne nekompatibilné

This section covers some of the incompatible changes to APT that may affect your system.

5.3.2.1. APT now fetches files as 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 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).

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. Nové jadro APT na pripevňovanie balíkov

APT 1.1 zaviedol nové jadro na pripevňovanie balíkov, ktoré sa teraz zhoduje s popisom v manuálovej stránke.

Staré jadro priradilo jednu prioritu pripevnenia pre každý balík. Nové jadro priradí priority pripevnení pre každú verziu. Potom vyberie verziu s najvyšším pripevnením, ktorá nepredstavuje zníženie verzie alebo má pripevnenie > 1000.

Tým sa mení vplyv niektorých pripevnení, najmä negatívnych. V minulosti pripevnenie verzie na hodnotu -1 prakticky zabránilo inštalácii balíka (pripevnenie balíka bolo -1); Teraz zabraňuje iba inštalácii verzie tohto balíka.

5.3.2.3. Nové požiadavky na zdroj softvéru APT

[Poznámka]Poznámka

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

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.

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

  • Signatures on the InRelease file should be done with a key size of 2048 bits or larger.

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. Pracovné prostredia budú migrované na ovládač Xorg libinput

[Poznámka]Poznámka

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. Odstránený systém Upstart

V dôsledku nedostatku správcov v upstreame bol systém init Upstart odstránený z vydania Stretch. Ak sa váš systém spolieha na tento balík, mali by ste si všimnúť, že počas životného cyklu Debianu 9 nebude aktualizovaný a od vydania Debian 10 (Buster) môžu byť z balíkov odstránené úlohy Upstart.

Prosím, zvážte prechod na podporovaný systém init, ako je systemd alebo OpenRC.

5.3.5. The debhelper tool now generates dbgsym packages by default

[Poznámka]Poznámka

This section is 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. Zmeny súvisiace s 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.

5.3.7. Zmeny v Perl, ktoré môžu spôsobiť problémy so softvérom od tretích strán

[Poznámka]Poznámka

This section applies to code maintained outside Debian - 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.

    All perl programs and module shipped by Debian should have been fixed to address any incompatibilities caused by the above; please file bugs if this is not the case. As the change has now been made in perl 5.26.0, third-party software should also start to be fixed. Information about how to fix this issue for developers is provided in the perl 5.26 release notes (see the SECURITY section).

    If needed you can temporarily reinstate . in @INC globally by commenting out the line in /etc/perl/sitecustomize.pl but you should only do this with a understanding of the potential risks. This workaround will be removed in Debian 10. You can also set the PERL_USE_UNSAFE_INC environment variable in a specific context which will have the same effect.

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

5.3.8. Nekompatibilita PostgreSQL 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. net-tools bude označený ako zastaralý v prospech balíka iproute2

Balík net-tools už nie je štandardnou súčasťou nových inštalácií, pretože jeho priorita balíka bola znížená z „dôležitý“ na „voliteľný“. Používateľom odporúčame namiesto neho používať modernú sadu nástrojov iproute2 (ktorá bola súčasťou nových inštalácií už v niekoľkých vydaniach). Ak napriek tomu preferujete používanie programov z net-tools, môžete si ich jednoducho nainštalovať pomocou

apt install net-tools

[Varovanie]Varovanie

Prosím, pamätajte, že balík net-tools môže byť počas aktualizácie odinštalovaný ak bol pôvodne nainštalovaný iba na uspokojenie závislosti. Ak sa spoliehate na net-tools, nezabudnite ho pred aktualizáciou označiť ako manuálne nainštalovaný balík príkazom

apt-mark manual net-tools

Tu je zhrnutie príkazov net-tools spolu s ich ekvivalentom iproute2:

zastaralé príkazy net-toolsekvivalenty z iproute2
arpip n (ip neighbor)
ifconfigip a (ip addr), ip link, ip -s (ip -stats)
iptunnelip tunnel
nameifip link
netstatss, ip route (pre netstat -r), ip -s link (pre netstat -i), ip maddr (pre netstat -g)
routeip r (ip route)

5.3.10. Pri pripájaní zariadení AoE (ATA over ethernet) sa odporúča voľba _netdev

[Poznámka]Poznámka

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. Harmless Unescaped ... 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.

5.3.12. Migrácia úložiska politík SELinux

[Poznámka]Poznámka

This section only applies to system that is using SELinux, which is not enabled by default.

In stretch, the SELinux policy store have moved from /etc/selinux/<policy_name> to /var/lib/selinux/<policy_name>. Furthermore, the format used inside the store has changed.

The policies provided by Debian (from e.g. the selinux-policy-default package) will be migrated automatically. However, system specific policies need to be migrated manually.

The semanage-utils package provides the script /usr/lib/selinux/semanage_migrate_store to do this transition.