Na vijf maanden ontwikkeling uitgave van systeembeheerder . Nieuw is de integratie van een geheugentekorthandler in PID 1, ondersteuning voor het koppelen van eigen BPF-programma's voor het filteren van eenheden, talrijke nieuwe opties voor systemd-networkd, de monitoringmodus van de bandbreedte van netwerkinterfaces, standaard 22-bits PID-nummers op 64-bits systemen in plaats van 16-bits, overgang naar een geharmoniseerde cgroups-hiërarchie, en de opname van systemd-network-generator.
Belangrijkste wijzigingen:
- De PID 1-handler heeft nu de herkenning van door de kernel gegenereerde signalen over geheugen tekort (Out-Of-Memory, OOM) toegevoegd om eenheden die de geheugenlimiet hebben bereikt in een speciale staat te plaatsen met de optionele mogelijkheid om ze geforceerd te beëindigen of te stoppen.
- Voor eenheid-bestanden zijn er nieuwe parameters IPIngressFilterPath en
IPEgressFilterPath geïmplementeerd, waarmee BPF-programma's met willekeurige handlers kunnen worden aangesloten voor het filteren van inkomende en uitgaande IP-pakketten die door processen gerelateerd aan deze eenheid worden gegenereerd. Deze mogelijkheden maken het mogelijk om soortgelijke firewalls voor systemd-diensten te creëren. een eenvoudige netwerkfilter op basis van BPF; - De utility systemctl heeft de opdracht 'clean' toegevoegd voor het verwijderen van cache, runtime-bestanden, statusinformatie en logmappen;
- In systemd-networkd is ondersteuning toegevoegd voor netwerkinterfaces MACsec, nlmon, IPVTAP en Xfrm;
- In systemd-networkd is er een aparte configuratie van DHCPv4 en DHCPv6-stacks gerealiseerd via de secties '[DHCPv4]' en '[DHCPv6]' in het configuratiebestand. Een nieuwe optie RoutesToDNS is toegevoegd om een aparte route naar de DNS-server die is opgegeven in de parameters, verkregen van de DHCP-server, toe te voegen (zodat het verkeer naar DNS via dezelfde link gaat als de hoofdroute, verkregen van DHCP). Voor DHCPv4 zijn er nieuwe opties toegevoegd: MaxAttempts — maximaal aantal aanvragen voor het verkrijgen van een adres, BlackList — zwarte lijst van DHCP-servers, SendRelease — inschakeling van het verzenden van DHCP RELEASE-berichten bij het beëindigen van de sessie;
- In de utility systemd-analyze zijn nieuwe opdrachten toegevoegd:
- 'systemd-analyze timestamp' — ontleden en omzetten van tijd;
- 'systemd-analyze timespan' — ontleden en omzetten van tijdsintervallen;
- 'systemd-analyze condition' — ontleden en testen van ConditionXYZ-expressies;
- «systemd-analyze exit-status» — analyse en conversie van exitcodes van nummers naar namen en vice versa;
- «systemd-analyze unit-files» — geeft een lijst van alle padnamen voor eenheden en aliassen van eenheden weer.
- De opties SuccessExitStatus, RestartPreventExitStatus en
RestartForceExitStatus ondersteunen nu niet alleen numerieke terugkeer codes, maar ook hun tekstuele identificatoren (bijvoorbeeld «DATAERR»). Een lijst van codes en hun identificatoren kan worden bekeken via de opdracht «systemd-analyze exit-status»; - De tool networkctl heeft de opdracht «delete» gekregen om virtuele netwerkinterfaces te verwijderen, evenals de optie «—stats» voor het weergeven van apparaatspecificaties;
- In networkd.conf zijn nieuwe instellingen SpeedMeter en SpeedMeterIntervalSec toegevoegd voor periodieke metingen van de doorvoersnelheid van netwerkinterfaces. Statistieken verkregen uit deze metingen kunnen worden bekeken met de opdracht ‘networkctl status’;
- Een nieuwe tool systemd-network-generator is toegevoegd voor het genereren van bestanden
.network, .netdev en .link op basis van IP-instellingen doorgegeven bij de opstart via de commandoregel van de Linux-kernel in Dracut-configuratieformaat; - De sysctl-waarde «kernel.pid_max» op 64-bits systemen is nu standaard ingesteld op 4194304 (22-bits PID in plaats van 16-bits), wat de kans op PID-conflicten vermindert, de limiet voor het aantal gelijktijdig draaiende processen verhoogt en de veiligheid vergroot. Deze wijziging kan mogelijk compatibiliteitsproblemen veroorzaken, maar in de praktijk zijn dergelijke problemen nog niet gemeld;
- Standaard is er bij de buildfase overgestapt op een verenigde cgroups-v2 hiërarchie («-Ddefault-hierarchy=unified»). Voorheen was de hybride modus standaard («-Ddefault-hierarchy=hybrid»);
- Het gedrag van de systeemaanroepfilter (SystemCallFilter) is veranderd, die bij een verzoek om een verboden systeemaanroep nu het hele proces beëindigt in plaats van afzonderlijke threads, aangezien het beëindigen van afzonderlijke threads kon leiden tot onvoorspelbare problemen. Wijzigingen zijn alleen van toepassing bij het hebben van kernel Linux 4.14+ en libseccomp 2.4.0+;
- Niet-geprivilegieerde programma's hebben nu de mogelijkheid om ICMP Echo-pakketten (ping) te verzenden dankzij de instelling van sysctl «net.ipv4.ping_group_range» voor het volledige bereik van groepen (voor alle processen);
- Om het assemblageproces te versnellen, is de generatie van man-pagina's standaard uitgeschakeld (voor het bouwen van de volledige documentatie moet de optie „-Dman=true” of „-Dhtml=true” voor HTML-pagina's worden gebruikt). Voor het vergemakkelijken van het bekijken van de documentatie zijn er twee scripts inbegrepen: build/man/man en build/man/html voor het genereren en bekijken van de gewenste handleidingen;
- Voor de verwerking van domeinnamen met symbolen van nationale alfabetten wordt standaard de libidn2-bibliotheek gebruikt (om libidn terug te krijgen, moet de optie „-Dlibidn=true” worden gebruikt);
- De ondersteuning voor het uitvoerbare bestand /usr/sbin/halt.local, dat functionaliteit bood die onvoldoende verbreid is in distributies, is beëindigd. Voor het organiseren van het uitvoeren van opdrachten bij het afsluiten wordt aangeraden 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 afsluitproces verhoogt systemd nu automatisch het niveau van de logs in sysctl „kernel.printk”, wat het probleem oplost van het weergeven van gebeurtenissen in de log die zich in de latere stadia van het afsluiten hebben voorgedaan, wanneer de standaard logdemonen al zijn afgesloten;
- In journalctl en andere logweergavehulpmiddelen is waarschuwingstekst geel gemarkeerd en zijn auditrecorden blauw gemarkeerd voor visuele onderscheid van de totale massa;
- In de omgevingsvariabele $PATH komt het pad naar bin/ nu eerder dan het pad naar sbin/, dat wil zeggen dat bij gelijke uitvoerbare bestandsnamen in beide mappen, het bestand uit bin/ zal worden uitgevoerd;
- In systemd-logind is een veilige oproep van SetBrightness() toegevoegd voor het veilig wijzigen van de schermhelderheid voor elke sessie;
- Aan de opdracht „udevadm info” is de vlag „—wait-for-initialization” toegevoegd om te wachten op de voltooiing van de apparaatinitialisatie;
- Tijdens het opstartproces toont de PID 1-handler nu de namen van de eenheden op het scherm in plaats van de regel met hun beschrijving. Om het vorige gedrag te herstellen, kan de optie StatusUnitFormat in /etc/systemd/system.conf of de systeemd.status_unit_format-kernelparameter worden gebruikt;
- In /etc/systemd/system.conf is voor de watchdog in PID 1 de optie KExecWatchdogSec toegevoegd, die de time-out voor opnieuw opstarten met behulp van kexec definieert. De oude instelling
ShutdownWatchdogSec is hernoemd naar RebootWatchdogSec en definieert de time-out voor werkzaamheden tijdens het afsluiten of een normale herstart; - Voor services is een nieuwe optie toegevoegd , waarmee commando's kunnen worden gegeven die worden uitgevoerd vóór ExecStartPre. Op basis van de door het commando geretourneerde foutcode wordt besloten over de verdere uitvoering van de eenheid — als de code 0 terugkomt, gaat de eenheid verder met opstarten; als het tussen 1 en 254 ligt, eindigt het stilzwijgend zonder een foutmelding; als het 255 is, eindigt het met een foutmelding.
- Een nieuwe service systemd-pstore.service is toegevoegd voor het extraheren van gegevens uit sys/fs/pstore/ en opslaan in /var/lib/pstore voor verdere analyse.
- Nieuwe commando's zijn toegevoegd aan de utility timedatectl voor het configureren van NTP-instellingen voor systemd-timesyncd in relatie tot netwerkinterfaces.
- De opdracht 'localectl list-locales' toont geen andere locales dan UTF-8 meer.
- Fouten bij het toewijzen van variabelen in sysctl.d/-bestanden worden genegeerd als de naam van de variabele begint met het teken '-'.
- Dienst verantwoordelijk voor de initialisatie van de entropiepul van de kernel van Linux. Diensten die een correct geïnitialiseerd /dev/urandom nodig hebben, moeten na systemd-random-seed.service worden gestart.
- In de bootloader systemd-boot is optionele ondersteuning voor het met een willekeurige reeks in de EFI System Partition (ESP) geïmplementeerd.
- Nieuwe commando's zijn toegevoegd aan de utility bootctl: 'bootctl random-seed' voor het genereren van een seed-bestand in de ESP en 'bootctl is-installed' voor het controleren van de installatie van de bootloader systemd-boot. In bootctl worden ook waarschuwingen weergegeven over onjuiste configuratie van opstartrecorden (bijvoorbeeld wanneer het kernelbeeld is verwijderd, maar de opstartvermelding alsnog is achtergelaten).
- Automatische selectie van de swap-partitie is mogelijk gemaakt wanneer het systeem in slaapstand gaat. De partitie wordt geselecteerd op basis van de prioriteit die ervoor is ingesteld, en bij gelijke prioriteiten op basis van de beschikbare schijfruimte.
- In /etc/crypttab is de optie keyfile-timeout toegevoegd om de wachttijd voor het apparaatsleutel voor versleuteling in te stellen voordat een wachtwoord voor toegang tot de versleutelde partitie wordt gevraagd.
- De optie IOWeight is toegevoegd om het gewicht van input/output voor de BFQ-scheduler in te stellen.
- In systemd-resolved is een strikte ('strict') modus voor DNS-over-TLS geïmplementeerd en de mogelijkheid tot caching van alleen positieve DNS-antwoorden is gerealiseerd ('Cache no-negative' in resolved.conf).
- Voor VXLAN is er in systemd-networkd de optie GenericProtocolExtension toegevoegd om extensies van het VXLAN-protocol in te schakelen. Voor VXLAN en GENEVE is de optie IPDoNotFragment toegevoegd om de flag voor fragmentatieverbod voor uitgaande pakketten in te stellen;
- In systemd-networkd is er in de sectie «[Route]» een optie FastOpenNoCookie toegevoegd om het mechanisme voor snelle opening van TCP-verbindingen (TFO — TCP Fast Open, RFC 7413) in te schakelen bij specifieke routes, evenals de optie TTLPropagate voor het configureren van TTL LSP (Label Switched Path). In de optie «Type» is ondersteuning voor de routeringmodi local, broadcast, anycast, multicast, any en xresolve verzekerd;
- In systemd-networkd is er in de sectie «[Network]» een optie DefaultRouteOnDevice aangeboden voor de automatische configuratie van de standaardroute voor een opgegeven netwerkapparaat;
- In systemd-networkd zijn er opties ProxyARP en
ProxyARPWifi toegevoegd voor het configureren van het gedrag van proxy ARP, MulticastRouter voor het instellen van routeringparameters in multicastmodus, MulticastIGMPVersion voor het wijzigen van de versie van IGMP (Internet Group Management Protocol) voor multicast; - In systemd-networkd zijn er voor FooOverUDP-tunnels de opties Local, Peer en PeerPort toegevoegd voor het configureren van de IP-adressen van de lokale en externe kant, evenals het netwerpoortnummer. Voor TUN-tunnels is de optie VnetHeader toegevoegd voor het instellen van de ondersteuning voor GSO (Generic Segment Offload);
- In systemd-networkd is in de .network- en .link-bestanden in de sectie [Match] de optie Property toegevoegd, waarmee apparaten kunnen worden geïdentificeerd op basis van specifieke eigenschappen in udev;
- In systemd-networkd is er voor tunnels een optie AssignToLoopback toegevoegd die de koppeling van het tunneluiteinde aan het loopback-apparaat «lo» beheert;
- In systemd-networkd is de activatie van de IPv6-stack geautomatiseerd in het geval deze is geblokkeerd via sysctl disable_ipv6 — IPv6 wordt geactiveerd als er configuraties voor IPv6 (statisch of DHCPv6) zijn gedefinieerd voor de netwerkinterface, anders blijft de al ingestelde waarde van sysctl onveranderd;
- In .network-bestanden is de configuratie CriticalConnection vervangen door de optie KeepConfiguration, die meer mogelijkheden biedt voor het definiëren van situaties («yes», «static», «dhcp-on-stop», «dhcp») waarin systemd-networkd bestaande verbindingen niet moet aanpassen bij opstarten;
- Er is een kwetsbaarheid verholpen , veroorzaakt door een gebrek aan toegangscontrole tot de D-Bus-interface van systemd-resolved. Dit probleem stelt een niet-bevoorrechte gebruiker in staat om bewerkingen uit te voeren die alleen voorbehouden zijn aan beheerders, zoals het wijzigen van DNS-instellingen en het omleiden van DNS-verzoeken naar een vervangende server;
- Er is een kwetsbaarheid verholpen , gerelateerd aan het niet inschakelen van pam_systemd voor niet-interactieve sessies, wat spoofing van een actieve sessie mogelijk maakt.
Bron: opennet.ru
