Lansarea sistemului de manager systemd 243

După cinci luni de dezvoltare la sfârșitul anului 2019. Pe lângă protocoalele ActivityPub și diaspora, Hubzilla se federează în cadrul rețelei prin propriul său protocol lansarea managerului de sistem systemd 243. Printre noutăți se numără integrarea unui handler pentru lipsa de memorie în sistemul PID 1, suport pentru atașarea propriilor programe BPF pentru filtrarea traficului unit-urilor, numeroase opțiuni noi pentru systemd-networkd, modul de monitorizare a lățimii de bandă a interfețelor de rețea, utilizarea implicită în sistemele pe 64 de biți a numerelor PID pe 22 de biți în loc de 16 biți, trecerea la o ierarhie unificată a cgroups, includerea în systemd-network-generator.

Modificări principale:

  • Handler-ul PID 1 a fost adăugat pentru a recunoaște semnalele generate de kernel referitoare la lipsa de memorie (Out-Of-Memory, OOM) pentru a muta unitățile care au atins limita de consum de memorie într-o stare specială, cu opțiunea de a le termina sau opri forțat;
  • Pentru fișierele unit s-au implementat noi parametri IPIngressFilterPath și
    IPEgressFilterPath, care permit conectarea programelor BPF cu handleri arbitrare pentru filtrarea pachetelor IP intrante și ieșite, generate de procesele asociate cu acest unit. Funcționalitățile propuse permit crearea unui fel de firewall pentru serviciile systemd. Exemplu de scriere a unui filtru de rețea simplu bazat pe BPF;
  • Utilitarul systemctl a adăugat comanda "clean" pentru a elimina cache-ul, fișierele runtime, informațiile despre stare și directoarele cu loguri;
  • În systemd-networkd a fost adăugat suport pentru interfețele de rețea MACsec, nlmon, IPVTAP și Xfrm;
  • În systemd-networkd s-a realizat o configurare separată a stivelor DHCPv4 și DHCPv6 prin secțiunile "[DHCPv4]" și "[DHCPv6]" din fișierul de configurare. A fost adăugată opțiunea RoutesToDNS pentru a adăuga o rută separată către serverul DNS specificat în parametrii obținuți de la serverul DHCP (astfel încât traficul către DNS să fie trimis prin același link ca și ruta principală obținută de la DHCP). Pentru DHCPv4 au fost adăugate noi opțiuni: MaxAttempts - numărul maxim de cereri pentru obținerea unei adrese, BlackList - lista neagră a serverelor DHCP, SendRelease - activarea trimiterii mesajelor DHCP RELEASE la încheierea sesiunii;
  • În utilitarul systemd-analyze au fost adăugate noi comenzi:
    • "systemd-analyze timestamp" - analiză și conversie a timpului;
    • "systemd-analyze timespan" - analiză și conversie a intervalelor de timp;
    • "systemd-analyze condition" - analiză și testare a expresiilor ConditionXYZ;
    • "systemd-analyze exit-status" - analiză și conversie a codurilor de finalizare din numere în denumiri și invers;
    • «systemd-analyze unit-files» — afișează lista tuturor căilor de fișiere pentru unități și aliasuri de unități.
  • Opțiunile SuccessExitStatus, RestartPreventExitStatus și
    RestartForceExitStatus acum suportă nu doar coduri de returnare numerice, ci și identificatorii lor textual (de exemplu „DATAERR”). Puteți consulta lista de mapare a codurilor la identificatori folosind comanda „systemd-analyze exit-status”;
  • Utilitara networkctl a fost extinsă cu comanda „delete” pentru ștergerea dispozitivelor de rețea virtuale, precum și cu opțiunea „—stats” pentru afișarea statisticilor privind dispozitivele;
  • Fișierul de configurare networkd.conf a fost îmbogățit cu setările SpeedMeter și SpeedMeterIntervalSec pentru măsurarea periodică a lățimii de bandă a interfețelor de rețea. Statisticile obținute în urma măsurărilor pot fi consultate în rezultatul comenzii ‘networkctl status’;
  • A fost adăugată o nouă utilitară systemd-network-generator pentru generarea fișierelor
    .network, .netdev și .link pe baza setărilor IP transmise la pornire prin linia de comandă a nucleului Linux în format de configurație Dracut;
  • Valoarea sysctl „kernel.pid_max” pe sistemele de 64 de biți este acum setată implicit la 4194304 (PID-uri de 22 biți în loc de 16 biți), ceea ce reduce probabilitatea coliziunilor la asignarea PID-urilor, crește limita numărului de procese simultan rulate și are un efect pozitiv asupra securității. Modificarea ar putea genera probleme de compatibilitate, dar, în practică, nu s-au raportat astfel de probleme;
  • În mod implicit, în etapa de compilare s-a realizat trecerea la ierarhia unificată cgroups-v2 („-Ddefault-hierarchy=unified”). Anterior, se seta implicit modul hibrid („-Ddefault-hierarchy=hybrid”);
  • Comportamentul filtrului de apeluri de sistem (SystemCallFilter) a fost modificat, care, în cazul apelului la un apel de sistem interzis, acum finalizează întregul proces, și nu doar firele individuale (thread), deoarece finalizarea firelor individuale putea conduce la probleme imprevizibile. Modificările sunt valabile doar în prezența nucleului Linux 4.14+ și libseccomp 2.4.0+;
  • Programelor neprivilegiate li s-a oferit 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 construcție, generarea ghidurilor man a fost dezactivată în mod implicit (pentru a construi documentația completă, trebuie utilizată opțiunea „-Dman=true” sau „-Dhtml=true” pentru ghiduri în format html). Pentru a simplifica vizualizarea documentației, au fost incluse două scripturi build/man/man și build/man/html pentru generarea și previzualizarea ghidurilor dorite;
  • Pentru procesarea numelui de domeniu cu simboluri din alfabetul național, bibliotecă libidn2 este utilizată în mod implicit (pentru a reveni la libidn, trebuie utilizată opțiunea „-Dlibidn=true”);
  • Suportul pentru fișierul executabil /usr/sbin/halt.local, care oferea o funcționalitate care nu a fost suficient de răspândită în distribuții, a fost oprit. Pentru a organiza execuția comenzilor la oprire, se recomandă utilizarea scripturilor în /usr/lib/systemd/system-shutdown/ sau definirea unei noi unități, dependentă de final.target;
  • În stadiul final al opririi, systemd acum crește automat nivelul jurnaldelor în sysctl „kernel.printk”, ceea ce rezolvă problema cu afișarea în jurnal a evenimentelor care au avut loc în etapele târzii ale opririi, când demonii de jurnalizare au fost deja opriți;
  • În journalctl și alte utilitare care afișează jurnale, avertismentele sunt acum evidențiate cu galben, iar înregistrările de audit cu albastru pentru a le evidenția vizual;
  • În variabila de mediu $PATH, calea către bin/ ar trebui să fie acum înaintea căii către sbin/, adică, în cazul în care există fișiere executabile cu același nume în ambele directoare, va fi executat fișierul din bin/;
  • În systemd-logind, a fost asigurată apelarea SetBrightness() pentru a schimba în siguranță luminozitatea ecranului pentru fiecare sesiune;
  • Comenzii „udevadm info” i s-a adăugat un steag „—wait-for-initialization” pentru a aștepta finalizarea inițializării dispozitivului;
  • În procesul de pornire al sistemului, handler-ul PID 1 acum afișează pe ecran numele unităților, în loc de o linie cu descrierea lor. Pentru a reveni la comportamentul anterior, se poate folosi opțiunea StatusUnitFormat din /etc/systemd/system.conf sau parametrul kernel systemd.status_unit_format;
  • În /etc/systemd/system.conf pentru watchdog în PID 1, a fost adăugată opțiunea KExecWatchdogSec, care definește timeout-ul pentru repornirea folosind kexec. Setarea veche
    ShutdownWatchdogSec a fost redenumită în RebootWatchdogSec și definește timeout-ul pentru sarcinile în procesul de oprire sau repornire normală;
  • Pentru servicii, a fost adăugată o nouă opțiune ExecCondition, care permite definirea unor comenzi care vor fi executate înainte de ExecStartPre. În funcție de codul de eroare returnat de comandă, se iau decizii cu privire la continuarea execuției unității — dacă codul este 0, pornirea unității continuă, dacă e între 1 și 254 se încheie în liniște fără a marca o eroare, iar dacă este 255 — se încheie marcând o eroare;
  • A fost adăugat un nou serviciu systemd-pstore.service pentru extragerea datelor din sys/fs/pstore/ și salvarea acestora în /var/lib/pstore pentru analize ulterioare;
  • Utilitarul timedatectl a fost îmbunătățit cu comenzi noi pentru configurarea parametrilor NTP pentru systemd-timesyncd în legătură cu interfețele de rețea;
  • În comanda „localectl list-locales” a fost eliminat afișarea localelor diferite de UTF-8;
  • Au fost ignorate erorile de atribuire a variabilelor în fișierele sysctl.d/, dacă numele variabilei începe cu simbolul „-„;
  • Serviciu systemd-random-seed.service acum răspunde complet de inițializarea piscinei de entropie a generatorului de numere pseudo-aleatorii al nucleului Linux. Serviciile care necesită un /dev/urandom corect inițializat trebuie să fie pornite după systemd-random-seed.service;
  • În bootloader-ul systemd-boot a fost asigurată o opțiune opțională pentru menținerea seed-file cu o succesiune aleatorie în partiția EFI System Partition (ESP);
  • În utilitarul bootctl au fost adăugate comenzi noi „bootctl random-seed” pentru generarea unui seed-file în ESP și „bootctl is-installed” pentru verificarea instalării bootloader-ului systemd-boot. De asemenea, bootctl a fost configurat să emită avertizări legate de setările incorecte ale intrărilor de boot (de exemplu, atunci când imaginea nucleului este ștearsă, dar intrarea pentru boot a rămas);
  • A fost asigurat un select automatic al partiției de swap atunci când sistemul intră în modul de repaus. Partiția este selectată în funcție de prioritatea setată pentru aceasta, iar în cazul unor priorități egale — de dimensiunea spațiului liber;
  • În /etc/crypttab a fost adăugată opțiunea keyfile-timeout pentru a specifica timpul de așteptare al dispozitivului cu cheia de criptare înainte de a solicita parola pentru acces la partiția criptată;
  • A fost adăugată opțiunea IOWeight pentru a stabili greutatea I/O pentru planificatorul BFQ;
  • În systemd-resolved a fost adăugat modul strict (‘strict’) pentru DNS-over-TLS și a fost implementată posibilitatea de a memora doar răspunsurile DNS pozitive („Cache no-negative” în resolved.conf);
  • Pentru VXLAN în systemd-networkd a fost adăugată opțiunea GenericProtocolExtension pentru activarea extensiilor protocolului VXLAN. Pentru VXLAN și GENEVE a fost adăugată opțiunea IPDoNotFragment pentru a seta flagul de interzicere a fragmentării pentru pachetele de ieșire;
  • În systemd-networkd, în secțiunea „[Route]”, a apărut opțiunea FastOpenNoCookie pentru activarea mecanismului de deschidere rapidă a conexiunilor TCP (TFO — TCP Fast Open, RFC 7413) asociat cu rute specifice, precum și opțiunea TTLPropagate pentru configurarea TTL LSP (Label Switched Path). În opțiunea „Type” este asigurată suportul pentru modurile de rutare local, broadcast, anycast, multicast, any și xresolve;
  • În systemd-networkd, în secțiunea „[Network]”, a fost propusă opțiunea DefaultRouteOnDevice pentru configurarea automată a rutei implicite pentru un dispozitiv de rețea specific;
  • În systemd-networkd, pentru punțile de rețea au fost adăugate opțiunile ProxyARP și
    ProxyARPWifi pentru configurarea comportamentului proxy ARP, MulticastRouter pentru setarea parametrilor de rutare în modul multicast, MulticastIGMPVersion pentru schimbarea versiunii IGMP (Internet Group Management Protocol) pentru multicast;
  • În systemd-networkd, pentru tunelurile FooOverUDP au fost adăugate opțiunile Local, Peer și PeerPort pentru configurarea adreselor IP ale părților locale și externe, precum și a numărului portului de rețea. Pentru tunelurile TUN a fost adăugată opțiunea VnetHeader pentru configurarea suportului GSO (Generic Segment Offload);
  • În systemd-networkd, în fișierele .network și .link, în secțiunea [Match] a apărut opțiunea Property, care permite identificarea dispozitivelor după proprietăți specifice în udev;
  • În systemd-networkd, pentru tuneluri a fost adăugată opțiunea AssignToLoopback, care controlează asocierea capătului tunelului cu dispozitivul loopback „lo”;
  • În systemd-networkd a fost automatizată activarea stivei IPv6 în cazul blocării acesteia prin sysctl disable_ipv6 — IPv6 este activat dacă pentru interfața de rețea sunt definite setări IPv6 (statice sau DHCPv6); în caz contrar, valoarea deja setată a sysctl rămâne neschimbată;
  • În fișierele .network, setarea CriticalConnection a fost înlocuită cu opțiunea KeepConfiguration, oferind mai multe instrumente pentru definirea situațiilor („yes”, „static”, „dhcp-on-stop”, „dhcp”) în care systemd-networkd nu ar trebui să intervină asupra conexiunilor deja existente la pornire;
  • A fost remediată vulnerabilitatea CVE-2019-15718, cauzată de lipsa controlului accesului la interfața D-Bus a systemd-resolved. Problema permite unui utilizator fără privilegii să efectueze operații accesibile doar administratorilor, de exemplu, se pot modifica setările DNS și direcționa cererile DNS către un server fals;
  • A fost remediată vulnerabilitatea CVE-2019-9619, legată de neactivarea pam_systemd pentru sesiuni neinteractive, care permite organizarea spoofing-ului sesiunii active.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster