systemd system manager version 243

Efter fem månaders utveckling presenteras systemhanterarens release systemd 243. Bland innovationerna kan vi notera integrationen i PID 1 av en hanterare för lågt minne i systemet, stöd för att bifoga dina egna BPF-program för att filtrera enhetstrafik, många nya alternativ för systemd-networkd, ett läge för att övervaka nätverkets bandbredd gränssnitt, som som standard möjliggör på 64-bitars system 22-bitars PID-nummer istället för 16-bitar, övergång till en enhetlig cgroups hierarki, inkludering i systemd-network-generator.

Huvudändringar:

  • Igenkänning av kärngenererade signaler om slut på minne (Out-Of-Memory, OOM) har lagts till PID 1-hanteraren för att överföra enheter som har nått minnesförbrukningsgränsen till ett speciellt tillstånd med valfri möjlighet att tvinga dem att avslutas eller sluta;
  • För enhetsfiler, nya parametrar IPIngressFilterPath och
    IPEgressFilterPath, som låter dig ansluta BPF-program med godtyckliga hanterare för att filtrera inkommande och utgående IP-paket som genereras av processer associerade med denna enhet. De föreslagna funktionerna låter dig skapa en sorts brandvägg för systemtjänster. Skrivexempel ett enkelt nätverksfilter baserat på BPF;

  • Kommandot "clean" har lagts till i systemctl-verktyget för att radera cacheminnet, runtime-filerna, statusinformationen och loggkatalogerna;
  • systemd-networkd lägger till stöd för MACsec, nlmon, IPVTAP och Xfrm nätverksgränssnitt;
  • systemd-networkd implementerar separat konfiguration av DHCPv4- och DHCPv6-stackar genom avsnitten "[DHCPv4]" och "[DHCPv6]" i konfigurationsfilen. Lade till alternativet RoutesToDNS för att lägga till en separat rutt till DNS-servern som anges i parametrarna som tas emot från DHCP-servern (så att trafik till DNS skickas via samma länk som huvudvägen som tas emot från DHCP). Nya alternativ har lagts till för DHCPv4: MaxAttempts - maximalt antal förfrågningar för att få en adress, BlackList - svart lista över DHCP-servrar, SendRelease - möjliggör att skicka DHCP RELEASE-meddelanden när sessionen slutar;
  • Nya kommandon har lagts till i systemd-analyze-verktyget:
    • "systemd-analyze timestamp" - tidsanalys och konvertering;
    • "systemd-analyze timespan" - analys och konvertering av tidsperioder;
    • "systemd-analyze condition" - tolka och testa ConditionXYZ-uttryck;
    • "systemd-analyze exit-status" - analysera och konvertera exit-koder från siffror till namn och vice versa;
    • "systemd-analyze unit-files" - Listar alla filsökvägar för enheter och enhetsalias.
  • Alternativ SuccessExitStatus, RestartPreventExitStatus och
    RestartForceExitStatus stöder nu inte bara numeriska returkoder utan även deras textidentifierare (till exempel "DATAERR"). Du kan se listan över koder som tilldelats identifierare med kommandot "sytemd-analyze exit-status";

  • Kommandot "delete" har lagts till i networkctl-verktyget för att ta bort virtuella nätverksenheter, liksom alternativet "—stats" för att visa enhetsstatistik;
  • Inställningarna SpeedMeter och SpeedMeterIntervalSec har lagts till networkd.conf för att regelbundet mäta genomströmningen av nätverksgränssnitt. Statistik erhållen från mätresultaten kan ses i utgången av kommandot 'networkctl status';
  • Lade till nytt verktyg systemd-network-generator för att generera filer
    .network, .netdev och .link baserat på IP-inställningar som skickas när de startas via kommandoraden i Linux-kärnan i Dracut-inställningsformat;

  • Sysctl "kernel.pid_max"-värdet på 64-bitars system är nu som standard satt till 4194304 (22-bitars PID istället för 16-bitars), vilket minskar sannolikheten för kollisioner vid tilldelning av PID, ökar gränsen för antalet samtidigt köra processer och har en positiv inverkan på säkerheten. Ändringen kan potentiellt leda till kompatibilitetsproblem, men sådana problem har ännu inte rapporterats i praktiken;
  • Som standard växlar byggstadiet till den förenade hierarkin cgroups-v2 ("-Ddefault-hierarchy=unified"). Tidigare var standardläget hybridläge ("-Ddefault-hierarchy=hybrid");
  • Beteendet för systemanropsfiltret (SystemCallFilter) har ändrats, vilket, i fallet med ett förbjudet systemanrop, nu avslutar hela processen, snarare än enskilda trådar, eftersom att avsluta enskilda trådar kan leda till oförutsägbara problem. Ändringarna gäller endast om du har Linuxkärna 4.14+ och libsecomp 2.4.0+;
  • Oprivilegierade program ges möjlighet att skicka ICMP Echo (ping)-paket genom att ställa in sysctl "net.ipv4.ping_group_range" för hela gruppen av grupper (för alla processer);
  • För att påskynda byggprocessen har genereringen av man-manualer stoppats som standard (för att bygga fullständig dokumentation måste du använda alternativet "-Dman=true" eller "-Dhtml=true" för manualer i html-format). För att göra det lättare att se dokumentationen ingår två skript: build/man/man och build/man/html för att generera och förhandsgranska manualer av intresse;
  • För att bearbeta domännamn med tecken från nationella alfabet används libidn2-biblioteket som standard (för att returnera libidn, använd alternativet “-Dlibidn=true”);
  • Stödet för den körbara filen /usr/sbin/halt.local, som gav funktionalitet som inte var allmänt distribuerad i distributioner, har upphört. För att organisera lanseringen av kommandon vid avstängning, rekommenderas att använda skript i /usr/lib/systemd/system-shutdown/ eller definiera en ny enhet som beror på final.target;
  • I det sista steget av avstängningen ökar systemd nu automatiskt loggnivån i sysctl "kernel.printk", vilket löser problemet med att visa i loggen händelser som inträffade i de senare stadierna av avstängningen, när de vanliga loggningsdemonerna redan har slutförts ;
  • I journalctl och andra verktyg som visar loggar, är varningar markerade i gult, och revisionsposter är markerade i blått för att visuellt framhäva dem från mängden;
  • I miljövariabeln $PATH kommer sökvägen till bin/ nu före sökvägen till sbin/, dvs. om det finns identiska namn på körbara filer i båda katalogerna, kommer filen från bin/ att köras;
  • systemd-logind tillhandahåller ett SetBrightness()-anrop för att säkert ändra skärmens ljusstyrka per session;
  • Flaggan "--wait-for-initialization" har lagts till i kommandot "udevadm info" för att vänta på att enheten ska initieras;
  • Under systemstart visar PID 1-hanteraren nu namnen på enheterna istället för en rad med deras beskrivning. För att återgå till tidigare beteende kan du använda alternativet StatusUnitFormat i /etc/systemd/system.conf eller systemd.status_unit_format kärnalternativet;
  • Lade till alternativet KExecWatchdogSec till /etc/systemd/system.conf för watchdog PID 1, som specificerar timeout för omstart med kexec. Gammal miljö
    ShutdownWatchdogSec har bytt namn till RebootWatchdogSec och definierar en timeout för jobb under avstängning eller normal omstart;

  • Ett nytt alternativ har lagts till för tjänster ExecCondition, som låter dig ange kommandon som ska köras före ExecStartPre. Baserat på felkoden som returneras av kommandot, fattas beslut om ytterligare exekvering av enheten - om kod 0 returneras fortsätter enhetens start, om från 1 till 254 slutar den tyst utan felflagga, om 255 slutar den med en felflagga;
  • Lade till en ny tjänst systemd-pstore.service för att extrahera data från sys/fs/pstore/ och från att spara till /var/lib/pstore för vidare analys;
  • Nya kommandon har lagts till i timedatectl-verktyget för att konfigurera NTP-parametrar för systemd-timesyncd i förhållande till nätverksgränssnitt;
  • Kommandot "localectl list-locales" visar inte längre andra språk än UTF-8;
  • Säkerställer att variabeltilldelningsfel i sysctl.d/-filer ignoreras om variabelnamnet börjar med tecknet "-";
  • Tjänsten systemd-random-seed.service är nu helt och hållet ansvarig för att initiera entropipoolen i Linux-kärnans pseudoslumptalsgenerator. Tjänster som kräver en korrekt initierad /dev/urandom bör startas efter systemd-random-seed.service;
  • Systemd-boot-starthanteraren ger den valfria möjligheten att stödja fröfil med slumpmässig sekvens i EFI System Partition (ESP);
  • Nya kommandon har lagts till i bootctl-verktyget: "bootctl random-seed" för att generera en seed-fil i ESP och "bootctl is-installed" för att kontrollera installationen av systemd-boot-starthanteraren. bootctl har också justerats för att visa varningar om felaktig konfiguration av startposter (till exempel när kärnavbildningen raderas, men posten för att ladda den är kvar);
  • Ger automatiskt val av växlingspartitionen när systemet går i viloläge. Partitionen väljs beroende på den prioritet som är konfigurerad för den, och i fallet med identiska prioriteringar, mängden ledigt utrymme;
  • Lade till alternativ för nyckelfil-timeout till /etc/crypttab för att ställa in hur länge enheten med krypteringsnyckeln ska vänta innan den frågar efter ett lösenord för att komma åt den krypterade partitionen;
  • Lade till IOWeight-alternativ för att ställa in I/O-vikten för BFQ-schemaläggaren;
  • systemd-löst lade till "strikt" läge för DNS-over-TLS och implementerade möjligheten att cachelagra endast positiva DNS-svar ("Cache no-negative" i resolved.conf);
  • För VXLAN har systemd-networkd lagt till ett GenericProtocolExtension-alternativ för att aktivera VXLAN-protokolltillägg. För VXLAN och GENEVE har alternativet IPDoNotFragment lagts till för att ställa in flaggan för fragmenteringsförbud för utgående paket;
  • I systemd-networkd, i avsnittet "[Route]", har alternativet FastOpenNoCookie dykt upp för att möjliggöra mekanismen för att snabbt öppna TCP-anslutningar (TFO - TCP Fast Open, RFC 7413) i förhållande till individuella rutter, såväl som alternativet TTLPropagate för att konfigurera TTL LSP (Label Switched Path ). Alternativet "Type" ger stöd för lokalt, broadcast, anycast, multicast, any och xresolve routinglägen;
  • Systemd-networkd erbjuder ett DefaultRouteOnDevice-alternativ i avsnittet "[Nätverk]" för att automatiskt konfigurera en standardrutt för en given nätverksenhet;
  • Systemd-networkd har lagt till ProxyARP och
    ProxyARPWifi för att ställa in proxy ARP-beteende, MulticastRouter för att ställa in routingparametrar i multicast-läge, MulticastIGMPVersion för att ändra IGMP-versionen (Internet Group Management Protocol) för multicast;

  • Systemd-networkd har lagt till Local, Peer och PeerPort-alternativ för FooOverUDP-tunnlar för att konfigurera lokala och fjärranslutna IP-adresser, samt nätverksportnumret. För TUN-tunnlar har alternativet VnetHeader lagts till för att konfigurera GSO-stöd (Generic Segment Offload);
  • I systemd-networkd, i .network- och .link-filerna i [Match]-sektionen, har ett egenskapsalternativ dykt upp, som låter dig identifiera enheter genom deras specifika egenskaper i udev;
  • I systemd-networkd har ett AssignToLoopback-alternativ lagts till för tunnlar, som styr om slutet av tunneln är tilldelad till loopback-enheten "lo";
  • systemd-networkd aktiverar automatiskt IPv6-stacken om den blockeras via sysctl disable_ipv6 - IPv6 aktiveras om IPv6-inställningar (statiska eller DHCPv6) är definierade för nätverksgränssnittet, annars ändras inte det redan inställda sysctl-värdet;
  • I .network-filer har CriticalConnection-inställningen ersatts av alternativet KeepConfiguration, vilket ger fler sätt att definiera situationer ("yes", "static", "dhcp-on-stop", "dhcp") där systemd-networkd ska inte rör befintliga anslutningar vid start;
  • Sårbarheten fixad CVE-2019-15718, orsakad av bristande åtkomstkontroll till D-Bus-gränssnittet systemd-löst. Problemet tillåter en oprivilegierad användare att utföra operationer som endast är tillgängliga för administratörer, som att ändra DNS-inställningar och dirigera DNS-frågor till en oseriös server;
  • Sårbarheten fixad CVE-2019-9619relaterat till att inte aktivera pam_systemd för icke-interaktiva sessioner, vilket tillåter spoofing av den aktiva sessionen.

Källa: opennet.ru

Lägg en kommentar