systemd system manager utgivelse 243

Etter fem måneder med utvikling presentert systemansvarlig utgivelse systemd 243. Blant innovasjonene kan vi merke oss integrasjonen i PID 1 av en behandler for lite minne i systemet, støtte for å koble til dine egne BPF-programmer for filtrering av enhetstrafikk, mange nye alternativer for systemd-networkd, en modus for overvåking av båndbredden til nettverket grensesnitt, som som standard aktiverer på 64-biters systemer 22-biters PID-numre i stedet for 16-biters, overgang til et enhetlig cgroups-hierarki, inkludering i systemd-network-generator.

Hovedendringer:

  • Gjenkjenning av kjernegenererte signaler om tom for minne (Out-Of-Memory, OOM) er lagt til PID 1-behandleren for å overføre enheter som har nådd minneforbruksgrensen til en spesiell tilstand med valgfri mulighet til å tvinge dem til å avslutte eller stopp;
  • For enhetsfiler, nye parametere IPIngressFilterPath og
    IPEgressFilterPath, som lar deg koble BPF-programmer med vilkårlige behandlere for å filtrere innkommende og utgående IP-pakker generert av prosesser knyttet til denne enheten. De foreslåtte funksjonene lar deg lage en slags brannmur for systemtjenester. Skriveeksempel et enkelt nettverksfilter basert på BPF;

  • Kommandoen "clean" er lagt til systemctl-verktøyet for å slette hurtigbufferen, kjøretidsfiler, statusinformasjon og loggkataloger;
  • systemd-networkd legger til støtte for MACsec, nlmon, IPVTAP og Xfrm nettverksgrensesnitt;
  • systemd-networkd implementerer separat konfigurasjon av DHCPv4- og DHCPv6-stabler gjennom delene "[DHCPv4]" og "[DHCPv6]" i konfigurasjonsfilen. Lagt til alternativet RoutesToDNS for å legge til en separat rute til DNS-serveren spesifisert i parametrene mottatt fra DHCP-serveren (slik at trafikk til DNS sendes gjennom samme kobling som hovedruten mottatt fra DHCP). Nye alternativer er lagt til for DHCPv4: MaxAttempts - maksimalt antall forespørsler for å få en adresse, BlackList - svarteliste over DHCP-servere, SendRelease - muliggjør sending av DHCP RELEASE-meldinger når økten avsluttes;
  • Nye kommandoer er lagt til systemd-analyze-verktøyet:
    • "systemd-analyze timestamp" - tidsanalyse og konvertering;
    • "systemd-analyze timespan" - analyse og konvertering av tidsperioder;
    • "systemd-analyze condition" - analysering og testing av ConditionXYZ-uttrykk;
    • "systemd-analyze exit-status" - analysere og konvertere utgangskoder fra tall til navn og omvendt;
    • "systemd-analyze unit-files" - Viser alle filstier for enheter og enhetsaliaser.
  • Alternativer SuccessExitStatus, RestartPreventExitStatus og
    RestartForceExitStatus støtter nå ikke bare numeriske returkoder, men også deres tekstidentifikatorer (for eksempel "DATAERR"). Du kan se listen over koder som er tildelt identifikatorer ved å bruke kommandoen "sytemd-analyze exit-status";

  • "delete"-kommandoen er lagt til networkctl-verktøyet for å slette virtuelle nettverksenheter, så vel som "—stats"-alternativet for å vise enhetsstatistikk;
  • SpeedMeter og SpeedMeterIntervalSec-innstillinger er lagt til networkd.conf for periodisk måling av gjennomstrømmingen til nettverksgrensesnitt. Statistikk hentet fra måleresultatene kan sees i utdataene til 'networkctl status'-kommandoen;
  • Lagt til nytt verktøy systemd-network-generator for å generere filer
    .network, .netdev og .link basert på IP-innstillinger som ble sendt ved lansering via Linux-kjernens kommandolinje i Dracut-innstillingsformat;

  • Sysctl "kernel.pid_max"-verdien på 64-biters systemer er nå satt som standard til 4194304 (22-biters PID-er i stedet for 16-bits), noe som reduserer sannsynligheten for kollisjoner ved tildeling av PID-er, øker grensen for antall samtidige kjører prosesser, og har en positiv innvirkning på sikkerheten. Endringen kan potensielt føre til kompatibilitetsproblemer, men slike problemer er ennå ikke rapportert i praksis;
  • Som standard bytter byggestadiet til det enhetlige hierarkiet cgroups-v2 ("-Ddefault-hierarchy=unified"). Tidligere var standarden hybridmodus ("-Ddefault-hierarchy=hybrid");
  • Oppførselen til systemanropsfilteret (SystemCallFilter) er endret, som, i tilfelle et forbudt systemkall, nå avslutter hele prosessen, i stedet for individuelle tråder, siden avslutning av individuelle tråder kan føre til uforutsigbare problemer. Endringene gjelder kun hvis du har Linux-kjerne 4.14+ og libsecomp 2.4.0+;
  • Uprivilegerte programmer gis muligheten til å sende ICMP Echo (ping)-pakker ved å sette sysctl "net.ipv4.ping_group_range" for hele gruppen av grupper (for alle prosesser);
  • For å øke hastigheten på byggeprosessen, har genereringen av man-manualer blitt stoppet som standard (for å bygge full dokumentasjon, må du bruke alternativet "-Dman=true" eller "-Dhtml=true" for manualer i html-format). For å gjøre det enklere å se dokumentasjonen, er to skript inkludert: build/man/man og build/man/html for å generere og forhåndsvise manualer av interesse;
  • For å behandle domenenavn med tegn fra nasjonale alfabeter, brukes libidn2-biblioteket som standard (for å returnere libidn, bruk alternativet “-Dlibidn=true”);
  • Støtte for den kjørbare filen /usr/sbin/halt.local, som ga funksjonalitet som ikke ble distribuert bredt i distribusjoner, har blitt avviklet. For å organisere lanseringen av kommandoer når du slår av, anbefales det å bruke skript i /usr/lib/systemd/system-shutdown/ eller definere en ny enhet som avhenger av final.target;
  • På det siste stadiet av avslutningen øker systemd nå automatisk loggnivået i sysctl "kernel.printk", noe som løser problemet med å vise hendelser i loggen som skjedde i de senere stadiene av avslutningen, når de vanlige loggdemonene allerede er fullført ;
  • I journalctl og andre verktøy som viser logger, er advarsler uthevet i gult, og revisjonsposter er uthevet i blått for å visuelt fremheve dem fra mengden;
  • I miljøvariabelen $PATH kommer banen til bin/ nå før banen til sbin/, dvs. hvis det er identiske navn på kjørbare filer i begge katalogene, vil filen fra bin/ bli kjørt;
  • systemd-logind gir et SetBrightness()-kall for å endre skjermens lysstyrke på en sikker basis per økt;
  • "--wait-for-initialization"-flagget er lagt til "udevadm info"-kommandoen for å vente på at enheten skal initialiseres;
  • Under systemoppstart viser PID 1-behandleren nå navnene på enhetene i stedet for en linje med beskrivelsen. For å gå tilbake til tidligere oppførsel, kan du bruke StatusUnitFormat-alternativet i /etc/systemd/system.conf eller systemd.status_unit_format kjernealternativet;
  • Lagt til KExecWatchdogSec-alternativet til /etc/systemd/system.conf for watchdog PID 1, som spesifiserer tidsavbruddet for omstart med kexec. Gammel setting
    ShutdownWatchdogSec har fått nytt navn til RebootWatchdogSec og definerer et tidsavbrudd for jobber under avslutning eller normal omstart;

  • Et nytt alternativ er lagt til for tjenester ExecCondition, som lar deg spesifisere kommandoer som skal utføres før ExecStartPre. Basert på feilkoden som returneres av kommandoen, tas det en beslutning om videre utførelse av enheten - hvis kode 0 returneres, fortsetter enhetsoppstarten, hvis fra 1 til 254 avsluttes den stille uten feilflagg, hvis 255 slutter med et feilflagg;
  • Lagt til en ny tjeneste systemd-pstore.service for å trekke ut data fra sys/fs/pstore/ og fra lagring til /var/lib/pstore for videre analyse;
  • Nye kommandoer er lagt til timedatectl-verktøyet for å konfigurere NTP-parametere for systemd-timesyncd i forhold til nettverksgrensesnitt;
  • Kommandoen "localectl list-locales" viser ikke lenger andre lokaliteter enn UTF-8;
  • Sikrer at variabeltilordningsfeil i sysctl.d/-filer ignoreres hvis variabelnavnet begynner med tegnet "-";
  • Verktøy systemd-random-seed.service er nå helt og holdent ansvarlig for å initialisere entropipoolen til Linux-kjernens pseudorandom-nummergenerator. Tjenester som krever en korrekt initialisert /dev/urandom bør startes etter systemd-random-seed.service;
  • Systemd-boot-oppstartslasteren gir den valgfrie muligheten til å støtte frøfil med tilfeldig sekvens i EFI System Partition (ESP);
  • Nye kommandoer er lagt til bootctl-verktøyet: "bootctl random-seed" for å generere en frøfil i ESP og "bootctl is-installed" for å sjekke installasjonen av systemd-boot-oppstartslasteren. bootctl har også blitt justert for å vise advarsler om feil konfigurasjon av oppstartsoppføringer (for eksempel når kjernebildet er slettet, men oppføringen for å laste det er igjen);
  • Gir automatisk valg av swap-partisjonen når systemet går i hvilemodus. Partisjonen velges avhengig av prioriteten som er konfigurert for den, og i tilfelle av identiske prioriteter, mengden ledig plass;
  • Lagt til nøkkelfil-timeout-alternativet til /etc/crypttab for å angi hvor lenge enheten med krypteringsnøkkelen skal vente før den ber om et passord for å få tilgang til den krypterte partisjonen;
  • Lagt til IOWeight-alternativ for å angi I/O-vekten for BFQ-planleggeren;
  • systemd-løst la til 'streng' modus for DNS-over-TLS og implementerte muligheten til å cache bare positive DNS-svar ("Cache no-negative" i resolved.conf);
  • For VXLAN har systemd-networkd lagt til et GenericProtocolExtension-alternativ for å aktivere VXLAN-protokollutvidelser. For VXLAN og GENEVE er IPDoNotFragment-alternativet lagt til for å angi fragmenteringsforbudsflagget for utgående pakker;
  • I systemd-networkd, i "[Rute]"-delen, har FastOpenNoCookie-alternativet dukket opp for å aktivere mekanismen for raskt å åpne TCP-forbindelser (TFO - TCP Fast Open, RFC 7413) i forhold til individuelle ruter, samt TTLPropagate-alternativet for å konfigurere TTL LSP (Label Switched Path). "Type"-alternativet gir støtte for lokal, kringkasting, anycast, multicast, hvilken som helst og xresolve-rutingsmodus;
  • Systemd-networkd tilbyr et DefaultRouteOnDevice-alternativ i "[Nettverk]"-delen for automatisk å konfigurere en standardrute for en gitt nettverksenhet;
  • Systemd-networkd har lagt til ProxyARP og
    ProxyARPWifi for innstilling av proxy ARP-atferd, MulticastRouter for innstilling av rutingparametere i multicast-modus, MulticastIGMPVersion for å endre IGMP-versjonen (Internet Group Management Protocol) for multicast;

  • Systemd-networkd har lagt til Local, Peer og PeerPort-alternativer for FooOverUDP-tunneler for å konfigurere de lokale og eksterne IP-adressene, samt nettverksportnummeret. For TUN-tunneler er VnetHeader-alternativet lagt til for å konfigurere GSO-støtte (Generic Segment Offload);
  • I systemd-networkd, i .network- og .link-filene i [Match]-delen, har et egenskapsalternativ dukket opp, som lar deg identifisere enheter ved deres spesifikke egenskaper i udev;
  • I systemd-networkd er det lagt til et AssignToLoopback-alternativ for tunneler, som kontrollerer om enden av tunnelen er tilordnet tilbakekoblingsenheten "lo";
  • systemd-networkd aktiverer automatisk IPv6-stakken hvis den blokkeres via sysctl disable_ipv6 - IPv6 aktiveres hvis IPv6-innstillinger (statisk eller DHCPv6) er definert for nettverksgrensesnittet, ellers endres ikke den allerede innstilte sysctl-verdien;
  • I .network-filer er CriticalConnection-innstillingen erstattet av KeepConfiguration-alternativet, som gir flere måter å definere situasjoner (“yes”, “static”, “dhcp-on-stop”, “dhcp”) der systemd-networkd skal ikke rør eksisterende tilkoblinger ved oppstart;
  • Sårbarhet fikset CVE-2019-15718, forårsaket av mangel på tilgangskontroll til D-Bus-grensesnittet systemd-løst. Problemet lar en uprivilegert bruker utføre operasjoner som bare er tilgjengelige for administratorer, for eksempel å endre DNS-innstillinger og dirigere DNS-spørringer til en useriøs server;
  • Sårbarhet fikset CVE-2019-9619relatert til å ikke aktivere pam_systemd for ikke-interaktive økter, noe som tillater spoofing av den aktive økten.

Kilde: opennet.ru

Legg til en kommentar