Kapitel 5. Problemområden att känna till för stretch

Innehållsförteckning

5.1. Specifik uppgraderingsinformation för stretch
5.1.1. Sen montering av /usr stöds inte längre
5.1.2. Tillgång till Debian-speglar via FTP tas bort
5.1.3. Föråldrade paket
5.1.4. Att göra efter uppgradering före omstart
5.1.5. Körbara filer kompileras nu som positionsoberoende binärer (position independent executables, PIE) som standard
5.1.6. De flesta kompatibilitetspaketen för LSB har tagits bort
5.2. Begränsningar i säkerhetsstödet
5.2.1. Säkerhetsläget för webbläsare
5.2.2. Inget säkerhetsunderhåll för ekosystemet runt libv8 och Node.js
5.3. Paketspecifika problem
5.3.1. Äldre krypteringsmetoder och SSH1 inaktiverat i OpenSSH som standard
5.3.2. Förändringar som går att applicera på äldre versioner av APT
5.3.3. Skrivbordsmiljöer kommer att migrera till Xorg-drivrutinen libinput
5.3.4. Upstart borttaget
5.3.5. HP mv2120
5.3.6. Verktyget debhelper skapar nu dbgsym-paket som standard
5.3.7. Ändringar med avsikt på OpenSSL
5.3.8. Förändringar i Perl som kan skada tredjepart mjukvara
5.3.9. Kompatabilitet PostgreSQL PL/Perl
5.3.10. net-tools fasas ut till förmån för iproute2
5.3.11. Monteringsflaggan _netdev rekommenderas om en AoE-enhet (ATA over ethernet) används
5.3.12. Ofarliga Unescaped ... in regex is deprecated, ...-varningar under uppgraderingen
5.3.13. Migrering av sökväg för SELinux policy

Ibland innebär förändringar i en ny utgåva att sidoeffekter vi inte kunnat undvika uppstår, i vissa fall skapas nya fel någon annanstans. Här dokumenterar vi problem som vi känner till. Vänligen läs även erratan, dokumentationen för aktuella paket, felrapporter och annan information som nämns i Avsnitt 6.1, ”Ytterligare läsning”.

5.1. Specifik uppgraderingsinformation för stretch

Detta kapitel beskriver detaljer runt uppgradering från jessie till stretch

5.1.1. Sen montering av /usr stöds inte längre

[Notera]Notera

Detta avsnitt gäller endast system som använder en anpassad kärna där /usr är monterad separerad från /. Om du använder Debians paket för kärnan berörs du inte av detta problem.

Montering av /usr genom att endast använda verktyg som finns i / stöds inte längre. Detta har endast fungerat för ett fåtal specifika konfigurationer och stöds nu inte alls längre.

Detta innebär att för stretch behöver alla system som hanterar /usr på en separat partition använda en initramfs-generator som monterar /usr. Alla initramfs-generatorer i stretch gör detta.

5.1.2. Tillgång till Debian-speglar via FTP tas bort

Debians egna speglar kommer sluta tillhandahålla FTP-åtkomst. Om du har använt FTP-protokollet i din sources.list vänligen byt till HTTP. Överväg följande justering:

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

# tor-varianter (kräver apt-transport-tor)
# deb  tor+http://vwakviie2ienjx6t.onion/debian          stretch            main
# deb  tor+http://sgvtcaew4bxjd7ln.onion/debian-security stretch/updates    main

Ovanstående exempel inkluderar inte non-free and contrib. Lägg till dessa om du behöver komponenter därifrån.

Läs mer om detta i kungörelsen Nedstängning av publika FTP-tjänster.

5.1.3. Föråldrade paket

Detta är en lista med kända föråldrade paket (läs mer i Avsnitt 4.8, ”Föråldrade paket” för en beskrivning).

