Vydanie FreeBSD 13.2 s podporou Netlink a WireGuard

Po 11 mesiacoch vývoja bol vydaný FreeBSD 13.2. Inštalačné obrazy boli vytvorené pre architektúry amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 a riscv64. Ďalej sú k dispozícii zostavy pre virtualizačné systémy (QCOW2, VHD, VMDK, raw) a cloudové prostredia Amazon EC2, Google Compute Engine a Vagrant.

Kľúčové zmeny:

  • Bola zavedená možnosť vytvárať snímky súborových systémov UFS a FFS, na ktorých je zapnuté žurnálovanie (soft updates). Tiež bola pridaná podpora na pozadí pre ukladanie dumpov (spustenie dump s príznakom „-L“) so sú obsahom pripojených súborových systémov UFS pri zapnutom žurnálovaní. Z toho, čo nie je dostupné pri použití žurnálovania, zostáva pozadie vykonávania kontroly integrity pomocou nástroja fsck.
  • Do hlavného súboru bol prijatý fungujúci na úrovni jadra ovládač wg s realizáciou sieťového rozhrania pre VPN WireGuard. Na použitie potrebných kryptografických algoritmov ovládača bolo rozšírené API kryptosub systému jadra FreeBSD, do ktorého bola pridaná obálka umožňujúca využívať prostredníctvom štandardného kryptografického API algoritmy, ktoré nie sú podporované vo FreeBSD z knižnice libsodium. Počas vývoja bola taktiež vykonaná optimalizácia na rovnomerné vyváženie pridelenia úloh šifrovania a dešifrovania paketov na jadrá CPU, čo umožnilo znížiť režijné náklady pri spracovaní paketov WireGuard.

    Predchádzajúci pokus o integráciu WireGuard do FreeBSD bol podniknutý v roku 2020, avšak skončil škandálom, v dôsledku ktorého bol už pridaný kód odstránený z dôvodu nízkej kvality, neporiadnej práce s vyrovnávacou pamäťou, použitia zátkov namiesto kontrol, neúplnej implementácie protokolu a porušenia licencie GPL. Nová implementácia bola spoločne pripravená hlavnými tímami vývojárov FreeBSD a WireGuard za účasti Jasona Donenfelda, autora VPN WireGuard, a Johna Boldwina, známeho vývojára FreeBSD. Pred prijatím nového kódu sa v spolupráci s organizáciou FreeBSD Foundation uskutočnilo komplexné hodnotenie zmien.

  • Implementovaná podpora komunikačného protokolu Netlink (RFC 3549), používaného v Linuxe na organizovanie interakcie jadra s procesmi v užívateľskom priestore. Projekt je obmedzený na podporu rodiny operácií NETLINK_ROUTE na správu stavu sieťovej subsystémy v jadre, čo umožňuje používanie nástroja ip z balíka iproute2 pre správu sieťových rozhraní a nastavenie IP adresy, konfiguráciu smerovania a manipuláciu s objektmi nexthop, ktoré uchovávajú údaje o stave potrebné na prenášanie пакета do žiadaného cieľa.
  • Pre všetky spustiteľné súbory základného systému na 64-bitových platformách je predvolená aktivácia randomizácie adresného priestoru (ASLR, Address Space Layout Randomization). Na selektívne vypnutie ASLR je možné použiť príkazy „proccontrol -m aslr -s disable“ alebo „elfctl -e +noaslr“.
  • V ipfw sa na vyhľadávanie MAC adries využívajú základné tabuľky (Radix table), čo umožňuje vytváranie tabuliek s MAC adresami a ich využitie na filtrovanie prevádzky. Napríklad: ipfw table 1 create type mac ipfw table 1 add 11:22:33:44:55:66/48 ipfw add skipto tablearg src-mac ‘table(1)’ ipfw add deny src-mac ‘table(1, 100)’ ipfw add deny lookup dst-mac 1
  • Pridané a dostupné na stiahnutie prostredníctvom loader.conf moduly jadra dpdk_lpm4 a dpdk_lpm6 s implementáciou algoritmu vyhľadávania ciest DIR-24-8 pre IPv4/IPv6, ktorý umožňuje optimalizovať funkcie smerovania pre hostiteľov s veľmi veľkými smerovacími tabuľkami (v testoch sa pozoruje nárast rýchlosti na úrovni 25%). Na konfiguráciu modulov môže byť použitý štandardný nástroj route (bola pridaná možnosť FIB_ALGO).
  • Implementácia súborového systému ZFS bola aktualizovaná na vydanie OpenZFS 2.1.9. V štartovacom skripte zfskeys je zabezpečené automatické načítanie kľúčov uložených v súborovom systéme ZFS. Pridaný nový RC-skript zpoolreguid na priradenie identifikátora GUID jednému alebo viacerým zpool (napríklad užitočné pre prostredia virtualizácie so zdieľanými dátami).
  • V hypervízore Bhyve a module vmm bola implementovaná podpora pripojenia k hostiteľskému systému viac ako 15 virtuálnych CPU (regulované prostredníctvom sysctl hw.vmm.maxcpu). V nástroji bhyve bola implementovaná emulácia zariadenia virtio-input, pomocou ktorého je možné vkladať vstupné udalosti z klávesnice a myši do hostiteľského systému.
  • V KTLS, implementácii protokolu TLS, ktorý pracuje na úrovni jadra FreeBSD, bola pridaná podpora hardvérovej akcelerácie TLS 1.3, ktorá prenáša niektoré operácie súvisiace s spracovaním zašifrovaných prichádzajúcich paketov na sieťovú kartu. Predtým bola takáto možnosť dostupná pre TLS 1.1 a TLS 1.2.
  • V spúšťacom skripte growfs pri rozšírení koreňového FS sa zabezpečil prídavok swapového oddielu, ak tento oddiel pôvodne neexistoval (napríklad užitočné pri inštalácii na SD kartu hotového systémového obrazu). Pre správu veľkosti swapu bol do rc.conf pridaný nový parameter growfs_swap_size.
  • V spúšťacom skripte hostid sa zabezpečila generácia náhodného UUID v prípade, že súbor /etc/hostid chýba a nie je možné získať UUID z hardvéru. Taktiež bol pridaný súbor /etc/machine-id s kompaktne zobrazeným identifikátorom hostiteľa (bez pomlčiek).
  • Do rc.conf boli pridané premenné defaultrouter_fibN a ipv6_defaultrouter_fibN, cez ktoré je možné pridať predvolené trasy do FIB tabuliek, ktoré nie sú primárne.
  • Do knižnice libmd bola pridaná podpora hashov SHA-512/224.
  • V knižnici pthread bola implementovaná podpora semantiky funkcií používaných v Linuxe.
  • Do kdump bola pridaná podpora dekódovania systémových volaní Linuxu. Do kdump a sysdecode bola pridaná podpora sledovania systémových volaní v štýle Linuxu.
  • Vo utility killall sa objavila možnosť posielania signálu procesom, ktoré sú priradené k určitému terminálu (napríklad "killall -t pts/1").
  • Bola pridaná utility nproc na zobrazenie počtu dostupných výpočtových blokov pre aktuálny proces.
  • Vo utility pciconf bola pridaná podpora dekódovania parametrov ACS (Access Control Services).
  • Do jadra bola pridaná konfigurácia SPLIT_KERNEL_DEBUG, ktorá umožňuje ukladať ladacie informácie pre jadro a moduly jadra do samostatných súborov.
  • V ABI linux takmer dokončila implementáciu podpory mechanizmu vDSO (virtual dynamic shared objects), ktorý poskytuje obmedzenú sadu systémových volaní dostupných v užívateľskom priestore bez prechodu kontextu. ABI linux na systémoch ARM64 bol dotiahnutý do parity s implementáciou pre architektúru AMD64.
  • Zlepšená podpora hardvéru. Pridaná podpora monitorovania výkonu (hwpmc) pre CPU Intel Alder Lake. Aktualizovaný ovládač iwlwifi pre bezdrôtové karty Intel s podporou nových čipov a štandardu 802.11ac. Pridaný ovládač rtw88 pre bezdrôtové karty Realtek s PCI rozhraním. Rozšírené možnosti vrstvy linuxkpi pre používanie ovládačov Linux vo FreeBSD.
  • Knižnica OpenSSL bola aktualizovaná na verziu 1.1.1t, LLVM/Clang na verziu 14.0.5, a SSH server a klient boli aktualizované na OpenSSH 9.2p1 (v predchádzajúcej verzii bol použitý OpenSSH 8.8p1). Taktiež boli aktualizované verzie bc 6.2.4, expat 2.5.0, file 5.43, less 608, libarchive 3.6.2, sendmail 8.17.1, sqlite 3.40.1, unbound 1.17.1, zlib 1.2.13.

Ďalšie oznámenie o zaradení do kategórie zastaraných a o odstránení, počnúc vetvou FreeBSD 14.0, jednorazových hesiel OPIE, ovládačov ce a cp, ovládačov pre karty s ISA rozhraním, nástrojov mergemaster a minigzip, komponentov ATM v netgraph (NgATM), pozadia procesu telnetd a triedy VINUM v geom.

Zdroj: opennet.ru

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster