Systemd System Manager versiunea 243

După cinci luni de dezvoltare prezentat lansarea managerului de sistem sistemd 243. Printre inovații, remarcam integrarea în PID 1 a unui handler pentru memorie scăzută în sistem, suport pentru atașarea propriilor programe BPF pentru filtrarea traficului unitar, numeroase opțiuni noi pentru systemd-networkd, un mod de monitorizare a lățimii de bandă a rețelei interfețe, permițând în mod implicit pe sistemele pe 64 de biți numere PID de 22 de biți în loc de 16 biți, tranziția la o ierarhie unificată cgroups, includerea în systemd-network-generator.

Principalele modificări:

  • Recunoașterea semnalelor generate de kernel despre lipsa memoriei (Out-Of-Memory, OOM) a fost adăugată la handler-ul PID 1 pentru a transfera unitățile care au atins limita consumului de memorie într-o stare specială cu capacitatea opțională de a le forța să se termine sau opriți;
  • Pentru fișierele de unitate, noi parametri IPIngressFilterPath și
    IPEgressFilterPath, care vă permite să conectați programe BPF cu handlere arbitrare pentru a filtra pachetele IP de intrare și de ieșire generate de procesele asociate cu această unitate. Caracteristicile propuse vă permit să creați un fel de firewall pentru serviciile de sistem. Exemplu de scriere un filtru de rețea simplu bazat pe BPF;

  • Comanda „curățare” a fost adăugată la utilitarul systemctl pentru a șterge memoria cache, fișierele de rulare, informațiile de stare și directoarele de jurnal;
  • systemd-networkd adaugă suport pentru interfețele de rețea MACsec, nlmon, IPVTAP și Xfrm;
  • systemd-networkd implementează configurarea separată a stivelor DHCPv4 și DHCPv6 prin secțiunile „[DHCPv4]” și „[DHCPv6]” din fișierul de configurare. S-a adăugat opțiunea RoutesToDNS pentru a adăuga o rută separată la serverul DNS specificat în parametrii primiți de la serverul DHCP (astfel încât traficul către DNS să fie trimis prin aceeași legătură ca și ruta principală primită de la DHCP). Au fost adăugate noi opțiuni pentru DHCPv4: MaxAttempts - numărul maxim de solicitări pentru a obține o adresă, BlackList - lista neagră a serverelor DHCP, SendRelease - activarea trimiterii mesajelor DHCP RELEASE la încheierea sesiunii;
  • Au fost adăugate comenzi noi la utilitarul systemd-analyze:
    • „systemd-analyze timestamp” - analiza timpului și conversia;
    • „systemd-analyze timespan” - analiza și conversia perioadelor de timp;
    • „systemd-analyze condition” - analizarea și testarea expresiilor ConditionXYZ;
    • „systemd-analyze exit-status” - analizarea și conversia codurilor de ieșire din numere în nume și invers;
    • „systemd-analyze unit-files” - Listează toate căile de fișiere pentru unități și aliasuri de unitate.
  • Opțiuni SuccessExitStatus, RestartPreventExitStatus și
    RestartForceExitStatus acceptă acum nu numai codurile numerice de returnare, ci și identificatorii lor de text (de exemplu, „DATAERR”). Puteți vizualiza lista de coduri atribuite identificatorilor folosind comanda „sytemd-analyze exit-status”;

  • Comanda „șterge” a fost adăugată la utilitarul networkctl pentru a șterge dispozitivele de rețea virtuală, precum și opțiunea „—stats” pentru a afișa statisticile dispozitivului;
  • Setările SpeedMeter și SpeedMeterIntervalSec au fost adăugate la networkd.conf pentru măsurarea periodică a debitului interfețelor de rețea. Statisticile obținute din rezultatele măsurătorilor pot fi vizualizate în ieșirea comenzii „networkctl status”;
  • S-a adăugat un nou utilitar systemd-network-generator pentru generarea de fișiere
    .network, .netdev și .link pe baza setărilor IP transmise la lansare prin linia de comandă a nucleului Linux în formatul de setări Dracut;

  • Valoarea sysctl „kernel.pid_max” pe sistemele pe 64 de biți este acum setată implicit la 4194304 (PID-uri pe 22 de biți în loc de 16 biți), ceea ce reduce probabilitatea de coliziuni la atribuirea PID-urilor, crește limita numărului de rulează procese și are un impact pozitiv asupra securității. Modificarea ar putea duce la probleme de compatibilitate, dar astfel de probleme nu au fost încă raportate în practică;
  • În mod implicit, etapa de construire trece la ierarhia unificată cgroups-v2 ("-Ddefault-hierarchy=unified"). Anterior, implicit era modul hibrid (“-Ddefault-hierarchy=hybrid”);
  • Comportamentul filtrului de apel de sistem (SystemCallFilter) a fost modificat, ceea ce, în cazul unui apel de sistem interzis, termină acum întregul proces, mai degrabă decât firele individuale, deoarece terminarea firelor individuale ar putea duce la probleme imprevizibile. Modificările se aplică numai dacă aveți Linux kernel 4.14+ și libseccomp 2.4.0+;
  • Programelor neprivilegiate li se oferă posibilitatea de a trimite pachete ICMP Echo (ping) prin setarea sysctl „net.ipv4.ping_group_range” pentru întreaga gamă de grupuri (pentru toate procesele);
  • Pentru a accelera procesul de construire, generarea manualelor de manual a fost oprită în mod implicit (pentru a construi documentația completă, trebuie să utilizați opțiunea „-Dman=true” sau „-Dhtml=true” pentru manuale în format html). Pentru a facilita vizualizarea documentației, sunt incluse două scripturi: build/man/man și build/man/html pentru generarea și previzualizarea manualelor de interes;
  • Pentru procesarea numelor de domenii cu caractere din alfabetele naționale, se folosește implicit biblioteca libidn2 (pentru a returna libidn, folosiți opțiunea „-Dlibidn=true”);
  • Suportul pentru fișierul executabil /usr/sbin/halt.local, care a furnizat funcționalități care nu au fost distribuite pe scară largă în distribuții, a fost întrerupt. Pentru a organiza lansarea comenzilor la oprire, este recomandat să folosiți scripturi în /usr/lib/systemd/system-shutdown/ sau să definiți o nouă unitate care depinde de final.target;
  • În ultima etapă a închiderii, systemd acum crește automat nivelul de jurnal în sysctl „kernel.printk”, ceea ce rezolvă problema cu afișarea în jurnal a evenimentelor care au avut loc în etapele ulterioare ale închiderii, când demonii obișnuiți de logare s-au finalizat deja. ;
  • În journalctl și alte utilitare care afișează jurnalele, avertismentele sunt evidențiate cu galben, iar înregistrările de audit sunt evidențiate cu albastru pentru a le evidenția vizual din mulțime;
  • În variabila de mediu $PATH, calea către bin/ vine acum înaintea căii către sbin/, adică. dacă există nume identice de fișiere executabile în ambele directoare, fișierul din bin/ va fi executat;
  • systemd-logind oferă un apel SetBrightness() pentru a schimba în siguranță luminozitatea ecranului pe sesiune;
  • Indicatorul „--wait-for-initialization” a fost adăugat la comanda „udevadm info” pentru a aștepta inițializarea dispozitivului;
  • În timpul pornirii sistemului, gestionarea PID 1 afișează acum numele unităților în loc de o linie cu descrierea acestora. Pentru a reveni la comportamentul trecut, puteți utiliza opțiunea StatusUnitFormat din /etc/systemd/system.conf sau opțiunea kernel systemd.status_unit_format;
  • S-a adăugat opțiunea KExecWatchdogSec la /etc/systemd/system.conf pentru watchdog PID 1, care specifică timpul de expirare pentru repornirea utilizând kexec. Cadru vechi
    ShutdownWatchdogSec a fost redenumit RebootWatchdogSec și definește un timeout pentru joburi în timpul opririi sau repornirii normale;

  • A fost adăugată o nouă opțiune pentru servicii ExecCondition, care vă permite să specificați comenzi care vor fi executate înainte de ExecStartPre. Pe baza codului de eroare returnat de comandă, se ia o decizie cu privire la execuția ulterioară a unității - dacă se returnează codul 0, lansarea unității continuă, dacă de la 1 la 254 se termină în tăcere fără un flag de eșec, dacă 255 se termină cu un steag de eșec;
  • S-a adăugat un nou serviciu systemd-pstore.service pentru a extrage date din sys/fs/pstore/ și de la salvare în /var/lib/pstore pentru analize ulterioare;
  • Au fost adăugate noi comenzi la utilitarul timedatectl pentru configurarea parametrilor NTP pentru systemd-timesyncd în legătură cu interfețele de rețea;
  • Comanda „localectl list-locales” nu mai afișează alte localități decât UTF-8;
  • Se asigură că erorile de atribuire a variabilelor din fișierele sysctl.d/ sunt ignorate dacă numele variabilei începe cu caracterul „-“;
  • Serviciu systemd-random-seed.service este acum în întregime responsabil pentru inițializarea pool-ului de entropie al generatorului de numere pseudoaleatoare a nucleului Linux. Serviciile care necesită un /dev/urandom inițializat corect ar trebui să fie pornite după systemd-random-seed.service;
  • Încărcătorul de pornire systemd-boot oferă capacitatea opțională de suport dosar de semințe cu secvență aleatorie în partiția de sistem EFI (ESP);
  • Au fost adăugate noi comenzi la utilitarul bootctl: „bootctl random-seed” pentru a genera un fișier seed în ESP și „bootctl is-installed” pentru a verifica instalarea systemd-boot bootloader. bootctl a fost, de asemenea, ajustat pentru a afișa avertismente despre configurarea incorectă a intrărilor de boot (de exemplu, când imaginea nucleului este ștearsă, dar intrarea pentru încărcare este lăsată);
  • Oferă selecția automată a partiției de swap atunci când sistemul intră în modul de repaus. Partiția este selectată în funcție de prioritatea configurată pentru aceasta și, în cazul priorităților identice, de cantitatea de spațiu liber;
  • S-a adăugat opțiunea keyfile-timeout la /etc/crypttab pentru a seta cât timp va aștepta dispozitivul cu cheia de criptare înainte de a solicita o parolă pentru a accesa partiția criptată;
  • A fost adăugată opțiunea IOWeight pentru a seta greutatea I/O pentru planificatorul BFQ;
  • systemd-resolved a adăugat modul „strict” pentru DNS-over-TLS și a implementat capacitatea de a stoca în cache numai răspunsurile DNS pozitive („Cache no-negative” în resolved.conf);
  • Pentru VXLAN, systemd-networkd a adăugat o opțiune GenericProtocolExtension pentru a activa extensiile de protocol VXLAN. Pentru VXLAN și GENEVE, a fost adăugată opțiunea IPDoNotFragment pentru a seta indicatorul de interdicție a fragmentării pentru pachetele de ieșire;
  • În systemd-networkd, în secțiunea „[Route]”, a apărut opțiunea FastOpenNoCookie pentru a activa mecanismul de deschidere rapidă a conexiunilor TCP (TFO - TCP Fast Open, RFC 7413) în legătură cu rutele individuale, precum și opțiunea TTLPropagate pentru a configura TTL LSP (Label Switched Path). Opțiunea „Tip” oferă suport pentru modurile de rutare local, broadcast, anycast, multicast, any și xresolve;
  • Systemd-networkd oferă o opțiune DefaultRouteOnDevice în secțiunea „[Rețea]” pentru a configura automat o rută implicită pentru un anumit dispozitiv de rețea;
  • Systemd-networkd a adăugat ProxyARP și
    ProxyARPWifi pentru setarea comportamentului ARP proxy, MulticastRouter pentru setarea parametrilor de rutare în modul multicast, MulticastIGMPVersion pentru schimbarea versiunii IGMP (Internet Group Management Protocol) pentru multicast;

  • Systemd-networkd a adăugat opțiuni Local, Peer și PeerPort pentru tunelurile FooOverUDP pentru a configura adresele IP locale și de la distanță, precum și numărul portului de rețea. Pentru tunelurile TUN, opțiunea VnetHeader a fost adăugată pentru a configura suportul GSO (Generic Segment Offload);
  • În systemd-networkd, în fișierele .network și .link din secțiunea [Potrivire], a apărut o opțiune Proprietate, care vă permite să identificați dispozitivele după proprietățile lor specifice în udev;
  • În systemd-networkd, a fost adăugată o opțiune AssignToLoopback pentru tuneluri, care controlează dacă capătul tunelului este alocat dispozitivului de loopback „lo”;
  • systemd-networkd activează automat stiva IPv6 dacă este blocată prin sysctl disable_ipv6 - IPv6 este activat dacă setările IPv6 (statice sau DHCPv6) sunt definite pentru interfața de rețea, în caz contrar valoarea sysctl deja setată nu se modifică;
  • În fișierele .network, setarea CriticalConnection a fost înlocuită cu opțiunea KeepConfiguration, care oferă mai multe mijloace pentru definirea situațiilor („da”, „static”, „dhcp-on-stop”, „dhcp”) în care ar trebui să systemd-networkd nu atingeți conexiunile existente la pornire;
  • Vulnerabilitatea remediată CVE-2019-15718, cauzat de lipsa controlului accesului la interfața D-Bus systemd-rezolvat. Problema permite unui utilizator neprivilegiat să efectueze operațiuni care sunt disponibile numai pentru administratori, cum ar fi modificarea setărilor DNS și direcționarea interogărilor DNS către un server necinstit;
  • Vulnerabilitatea remediată CVE-2019-9619legat de neactivarea pam_systemd pentru sesiuni non-interactive, ceea ce permite falsificarea sesiunii active.

Sursa: opennet.ru

Adauga un comentariu