Listan med föråldrade paket inkluderar:

  • De flesta -dbg-paketen har tagits bort från huvudarkivet. De har ersatts av -dbgsym-paketen som tillhandahålls från debian-debug-arkivet. Läs mer om detta i Avsnitt 2.2.7, ”Nytt arkiv för debug-symboler”

  • Lösenordshanterarna fpm2 och kedpm underhålls inte längre av utgivarna. Använd en annan lösenordshanterare, exempelvis pass, keepassx eller keepass2. Hämta ut dina lösenord från fpm2 och kedpm innan paketen tas bort.

  • net-tools är föråldrat och ersätts av iproute2. Läs mer om detta i Avsnitt 5.3.10, ”net-tools fasas ut till förmån för iproute2 eller Debians referensmanual.

  • Övervakningsverktygen i paketet nagios3 har tagits bort från stretch. Närmsta ersättare är paketet icinga. Den läser instälningarna från en annan sökväg än nagios gjorde men är i övrigt kompatibel.

5.1.4. Att göra efter uppgradering före omstart

När apt-get dist-upgrade är klar innebär detta att den formella uppgraderingen är klar . För uppgraderingen till stretch finns inga speciella åtgärder som måste genomföras före nästa omstart.

5.1.5. Körbara filer kompileras nu som positionsoberoende binärer (position independent executables, PIE) som standard

Som standard använder Debians version av kompilatorn GNU GCC 6 positionsoberoende binärer ("position independent executables", PIE). Detta leder till att vissa typer av säkerhetsrisker helt kan undvikas.

Linuxkärnan i Debian 8 (till och med 8.7) har tyvärr ett problem som kan innebära att vissa program som kompilerats som positionsoberoende binärer kan krascha med ett felmeddelande som inte är särskilt beskrivande (segmentation fault). Detta är löst i linuxversionen som finns i 8.8 (version 3.16.43 eller senare) och i kärnan som finns i Debian 9 (version 4.9 eller senare).

Du bör uppgradera till en korrigerad version innan uppgraderingen till stretch påbörjas. Om du använder kärnan från Debian 8.8 eller senare påverkas du inte av detta problem.

Om du använder en äldre version av kärnan under uppgraderingen är rekommendationen att omedelbart starta om systemet när uppgraderingen är klar för att undvika att drabbas av detta

5.1.5.1. Beteendeförändring i och med PIE för systemadministratörer och utvecklare

[Notera]Notera

Detta avsnitt riktar sig i huvudsak till utvecklare och systemadministratörer. Skrivbordsanvändare påverkas förmodligen inte av detta avsnitt.

Ovanstående leder också till några ändringar som är värda att känna till.

  • Verktyget file (bland annat) kommer att klassificera sådana binärer som shared object istället för executables. Om du har filter baserade på binärfiler kan dessa behöva justeras (exempelvis spamfilter).

  • Statiska bibliotek som kompileras till körbara filer behöver också kompileras som positionsoberoende kod. Följande felmeddelande från länkaren är ett symptom på detta:

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

    Observera att även om det står -fPIC i felmeddelandet så räcker det att kompilera om med -fPIE (vilket är standardinställningen i GCC 6-paketen som distribueras i stretch).

  • Tidigare innebar positionsoberoende binärer prestandaförluster på viss hårdvara. Exempelvis Debians i386-arkitektur (32 bitars Intelmaskiner). GCC 5 och GCC 6 har förbättrat prestandan mycket på 32 bitars Intelmaskiner men detta behöver inte leda till att andra arkitekturer kommer dra nytta av det. Överväg att utvärdera prestanda för din kod om ditt mål är att köra på arkitekturer med starkt begränsat antal register.

5.1.6. De flesta kompatibilitetspaketen för LSB har tagits bort

Majoriteten av paketen för kompatibilitet med Linux Standards Base (LSB) har tagits bort från Debian på grund av bristande intresse och för att de var svårtestade.

Några utvalda nyckelpaket kommer alltjämt att tillhandahållas internt och externt, exempelvis lsb-release och sysvinits initieringsfunktioner i lsb-base. Vidare står Debian fast vid Filesystem Hierarchy Standard (FHS) version 2.3 med vissa mindre justeringar beskrivna i Debian Policy Manual (engelska).

