systemd systeembeheerder release 243

Na vijf maanden ontwikkeling ingediend systeembeheerder release systemd 243. Onder de innovaties kunnen we de integratie in PID 1 opmerken van een handler voor weinig geheugen in het systeem, ondersteuning voor het koppelen van uw eigen BPF-programma's voor het filteren van eenheidsverkeer, talrijke nieuwe opties voor systemd-networkd, een modus voor het bewaken van de bandbreedte van het netwerk interfaces, die standaard op 64-bit systemen 22-bit PID-nummers mogelijk maken in plaats van 16-bit, overgang naar een uniforme cgroups-hiërarchie, opname in systemd-network-generator.

Grote veranderingen:

  • Herkenning van door de kernel gegenereerde signalen over onvoldoende geheugen (Out-Of-Memory, OOM) is toegevoegd aan de PID 1-handler om eenheden die de geheugenverbruiklimiet hebben bereikt naar een speciale status over te brengen met de optionele mogelijkheid om ze te dwingen te beëindigen of stop;
  • Voor eenheidsbestanden zijn nieuwe parameters IPIngressFilterPath en
    IPEgressFilterPath, waarmee u BPF-programma's kunt verbinden met willekeurige handlers om inkomende en uitgaande IP-pakketten te filteren die zijn gegenereerd door processen die aan deze eenheid zijn gekoppeld. Met de voorgestelde functies kunt u een soort firewall voor systeemdiensten creëren. Schrijven voorbeeld een eenvoudig netwerkfilter gebaseerd op BPF;

  • De opdracht “clean” is toegevoegd aan het systemctl-hulpprogramma om de cache, runtime-bestanden, statusinformatie en logmappen te verwijderen;
  • systemd-networkd voegt ondersteuning toe voor MACsec-, nlmon-, IPVTAP- en Xfrm-netwerkinterfaces;
  • systemd-networkd implementeert een afzonderlijke configuratie van DHCPv4- en DHCPv6-stacks via de secties “[DHCPv4]” en “[DHCPv6]” in het configuratiebestand. De optie RoutesToDNS toegevoegd om een ​​aparte route toe te voegen aan de DNS-server die is opgegeven in de parameters die zijn ontvangen van de DHCP-server (zodat verkeer naar de DNS wordt verzonden via dezelfde link als de hoofdroute die wordt ontvangen van de DHCP). Er zijn nieuwe opties toegevoegd voor DHCPv4: MaxAttempts - maximaal aantal verzoeken om een ​​adres te verkrijgen, BlackList - zwarte lijst met DHCP-servers, SendRelease - inschakelen van het verzenden van DHCP RELEASE-berichten wanneer de sessie eindigt;
  • Er zijn nieuwe opdrachten toegevoegd aan het hulpprogramma systemd-analyze:
    • “systemd-analyze timestamp” - tijdparsering en conversie;
    • “systemd-analyze timespan” - analyse en conversie van tijdsperioden;
    • “systemd-analyze condition” - het parseren en testen van ConditionXYZ-expressies;
    • “systemd-analyze exit-status” - het parseren en converteren van exit-codes van nummers naar namen en vice versa;
    • "systemd-analyze unit-files" - Geeft een overzicht van alle bestandspaden voor eenheden en eenheidaliassen.
  • Opties SuccessExitStatus, RestartPreventExitStatus en
    RestartForceExitStatus ondersteunt nu niet alleen numerieke retourcodes, maar ook hun tekst-ID's (bijvoorbeeld "DATAERR"). U kunt de lijst met codes bekijken die aan identificaties zijn toegewezen met behulp van de opdracht “sytemd-analyze exit-status”;

  • De opdracht “delete” is toegevoegd aan het networkctl-hulpprogramma om virtuele netwerkapparaten te verwijderen, evenals de optie “—stats” om apparaatstatistieken weer te geven;
  • SpeedMeter- en SpeedMeterIntervalSec-instellingen zijn toegevoegd aan networkd.conf voor het periodiek meten van de doorvoer van netwerkinterfaces. Statistieken verkregen uit de meetresultaten kunnen worden bekeken in de uitvoer van het 'networkctl status' commando;
  • Nieuw hulpprogramma systemd-network-generator toegevoegd voor het genereren van bestanden
    .network, .netdev en .link gebaseerd op IP-instellingen die worden doorgegeven bij lancering via de Linux-kernelopdrachtregel in Dracut-instellingenformaat;

  • De sysctl "kernel.pid_max"-waarde op 64-bits systemen is nu standaard ingesteld op 4194304 (22-bits PID's in plaats van 16-bits), wat de kans op botsingen bij het toewijzen van PID's verkleint en de limiet op het aantal gelijktijdige lopende processen en heeft een positieve invloed op de veiligheid. De wijziging zou mogelijk tot compatibiliteitsproblemen kunnen leiden, maar dergelijke problemen zijn in de praktijk nog niet gemeld;
  • Standaard schakelt de bouwfase over naar de uniforme hiërarchie cgroups-v2 (“-Ddefault-hierarchy=unified”). Voorheen was de standaard hybride modus (“-Ddefault-hierarchy=hybrid”);
  • Het gedrag van het systeemaanroepfilter (SystemCallFilter) is gewijzigd, waardoor in het geval van een verboden systeemaanroep nu het hele proces wordt beëindigd, in plaats van individuele threads, omdat het beëindigen van individuele threads tot onvoorspelbare problemen kan leiden. De wijzigingen zijn alleen van toepassing als je Linux kernel 4.14+ en libseccomp 2.4.0+ hebt;
  • Programma's zonder privileges krijgen de mogelijkheid om ICMP Echo (ping)-pakketten te verzenden door de sysctl "net.ipv4.ping_group_range" in te stellen voor het gehele bereik van groepen (voor alle processen);
  • Om het bouwproces te versnellen, is het genereren van man-handleidingen standaard gestopt (om volledige documentatie te bouwen, moet u de optie “-Dman=true” of “-Dhtml=true” gebruiken voor handleidingen in html-formaat). Om het gemakkelijker te maken de documentatie te bekijken, zijn er twee scripts meegeleverd: build/man/man en build/man/html voor het genereren en bekijken van interessante handleidingen;
  • Om domeinnamen met tekens uit nationale alfabetten te verwerken, wordt standaard de libidn2-bibliotheek gebruikt (om libidn terug te geven, gebruikt u de optie “-Dlibidn=true”);
  • Ondersteuning voor het uitvoerbare bestand /usr/sbin/halt.local, dat functionaliteit bood die niet wijd verspreid was in distributies, is stopgezet. Om het starten van opdrachten bij het afsluiten te organiseren, wordt aanbevolen om scripts in /usr/lib/systemd/system-shutdown/ te gebruiken of een nieuwe eenheid te definiëren die afhankelijk is van final.target;
  • In de laatste fase van het afsluiten verhoogt systemd nu automatisch het logniveau in de sysctl “kernel.printk”, wat het probleem oplost met het weergeven in de loggebeurtenissen die plaatsvonden in de latere stadia van het afsluiten, wanneer de reguliere logging-daemons al zijn voltooid ;
  • In journalctl en andere hulpprogramma's die logboeken weergeven, worden waarschuwingen geel gemarkeerd en worden auditrecords blauw gemarkeerd om ze visueel uit de massa te halen;
  • In de omgevingsvariabele $PATH komt het pad naar bin/ nu vóór het pad naar sbin/, d.w.z. als er in beide mappen identieke namen van uitvoerbare bestanden voorkomen, zal het bestand uit bin/ worden uitgevoerd;
  • systemd-logind biedt een SetBrightness()-aanroep om de schermhelderheid veilig per sessie te wijzigen;
  • De vlag “--wait-for-initialization” is toegevoegd aan de opdracht “udevadm info” om te wachten tot het apparaat is geïnitialiseerd;
  • Tijdens het opstarten van het systeem geeft de PID 1-handler nu de namen van eenheden weer in plaats van een regel met hun beschrijving. Om terug te keren naar gedrag uit het verleden, kun je de StatusUnitFormat optie in /etc/systemd/system.conf of de systemd.status_unit_format kernel optie gebruiken;
  • KExecWatchdogSec optie toegevoegd aan /etc/systemd/system.conf voor watchdog PID 1, die de time-out specificeert voor herstarten met kexec. Oude omgeving
    ShutdownWatchdogSec is hernoemd naar RebootWatchdogSec en definieert een time-out voor taken tijdens het afsluiten of normaal opnieuw opstarten;

  • Er is een nieuwe optie toegevoegd voor services ExecConditie, waarmee u opdrachten kunt opgeven die vóór ExecStartPre worden uitgevoerd. Op basis van de foutcode die door het commando wordt geretourneerd, wordt een beslissing genomen over de verdere uitvoering van de eenheid - als code 0 wordt geretourneerd, gaat de lancering van de eenheid door, als deze van 1 tot 254 stil eindigt zonder een foutvlag, als 255 eindigt met een foutvlag;
  • Een nieuwe service systemd-pstore.service toegevoegd om gegevens te extraheren uit sys/fs/pstore/ en voor het opslaan in /var/lib/pstore voor verdere analyse;
  • Er zijn nieuwe opdrachten toegevoegd aan het timedatectl-hulpprogramma voor het configureren van NTP-parameters voor systemd-timesyncd in relatie tot netwerkinterfaces;
  • De opdracht "localectl list-locales" geeft niet langer andere landinstellingen weer dan UTF-8;
  • Zorgt ervoor dat fouten bij het toewijzen van variabelen in sysctl.d/-bestanden worden genegeerd als de naam van de variabele begint met het teken “-“;
  • Dienst systemd-random-seed.service is nu volledig verantwoordelijk voor het initialiseren van de entropiepool van de Linux-kernel pseudotoevalsgetallengenerator. Services die een correct geïnitialiseerde /dev/urandom vereisen, moeten worden gestart na systemd-random-seed.service;
  • De systemd-boot bootloader biedt de optionele mogelijkheid om ondersteuning te bieden Seed-bestand met willekeurige volgorde in de EFI-systeempartitie (ESP);
  • Er zijn nieuwe opdrachten toegevoegd aan het bootctl-hulpprogramma: “bootctl random-seed” om een ​​Seed-bestand in de ESP te genereren en “bootctl is-installed” om de installatie van de systemd-boot bootloader te controleren. bootctl is ook aangepast om waarschuwingen weer te geven over onjuiste configuratie van opstartgegevens (bijvoorbeeld wanneer de kernelimage wordt verwijderd, maar de invoer voor het laden ervan blijft staan);
  • Biedt automatische selectie van de swappartitie wanneer het systeem naar de slaapmodus gaat. De partitie wordt geselecteerd afhankelijk van de prioriteit die ervoor is geconfigureerd, en in het geval van identieke prioriteiten, de hoeveelheid vrije ruimte;
  • Keyfile-timeout-optie toegevoegd aan /etc/crypttab om in te stellen hoe lang het apparaat met de coderingssleutel zal wachten voordat om een ​​wachtwoord wordt gevraagd om toegang te krijgen tot de gecodeerde partitie;
  • IOWeight-optie toegevoegd om het I/O-gewicht voor de BFQ-planner in te stellen;
  • systemd-resolved heeft een 'strikte' modus voor DNS-over-TLS toegevoegd en de mogelijkheid geïmplementeerd om alleen positieve DNS-reacties in de cache op te slaan ("Cache no-negative" insolving.conf);
  • Voor VXLAN heeft systemd-networkd een GenericProtocolExtension-optie toegevoegd om VXLAN-protocolextensies in te schakelen. Voor VXLAN en GENEVE is de IPDoNotFragment-optie toegevoegd om de fragmentatieverbodsvlag voor uitgaande pakketten in te stellen;
  • In systemd-networkd is in de sectie "[Route]" de optie FastOpenNoCookie verschenen om het mechanisme in te schakelen voor het snel openen van TCP-verbindingen (TFO - TCP Fast Open, RFC 7413) met betrekking tot individuele routes, evenals de optie TTLPropagate om TTL LSP (Label Switched Path) te configureren. De optie “Type” biedt ondersteuning voor lokale, broadcast-, anycast-, multicast-, any- en xresolve-routeringsmodi;
  • Systemd-networkd biedt een DefaultRouteOnDevice-optie in de sectie "[Netwerk]" om automatisch een standaardroute voor een bepaald netwerkapparaat te configureren;
  • Systemd-networkd heeft ProxyARP en
    ProxyARPWifi voor het instellen van proxy ARP-gedrag, MulticastRouter voor het instellen van routeringsparameters in multicast-modus, MulticastIGMPVersion voor het wijzigen van de IGMP-versie (Internet Group Management Protocol) voor multicast;

  • Systemd-networkd heeft lokale, peer- en PeerPort-opties toegevoegd voor FooOverUDP-tunnels om de lokale en externe IP-adressen te configureren, evenals het netwerkpoortnummer. Voor TUN-tunnels is de optie VnetHeader toegevoegd om GSO-ondersteuning (Generic Segment Offload) te configureren;
  • In systemd-networkd is in de .network- en .link-bestanden in de sectie [Match] een Property-optie verschenen, waarmee u apparaten kunt identificeren aan de hand van hun specifieke eigenschappen in udev;
  • In systemd-networkd is een AssignToLoopback-optie toegevoegd voor tunnels, die bepaalt of het einde van de tunnel wordt toegewezen aan het loopback-apparaat “lo”;
  • systemd-networkd activeert automatisch de IPv6-stack als deze wordt geblokkeerd via sysctl Disable_ipv6 - IPv6 wordt geactiveerd als IPv6-instellingen (statisch of DHCPv6) zijn gedefinieerd voor de netwerkinterface, anders verandert de reeds ingestelde sysctl-waarde niet;
  • In .network-bestanden is de CriticalConnection-instelling vervangen door de KeepConfiguration-optie, die meer middelen biedt voor het definiëren van situaties (“ja”, “statisch”, “dhcp-on-stop”, “dhcp”) waarin systemd-networkd zou moeten raak bestaande verbindingen niet aan bij het opstarten;
  • Kwetsbaarheid opgelost CVE-2019-15718, veroorzaakt door een gebrek aan toegangscontrole tot de D-Bus-interface is door het systeem opgelost. Door het probleem kan een gebruiker zonder rechten bewerkingen uitvoeren die alleen beschikbaar zijn voor beheerders, zoals het wijzigen van DNS-instellingen en het doorsturen van DNS-query's naar een frauduleuze server;
  • Kwetsbaarheid opgelost CVE-2019-9619gerelateerd aan het niet inschakelen van pam_systemd voor niet-interactieve sessies, waardoor spoofing van de actieve sessie mogelijk is.

Bron: opennet.ru

Voeg een reactie