systemd system manager udgivelse 243

Efter fem måneders udvikling præsenteret frigivelse af systemadministrator systemd 243. Blandt innovationerne kan vi bemærke integrationen i PID 1 af en handler for lav hukommelse i systemet, understøttelse af vedhæftning af dine egne BPF-programmer til filtrering af enhedstrafik, talrige nye muligheder for systemd-networkd, en tilstand til overvågning af netværkets båndbredde grænseflader, som som standard aktiverer på 64-bit systemer 22-bit PID-numre i stedet for 16-bit, overgang til et samlet cgroups hierarki, inklusion i systemd-network-generator.

Vigtigste ændringer:

  • Genkendelse af kernegenererede signaler, der ikke er mere hukommelse (Out-Of-Memory, OOM) er blevet tilføjet til PID 1-behandleren for at overføre enheder, der har nået hukommelsesforbrugsgrænsen, til en speciel tilstand med den valgfri mulighed for at tvinge dem til at afslutte eller stop;
  • For enhedsfiler, nye parametre IPIngressFilterPath og
    IPEgressFilterPath, som giver dig mulighed for at forbinde BPF-programmer med vilkårlige handlere for at filtrere indgående og udgående IP-pakker genereret af processer forbundet med denne enhed. De foreslåede funktioner giver dig mulighed for at oprette en slags firewall til systemtjenester. Skriveeksempel et simpelt netværksfilter baseret på BPF;

  • Kommandoen "clean" er blevet tilføjet til systemctl-værktøjet for at slette cachen, runtime-filer, statusoplysninger og log-mapper;
  • systemd-networkd tilføjer understøttelse af MACsec, nlmon, IPVTAP og Xfrm netværksgrænseflader;
  • systemd-networkd implementerer separat konfiguration af DHCPv4- og DHCPv6-stabler gennem sektionerne "[DHCPv4]" og "[DHCPv6]" i konfigurationsfilen. Tilføjet indstillingen RoutesToDNS for at tilføje en separat rute til DNS-serveren angivet i parametrene modtaget fra DHCP-serveren (så trafik til DNS'en sendes gennem samme link som hovedruten modtaget fra DHCP'en). Der er tilføjet nye muligheder for DHCPv4: MaxAttempts - maksimalt antal anmodninger om at få en adresse, BlackList - sortliste over DHCP-servere, SendRelease - muliggør afsendelse af DHCP RELEASE-meddelelser, når sessionen slutter;
  • Nye kommandoer er blevet tilføjet til systemd-analyze-værktøjet:
    • "systemd-analyze timestamp" - tidsparsing og konvertering;
    • "systemd-analyze timespan" - analyse og konvertering af tidsperioder;
    • "systemd-analyze condition" - parsing og test af ConditionXYZ udtryk;
    • "systemd-analyze exit-status" - parsing og konvertering af exit-koder fra tal til navne og omvendt;
    • "systemd-analyze unit-files" - Viser alle filstier for enheder og enhedsaliaser.
  • Indstillinger SuccessExitStatus, RestartPreventExitStatus og
    RestartForceExitStatus understøtter nu ikke kun numeriske returkoder, men også deres tekstidentifikatorer (f.eks. "DATAERR"). Du kan se listen over koder, der er tildelt identifikatorer ved hjælp af kommandoen "sytemd-analyze exit-status";

  • Kommandoen "delete" er blevet tilføjet til networkctl-værktøjet for at slette virtuelle netværksenheder, såvel som "—stats"-indstillingen til at vise enhedsstatistik;
  • SpeedMeter og SpeedMeterIntervalSec indstillinger er blevet tilføjet til networkd.conf til periodisk måling af gennemstrømningen af ​​netværksgrænseflader. Statistik opnået fra måleresultaterne kan ses i outputtet af kommandoen 'networkctl status';
  • Tilføjet nyt hjælpeprogram systemd-netværksgenerator til generering af filer
    .network, .netdev og .link baseret på IP-indstillinger, der blev overført ved lancering via Linux-kernens kommandolinje i Dracut-indstillingsformat;

  • Sysctl "kernel.pid_max"-værdien på 64-bit systemer er nu som standard sat til 4194304 (22-bit PID'er i stedet for 16-bit), hvilket reducerer sandsynligheden for kollisioner ved tildeling af PID'er, øger grænsen for antallet af samtidigt kørende processer, og har en positiv indflydelse på sikkerheden. Ændringen kan potentielt føre til kompatibilitetsproblemer, men sådanne problemer er endnu ikke blevet rapporteret i praksis;
  • Som standard skifter byggefasen til det forenede hierarki cgroups-v2 ("-Ddefault-hierarchy=unified"). Tidligere var standarden hybridtilstand ("-Ddefault-hierarchy=hybrid");
  • Opførselen af ​​systemkaldsfilteret (SystemCallFilter) er blevet ændret, hvilket, i tilfælde af et forbudt systemkald, nu afslutter hele processen i stedet for individuelle tråde, da afslutning af individuelle tråde kan føre til uforudsigelige problemer. Ændringerne gælder kun, hvis du har Linux-kerne 4.14+ og libsecomp 2.4.0+;
  • Uprivilegerede programmer får mulighed for at sende ICMP Echo (ping) pakker ved at indstille sysctl "net.ipv4.ping_group_range" for hele rækken af ​​grupper (for alle processer);
  • For at fremskynde byggeprocessen er genereringen af ​​man-manualer blevet stoppet som standard (for at bygge fuld dokumentation skal du bruge indstillingen "-Dman=true" eller "-Dhtml=true" for manualer i html-format). For at gøre det lettere at se dokumentationen er to scripts inkluderet: build/man/man og build/man/html til generering og forhåndsvisning af manualer af interesse;
  • For at behandle domænenavne med tegn fra nationale alfabeter, bruges libidn2-biblioteket som standard (for at returnere libidn, brug "-Dlibidn=true"-indstillingen);
  • Understøttelse af den /usr/sbin/halt.local eksekverbare fil, som gav funktionalitet, der ikke var udbredt i distributioner, er blevet afbrudt. For at organisere lanceringen af ​​kommandoer, når du lukker ned, anbefales det at bruge scripts i /usr/lib/systemd/system-shutdown/ eller definere en ny enhed, der afhænger af final.target;
  • På det sidste trin af nedlukningen øger systemd nu automatisk log-niveauet i sysctl'en "kernel.printk", hvilket løser problemet med visning af hændelser i loggen, der opstod i de senere faser af nedlukningen, når de almindelige log-dæmoner allerede er afsluttet ;
  • I journalctl og andre hjælpeprogrammer, der viser logfiler, er advarsler fremhævet med gult, og revisionsposter er fremhævet med blåt for visuelt at fremhæve dem fra mængden;
  • I miljøvariablen $PATH kommer stien til bin/ nu før stien til sbin/, dvs. hvis der er identiske navne på eksekverbare filer i begge mapper, vil filen fra bin/ blive eksekveret;
  • systemd-logind giver et SetBrightness()-kald til sikkert at ændre skærmens lysstyrke på per-session-basis;
  • Flaget "--wait-for-initialization" er blevet tilføjet til kommandoen "udevadm info" for at vente på, at enheden initialiseres;
  • Under systemstart viser PID 1-handleren nu navnene på enhederne i stedet for en linje med deres beskrivelse. For at vende tilbage til tidligere adfærd kan du bruge indstillingen StatusUnitFormat i /etc/systemd/system.conf eller systemd.status_unit_format kerneindstillingen;
  • Tilføjet mulighed for KExecWatchdogSec til /etc/systemd/system.conf for vagthund PID 1, som angiver timeout for genstart med kexec. Gamle omgivelser
    ShutdownWatchdogSec er blevet omdøbt til RebootWatchdogSec og definerer en timeout for job under nedlukning eller normal genstart;

  • Der er tilføjet en ny mulighed for tjenester ExecCondition, som giver dig mulighed for at angive kommandoer, der skal udføres før ExecStartPre. Baseret på den fejlkode, som kommandoen returnerer, tages der en beslutning om videre udførelse af enheden - hvis kode 0 returneres, fortsætter opstarten af ​​enheden, hvis den fra 1 til 254 stille ender uden fejlflag, hvis 255 slutter med et fejlflag;
  • Tilføjet en ny tjeneste systemd-pstore.service til at udtrække data fra sys/fs/pstore/ og fra lagring til /var/lib/pstore for yderligere analyse;
  • Nye kommandoer er blevet tilføjet til timedatectl-værktøjet til at konfigurere NTP-parametre for systemd-timesyncd i forhold til netværksgrænseflader;
  • Kommandoen "localectl list-locales" viser ikke længere andre lokaliteter end UTF-8;
  • Sikrer, at variabeltildelingsfejl i sysctl.d/-filer ignoreres, hvis variabelnavnet begynder med tegnet "-";
  • Service systemd-random-seed.service er nu helt ansvarlig for initialisering af entropipuljen i Linux-kernens pseudorandom-talgenerator. Tjenester, der kræver en korrekt initialiseret /dev/urandom, skal startes efter systemd-random-seed.service;
  • Systemd-boot-opstartsindlæseren giver den valgfri mulighed for at understøtte frø fil med tilfældig sekvens i EFI System Partition (ESP);
  • Nye kommandoer er blevet tilføjet til bootctl-værktøjet: "bootctl random-seed" for at generere en seed-fil i ESP'en og "bootctl is-installed" for at kontrollere installationen af ​​systemd-boot-startindlæseren. bootctl er også blevet justeret til at vise advarsler om forkert konfiguration af opstartsindgange (f.eks. når kernebilledet er slettet, men indgangen til indlæsning af det er tilbage);
  • Giver automatisk valg af swap-partitionen, når systemet går i dvaletilstand. Partitionen vælges afhængigt af den konfigurerede prioritet, og i tilfælde af identiske prioriteter, mængden af ​​ledig plads;
  • Tilføjet nøglefil-timeout-mulighed til /etc/crypttab for at indstille, hvor længe enheden med krypteringsnøglen skal vente, før den beder om en adgangskode for at få adgang til den krypterede partition;
  • Tilføjet IOWeight-indstilling for at indstille I/O-vægten for BFQ-planlæggeren;
  • systemd-løst tilføjet 'streng' tilstand for DNS-over-TLS og implementeret muligheden for kun at cache positive DNS-svar ("Cache no-negative" i resolved.conf);
  • Til VXLAN har systemd-networkd tilføjet en GenericProtocolExtension mulighed for at aktivere VXLAN protokoludvidelser. For VXLAN og GENEVE er IPDoNotFragment-indstillingen blevet tilføjet for at indstille flaget for fragmenteringsforbud for udgående pakker;
  • I systemd-networkd, i afsnittet "[Route]", er FastOpenNoCookie-muligheden dukket op for at aktivere mekanismen til hurtig åbning af TCP-forbindelser (TFO - TCP Fast Open, RFC 7413) i forhold til individuelle ruter, såvel som TTLPropagate-muligheden for at konfigurere TTL LSP (Label Switched Path ). "Type"-indstillingen giver understøttelse af lokal-, broadcast-, anycast-, multicast-, enhver og xresolve routing-tilstande;
  • Systemd-networkd tilbyder en DefaultRouteOnDevice-indstilling i afsnittet "[Netværk]" for automatisk at konfigurere en standardrute for en given netværksenhed;
  • Systemd-networkd har tilføjet ProxyARP og
    ProxyARPWifi til indstilling af proxy ARP-adfærd, MulticastRouter til indstilling af routingparametre i multicast-tilstand, MulticastIGMPVersion til ændring af IGMP-versionen (Internet Group Management Protocol) til multicast;

  • Systemd-networkd har tilføjet Local, Peer og PeerPort muligheder for FooOverUDP tunneler for at konfigurere de lokale og eksterne IP-adresser samt netværksportnummeret. For TUN-tunneler er muligheden VnetHeader blevet tilføjet for at konfigurere GSO-understøttelse (Generic Segment Offload);
  • I systemd-networkd, i .network- og .link-filerne i [Match]-sektionen, er der dukket en egenskabsindstilling op, som giver dig mulighed for at identificere enheder ved deres specifikke egenskaber i udev;
  • I systemd-networkd er der tilføjet en AssignToLoopback mulighed for tunneler, som styrer om enden af ​​tunnelen er tildelt loopback-enheden "lo";
  • systemd-networkd aktiverer automatisk IPv6-stakken, hvis den er blokeret via sysctl disable_ipv6 - IPv6 aktiveres, hvis IPv6-indstillinger (statisk eller DHCPv6) er defineret for netværksgrænsefladen, ellers ændres den allerede indstillede sysctl-værdi ikke;
  • I .network-filer er CriticalConnection-indstillingen blevet erstattet af KeepConfiguration-indstillingen, som giver flere midler til at definere situationer ("yes", "static", "dhcp-on-stop", "dhcp"), hvor systemd-networkd skal ikke røre ved eksisterende forbindelser ved opstart;
  • Sårbarhed rettet CVE-2019-15718, forårsaget af manglende adgangskontrol til D-Bus-grænsefladen systemd-løst. Problemet tillader en uprivilegeret bruger at udføre handlinger, der kun er tilgængelige for administratorer, såsom at ændre DNS-indstillinger og dirigere DNS-forespørgsler til en useriøs server;
  • Sårbarhed rettet CVE-2019-9619relateret til ikke at aktivere pam_systemd for ikke-interaktive sessioner, hvilket tillader spoofing af den aktive session.

Kilde: opennet.ru

Tilføj en kommentar