5.2. Begränsningar i säkerhetsstödet

Det finns ett antal paket där Debian inte kan lova minimala bakåtporteringar för säkerhetsproblem. Dessa beskrivs närmare i underavsnitten.

Paketet debian-security-support håller reda på säkerhetsstatus för installerade paket.

5.2.1. Säkerhetsläget för webbläsare

Debian 9 innehåller flera webbläsarmotorer som påverkas av en strid ström av säkerhetshål. Den stora mängden fel och den partiella bristen på stöd från utgivare i form av långsiktiga utvecklingsgrenar gör det mycket svårt att ha stöd för dessa webbläsare med bakåtporterade säkerhetslagningar. Dessutom gör biblioteksberoenden det omöjligt att uppdatera dessa till nyare versioner. Webbläsare utvecklade på webkit, qtwebkit- och khtml-motorerna ingår i stretch men täcks inte av säkerhetsstödet. Dessa webbläsare ska inte användas tillsammans med webbplatser du inte litar på.

För generell webbsurfning rekommenderar vi Firefox eller Chromium.

Chromium - trots att den bygger på kodbasen Webkit - är ett löv-paket. Detta paket hålls uppdaterat genom att den aktuella Chromium-utgåvan byggs om för Debians stabila utgåva. Firefox och Thunderbird kommer också att hållas uppdaterat genom att den aktuella ESR-utgåvan byggs om för Debian stabila utgåva.

5.2.2. Inget säkerhetsunderhåll för ekosystemet runt libv8 och Node.js

Node.js bygger på libv8-3.14 som har haft en stor mängd säkerhetsproblem. Det finns inga frivilliga inom projektet eller säkerhetsteamet som är intresserade nog att lägga ned den stora tid det krävs för att mota alla dessa problem.

Detta betyder således att libv8-3.14, nodejs och paket på formen node-* inte ska användas tillsammans med otillförlitlig data, exempelvis data från internet som inte har kontrollerats innehållsmässigt.

Dessutom kommer dessa paket inte att kunna få säkerhetslagningar under stretch livstid.

5.3. Paketspecifika problem

I de allra flesta fallen kommer paket att uppgradera lugnt och fint mellan jessie och stretch. Det finns dock ett mindre antal tillfällen när manuella ingrepp kommer att krävas, antingen före eller under uppgraderingen. Dessa beskrivs per paket nedan.

5.3.1. Äldre krypteringsmetoder och SSH1 inaktiverat i OpenSSH som standard

OpenSSH 7 avaktiverade några äldre krypteringsmetoder och SSH1-protokollet som standard. Var försiktig när du uppgraderar maskiner som endast kan nås via SSH.

Läs mer i dokumentationen för OpenSSH för mer information.

5.3.2. Förändringar som går att applicera på äldre versioner av APT

Detta avsnitt beskriver några ändringar i APT som inte är kompatibla med äldre versioner och som kan påverka ditt system.

5.3.2.1. APT hämtar filer med en opriviligierad användare (_apt)

APT försöker lämna rot-rättigheterna innan filer hämtas från speglar. APT kan hitta vissa vanliga fall där detta misslyckas och går då tillbaka till att hämta filer som rot-användaren, en varning visas. Det kan förstås förekomma andra tillfällen som inte kan identifieras (exempelvis brandväggsregler baserat på UID).

Om du upplever besvär med detta byt till användaren _apt och kontrollera att den:

  • har läsrättighet till filer i /var/lib/apt/lists och /var/cache/apt/archives.

  • har läsrättighet till APT:s förtroendearkiv (/etc/apt/trusted.gpg och /etc/apt/trusted.gpg.d/)

  • kan slå upp DNS-namn och hämta filer. Exempel på metoder för att testa:

    # Från paketet dnsutils (används tor ska istället tor-resolve användas).
    $ nslookup debian.org > /dev/null || echo "Kan inte slå upp debian.org"
    $ wget -q https://debian.org/ -O- > /dev/null || echo "Kan inte hämta index-sidan för debian.org"
    

    För problem med DNS kontrollera att /etc/resolv.conf är läsbar.

5.3.2.2. Ny motor för att nåla fast paket i APT

I APT 1.1 finns en ny motor för att hantera fastnålade paket, denna motsvarar vad som beskrivs i manualen.

Den äldre motorn satte fast en prioritet per paket, den nya sätter en prioritet per version. Den väljer sedan den version som har högst nålning som inte innebär en nedgradering eller som har nålvärde över 1000.

Detta ändrar effekten för en del nålningar, speciellt negativa. Tidigare innebar att en fastnålad version på -1 i princip förhindrade paketet från att installeras (paketets nålvärde var -1), numera är det bara den versionen av paketet som inte kan installeras.

5.3.2.3. Nya krav för APT-förråd

[Notera]Notera

Detta avsnitt är bara tillämpbart om du har använt (eller kommer att använda) förråd från tredjepart eller om du tillhandahåller ett APT-förråd.

För att öka stabiliteten i hämtningen och för att säkerställa det hämtade materialet så kommer APT nu kräva följande från APT-förråd:

  • Filen InRelease måste vara tillgänglig.

  • Alla metadata måste inkludera åtminstone kontrollberäkningar i SHA256 för samtliga delar. Detta inkluderar GPG-signaturen av InRelease-filen.

  • Signatur på InRelease-filen ska göras med en nyckel som är 2048 bitar eller större.

Om du förlitar dig på ett tredjeparts förråd som inte kan lösa ovanstående så bör du be dem uppgradera sitt förråd. Mer information om InRelease-filen kan hittas på Debians Wiki (engelska).

5.3.3. Skrivbordsmiljöer kommer att migrera till Xorg-drivrutinen libinput

[Notera]Notera

Detta kapitel gäller bara för de som anpassat inställningarna för inmatning i Xorg.

I jessie är standarddrivrutinen för inmatning evdev. I stretch har standarddrivrutinen bytts till libinput. Om du har inställningar för Xorg som vilar på evdev-drivrutinen så behöver du antingen konvertera detta till libinput-drivrutinen eller justera systemet att använda evdev-drivrutinen.

Följande är ett exempel på inställningar för libinput för att aktivera funktionen att emulera tre musknappar (Emulate3Buttons).

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

Detta placeras i /etc/X11/xorg.conf.d/41-middle-emulation.conf starta sedan om (systemet eller bara Xservern, vilket som känns enklast) och emuleringen ska vara aktiverad.

Drivrutinen evdevkan installeras genom paketet xserver-xorg-input-evdev.

5.3.4. Upstart borttaget

På grund av falnande stöd från utgivaren så har uppstartssystemet Upstart tagits bort från stretch. Om ditt system bygger på detta paket behöver du notera att det inte kommer att uppgraderas i Debian 9. Upstart-jobb kan komma att tas bort från paket i och med Debian 10 (buster).

Vänligen överväg att byta till ett uppstartssystem med stöd, exempelvis systemd eller OpenRC.

5.3.5. HP mv2120

Standardinställningarna för u-boot från HP funkar inte längre med Debian stretch. Före uppgradering till Debian 9 måste några inställningar göras i u-boot. De nya inställningarna fungerar med både Debian 7 och Debian 8 därför rekommenderas att ändringen görs före uppgradering. Har du tillgång till mv2120 över serieanslutning kan en del kommandon köras i u-boot. Avbryt uppstartsprocessen genom att trycka en tangent och skriva sedan följande:

      setenv loadAddr 0x0600000
      setenv bootcmd 'bootext2 0,1:1,2 0x0600000 /boot/uImage /dev/sda /dev/sdb'
      saveenv
    

