Izidža FreeBSD 13.2 s podrškom za Netlink i WireGuard

Po 11 mesecih razvoja je objavljen izid FreeBSD 13.2. Namestitvene slike so pripravljene za arhitekture amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 in riscv64. Dodatno so pripravljeni paketi za virtualizacijske sisteme (QCOW2, VHD, VMDK, raw) in oblačna okolja Amazon EC2, Google Compute Engine in Vagrant.

Ključne spremembe:

  • Uresničena je možnost ustvarjanja instantnih posnetkov datotečnih sistemov UFS in FFS, na katerih je omogočeno beleženje (soft updates). Dodana je tudi podpora za ozadje shranjevanja dumpov (zagon dump s zastavico "-L") s vsebino pritrjenih datotečnih sistemov UFS ob omogočenem beleženju. Med funkcijami, ki niso na voljo pri uporabi beleženja, ostaja ozadnje izvajanje preverjanja celovitosti s pomočjo orodja fsck.
  • V glavni sklop je bil sprejet delujejoči jedrni gonilnik wg z implementacijo omrežnega vmesnika za VPN WireGuard. Za uporabo potrebnih gonilniških kriptografskih algoritmov je bilo razširjeno API kriptosistema jedra FreeBSD, v katerega je bila dodana ovitka, ki omogoča uporabo skozi standardni kripto-API algoritmov, ki jih FreeBSD ne podporo, iz knjižnice libsodium. V procesu razvoja je bila opravljena tudi optimizacija za enakomerno uravnoteženje naloga šifriranja in dešifriranja paketov na jedra CPU, kar je omogočilo zmanjšanje stroškov pri obdelavi paketov WireGuard.

    Prejšnji poskus vključitve WireGuard v FreeBSD je bil opravljen leta 2020, vendar je končal s škandalom, zaradi katerega je bil že dodan koda odstranjena zaradi slabe kakovosti, neurejenega dela z bufferji, uporabe nadomestkov namesto preverjanj, nepopolne implementacije protokola in kršitve licence GPL. Nova implementacija je bila skupaj pripravljena s strani glavnih skupin razvijalcev FreeBSD in WireGuard ob sodelovanju Jasona Donenfeld (avtorja VPN WireGuard) in John H. Baldwin (znanega razvijalca FreeBSD). Pred sprejetjem nove kode je bilo v sodelovanju z organizacijo FreeBSD Foundation opravljeno celovito recenziranje sprememb.

  • Implementirana je podrška za komunikacijski protokol Netlink (RFC 3549), koji se koristi u Linuxu za organizaciju interakcije jezgre s procesima u korisničkom prostoru. Projekt se ograničava na podršku za obitelj operacija NETLINK_ROUTE za upravljanje stanjem mrežnog podsustava u jezgri, što omogućava korištenje Linux alata ip iz paketa iproute2 za upravljanje mrežnim sučeljima, postavljanje IP naslovov, podešavanje usmjeravanja i manipulaciju objektima nexthop, koji sadrže podatke o stanju korištenom za prijenos paketa na željenu odredišnu točku.
  • Za sve izvršne datoteke osnovnog sustava na 64-bitnim platformama uključena je po defaultu randomizacija adresnog prostora (ASLR, Address Space Layout Randomization). Za selektivno isključivanje ASLR-a mogu se koristiti naredbe „proccontrol -m aslr -s disable“ ili „elfctl -e +noaslr“.
  • U ipfw za pretraživanje MAC adresa koriste se osnovne tablice (Radix table), što omogućava stvaranje tablica s MAC adresama i njihovu upotrebu za filtriranje prometa. Na primjer: 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
  • Dodani su i dostupni za preuzimanje putem loader.conf moduli jezgre dpdk_lpm4 i dpdk_lpm6 s implementacijom algoritma pretraživanja ruta DIR-24-8 za IPv4/IPv6, koji omogućuje optimizaciju funkcija usmjeravanja za hostove s vrlo velikim tablicama usmjeravanja (u testovima se bilježi povećanje brzine od 25%). Za konfiguraciju modula može se koristiti standardni alat route (dodana je opcija FIB_ALGO).
  • Implementacija datotečnog sustava ZFS ažurirana je na izdanje OpenZFS 2.1.9. U početnom skriptu zfskeys osigurana je automatska učitava ključevima pohranjenim u FС ZFS. Dodan je novi RC-skriptu zpoolreguid za dodjelu identifikatora GUID jednom ili više zpool-a (npr. korisno za okruženja virtualizacije s zajedničkim podacima).
  • U hipervizoru Bhyve i modulu vmm implementirana je podrška za povezivanje s virtuelnim sustavom više od 15 virtualnih CPU-a (modificira se preko sysctl hw.vmm.maxcpu). U alatu bhyve implementirana je emulacija uređaja virtio-input, pomoću kojeg je moguće unositi događaje sa tipkovnice i miša u gostujući sustav.
  • V KTLS, implementaciji protokola TLS, ki deluje na ravni jedra FreeBSD, je dodana podpora za strojno pospeševanje TLS 1.3 z izdajo nekaterih operacij, povezanih z obdelavo šifriranih vhodnih paketov, na omrežno kartico. Prej je bila taka možnost na voljo za TLS 1.1 in TLS 1.2.
  • V začetnem skriptu growfs pri širjenju korenske FS je zagotovljeno dodajanje particije za izmenjevanje, če ta particija sprva ni obstajala (na primer, koristno pri namestitvi pripravljene sistemske slike na SD-kartico). Za upravljanje z velikostjo particije za izmenjevanje je v rc.conf dodan nov parameter growfs_swap_size.
  • V začetnem skriptu hostid je omogočena generacija naključnega UUID v primeru, da datoteka /etc/hostid ne obstaja in da ni mogoče pridobiti UUID iz strojne opreme. Dodana je tudi datoteka /etc/machine-id s kompaktno predstavitvijo identifikatorja gostitelja (brez vezajev).
  • V rc.conf so dodane spremenljivke defaultrouter_fibN in ipv6_defaultrouter_fibN, prek katerih lahko dodate privzete poti v FIB-tabele, različne od primarne.
  • V knjižnico libmd je dodana podpora za hashe SHA-512/224.
  • V knjižnici pthread je bila izvedena podpora za semantiko funkcij, uporabljenih v Linuxu.
  • V kdump je dodana podpora za dekodiranje sistemskih klicev Linux. V kdump in sysdecode je dodana podpora za sledenje sistemskim klicem v slogu Linux.
  • V orodju killall je postala mogoča pošiljanje signala procesom, vezanim na določen terminal (na primer, 'killall -t pts/1').
  • Dodano je orodje nproc za izpis števila razpoložljivih procesorskih blokov trenutnemu procesu.
  • V orodju pciconf je dodana podpora za dekodiranje parametrov ACS (Access Control Services).
  • V jedro je dodana nastavitev SPLIT_KERNEL_DEBUG, ki omogoča shranjevanje odpravljanja napak jedra in modulov jedra v ločene datoteke.
  • V ABI linux je skoraj zaključena implementacija podpore mehanizmu vDSO (virtual dynamic shared objects), ki zagotavlja omejeno število sistemskih klicev, dostopnih v uporabniškem prostoru brez preklopa konteksta. ABI linux na sistemih ARM64 je dosegel pariteto z implementacijo za arhitekturo AMD64.
  • Izboljšana podpora za strojno opremo. Dodana je podpora za monitoriranje zmogljivosti (hwpmc) za procesorje Intel Alder Lake. Posodobljen je gonilnik iwlwifi za brezžične kartice Intel s podporo za nove čipe in standard 802.11ac. Dodan je gonilnik rtw88 za brezžične kartice Realtek s PCI vmesnikom. Razširjene so zmožnosti vmesnika linuxkpi za uporabo v FreeBSD gonilnikih Linux.
  • Knjižnica OpenSSL je posodobljena na različico 1.1.1t, LLVM/C++ na različico 14.0.5, SSH strežnik in odjemalec pa sta posodobljena na OpenSSH 9.2p1 (prejšnja različica je bila OpenSSH 8.8p1). Prav tako so posodobljene različice 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.

Dodatno je bilo napovedano umik nekaterih komponent iz aktivne uporabe in njihova odstranitev s FreeBSD 14.0, vključno z enkratnimi gesli OPIE, gonilniki ce in cp, gonilniki za kartice s ISA vmesnikom, orodji mergemaster in minigzip, komponentami ATM v netgraph (NgATM), ozadjnim procesom telnetd in razredom VINUM v geom.

Izvor: opennet.ru

Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki 🔥 Kupite zanesljivo gostovanje za spletne strani z zaščito pred DDoS, VPS VDS strežniki | ProHoster