Om du inte har tillgång till seriell anslutning kan ändringarna göras från Debian. Kör följande kommando:

      cat > /etc/fw_env.config <<EOF
      /dev/mtd0           0x00000         0x1000     0x20000
     EOF
  
     fw_setenv loadAddr 0x0600000
     fw_setenv bootcmd "bootext2 0,1:1,2 0x0600000 /boot/uImage /dev/sda /dev/sdb"
    

Detta skapar en instöällningsfil så att u-boot-miljön kan modifieras och använder fw_setenv för att uppdatera två flaggor för uppstarten.

Observera att Debian 9 är den sista utgåvan som stöder HP mv2120.

5.3.6. Verktyget debhelper skapar nu dbgsym-paket som standard

[Notera]Notera

Detta avsnitt vänder sig främst till utvecklare och organisationer som bygger sina egna debian-paket.

Verktygen i debhelper-sviten skapar nu dbgsym-paket som standard för ELF-binärer. Om du utvecklar och paketerar binärer vänligen kontrollera att dina verktyg har stöd för dessa extra automatiskt skapade paket.

Om du använder reprepro så vill du uppgradera till åtminstone version 4.17.0. Aptly behöver åtminstone version 1.0.0, som tyvärr inte finns tillgänglig i Debian stretch.

Om dina verktyg inte kan hantera dessa snyggt så kan du avaktivera denna funktion i debhelper genom att lägga till noautodbgsym i variabeln DEB_BUILD_OPTIONS i din byggtjänst. Läs även manualsidan för dh_strip (engelska).

5.3.7. Ändringar med avsikt på OpenSSL

Programmet openssl förväntar sig flaggor före icke-flaggor. Bland annat så fungerar inte detta längre:

openssl dsaparam 2048 -out file

medan detta fungerar:

openssl dsaparam -out file 2048

Kommandot openssl enc har bytt från MD5 till SHA256 som kryptografisk hashfunktion som standard. Hashfunktionen kan anges med flaggan -md ifall gamla filer behöver avkrypteras med en nyare openssl (eller tvärtom).

Krypteringsmetoderna 3DES och RC4 är inte längre tillgängliga för TLS/SSL-kommunikation. Serverar länkade mot OpenSSL kan inte längre tillhandahålla dessa krypteringsmetoder och klienter kan inte ansluta till servrar som bara tillhandahåller dessa. Detta innebär att OpenSSL och Windows XP inte delar några krypteringsfunktioner.

Paketet libssl-dev tillhandahåller huvudfiler för att kompilera mot OpenSSL 1.1.0. En mängd API-förändringar har gjorts och det är möjligt att mjukvaran inte längre kan kompileras. En genomgång av ändringarna finns att läsa i OpenSSL;s wiki (engelska). Om du inte kan uppgradera mjukvaran så finns dock paketet libssl1.0-dev som tillhandahåller huvudfiler för OpenSSL 1.0.2.

5.3.8. Förändringar i Perl som kan skada tredjepart mjukvara

[Notera]Notera

Detta avsnitt täcker kod som hanteras utanför Debian - lokala, trdjeparts eller gamla Perl-skript och -moduler.

  • Vissa moduler har tagits bort från Perls kärna och levereras nu i separata paket. Exempelvis CGI i paketet libcgi-pm-perl och Module::Build genom libmodule-build-perl.

  • Den aktuella katalogen (.) har tagits bort från standardlistan med inkluderade kataloger - @INC. Detta kan påverka användandet av require(), do() med flera där argumentet är filer i den aktuella katalogen.

    Alla perl-program och -moduler som skeppas med Debian ska ha blivit korrigerad för att adressera inkompatibilitet med ovanstående; vänligen rapportera eventuella fel som uppstår. I och med att den här justeringen även är gjord i perl 5.26.0 så behöver tredjeparts-mjukvara också lagas. Information om hur dessa problem justeras av utvecklare finns att läsa i perl 5.26 kommentarer till utgåvan, särskilt avsnittet SECURITY (engelska).

    För att temporärt justera det hela kan . läggas till i @INC globalt genom att kommentera bort en rad i /etc/perl/sitecustomize.pl men detta ska endast göras om du är med på att systemet utsätts för risker. Vägen runt kommer att tas bort i Debian 10. Miljövariabeln PERL_USE_UNSAFE_INC kan aktiveras i specifika kontext för att uppnå samma effekt.

  • En komplett lista med ändringar i Perl sedan versionen i Debian 8 kan studeras på engelska i perl522delta och perl524delta.

5.3.9. Kompatabilitet PostgreSQL PL/Perl

Paketet för procedurspråket PostgreSQL PL/Perl i Jessie är inte kompatibelt med Perl-versionen i stretch. Paketet postgresql-plperl-9.4 kommer att tas bort vid uppgraderingen, detta innebär att Perl-procedurer på serversidan inte kommer fungera. Uppgradering till PostgreSQL 9.6 ska inte påverkas, procedurer ska fungera i den nya versionen av PostgreSQL-klustret om postgresql-plperl-9.6 är installerat. Om osäkerhet råder bör en säkerhetskopia tas av PostgreSQL 9.4-klustret innan uppgraderingen till stretch genomförs.

5.3.10. net-tools fasas ut till förmån för iproute2

Paketet net-tools installeras inte längre som standard på nya installationer eftersom prioriteten sänkts från viktig (important) till valbar (optional). Användare hänvisas istället till den mer moderna uppsättningen verktyg som finns i iproute2 (som har varit med som standard i många tidigare utgåvor). Skulle du föredra att använda programmen i net-tools kan dessa installeras genom

apt install net-tools

[Varning]Varning

Observera att net-tools kan komma att avinstalleras under uppgraderingen om det blivit installerat för att uppfylla ett beroende. Om du behöver just net-tools behöver det markeras som manuellt installerat paket före uppgraderingen genom:

apt-mark manual net-tools

Här följer en lista med net-tool-kommandon och deras motsvarighet i iproute2:

net-tools-kommandoersättning i iproute2
arpip n (ip neighbor)
ifconfigip a (ip addr), ip link, ip -s (ip -stats)
iptunnelip tunnel
nameifip link
netstatss, ip route (för netstat -r), ip -s link (för netstat -i), ip maddr (för netstat -g)
routeip r (ip route)

5.3.11. Monteringsflaggan _netdev rekommenderas om en AoE-enhet (ATA over ethernet) används

[Notera]Notera

Detta gäller endast system som har ATA över ethernet-enheter (AoE) monterade. Om systemet inte monterar nätverksenheter kan du hoppa över det här kapitlet.

I och med en uppstädning i hanteringen av upprensningen av nätverksinställningar hanteras in AoE-enheter som förväntat vid nedstängning. Detta kan leda till upphakning och/eller att data förloras. För att undvika detta är förslaget att använda monteringsflaggan _netdev. Flaggan är tillgänglig när du använder swap på AoE också.

5.3.12. Ofarliga Unescaped ... in regex is deprecated, ...-varningar under uppgraderingen

Vid uppgraderingen kan det hända att du ser varningar likt:

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.

OBS! Ovanstående exempel på engelska kan mycket väl förekomma i en svensk motsvarighet. Det ligger utanför målet med den här översättningen att täcka in dessa strängar då de härstammar från Perl och inte Debian självt.

Dessa är ofarliga och inträffar om paketet perl-base uppgraderas före debconf-paketet.

5.3.13. Migrering av sökväg för SELinux policy

[Notera]Notera

Detta avsnitt berör bara system som använder SELinux, detta är inte ett standardläge.

I stretch har platsen frö SELinux policy flyttats från /etc/selinux/<policy_namn> till /var/lib/selinux/<policy_name>. Vidare har formatet ändrats.

Policier som tillhandahålls av Debian (i paketet selinux-policy-default) kommer att migreras automatiskt. Systemspecifika policier kommer att migreras automatiskt.

semanage-utils-paketet tillhandahåller ett skript för att hantera övergången; /usr/lib/selinux/semanage_migrate_store.