FreeBSD 13.2 izdanje sa podrškom za Netlink i WireGuard

Nakon 11 mjeseci razvoja, izašao je FreeBSD 13.2. Slike instalacije se generišu za arhitekture amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 i riscv64. Dodatno, pripremljeni su sklopovi za sisteme virtuelizacije (QCOW2, VHD, VMDK, raw) i cloud okruženja Amazon EC2, Google Compute Engine i Vagrant.

Ključne promjene:

  • Implementirana je mogućnost kreiranja snimaka UFS i FFS sistema datoteka sa omogućenim logovanjem (soft updates). Takođe je dodata podrška za pozadinsko čuvanje dumpova (pokretanje dumpa sa oznakom “-L”) sa sadržajem montiranih UFS sistema datoteka kada je omogućeno vođenje dnevnika. Jedna od funkcija koja nije dostupna kada se koristi evidentiranje je pozadinsko izvršavanje provjera integriteta pomoću fsck uslužnog programa.
  • Osnovna kompozicija uključuje wg drajver koji radi na nivou kernela sa implementacijom mrežnog interfejsa za VPN WireGuard. Za korištenje kriptografskih algoritama koje zahtijeva drajver, proširen je API kripto-podsistema FreeBSD kernela, kojem je dodat pojas koji omogućava korištenje algoritama iz biblioteke libsodium koji nisu podržani u FreeBSD-u kroz standardni kripto-API . Tokom procesa razvoja, izvršena je i optimizacija kako bi se ravnomjerno izbalansiralo vezivanje zadataka enkripcije i dešifriranja paketa za CPU jezgre, što je smanjilo troškove prilikom obrade WireGuard paketa.

    Posljednji pokušaj uključivanja WireGuard-a u FreeBSD napravljen je 2020. godine, ali je završio skandalom, uslijed čega je već dodani kod uklonjen zbog niske kvalitete, nemarnog rada sa baferima, korištenja stubova umjesto provjera, nepotpune implementacije protokola i kršenje GPL licence. Novu implementaciju zajednički su pripremili glavni razvojni timovi FreeBSD-a i WireGuarda, uz doprinose Jasona A. Donenfelda, autora VPN WireGuard-a, i Johna H. Baldwina, poznatog FreeBSD programera. Potpuni pregled izmjena obavljen je uz podršku FreeBSD fondacije prije nego što je novi kod prihvaćen.

  • Implementirana je podrška za Netlink komunikacioni protokol (RFC 3549), koji se koristi u Linuxu za organizaciju interakcije kernela sa procesima u korisničkom prostoru. Projekat je ograničen na podršku NETLINK_ROUTE familije operacija za upravljanje stanjem mrežnog podsistema u kernelu, što omogućava FreeBSD-u da koristi Linux ip uslužni program iz iproute2 paketa za upravljanje mrežnim sučeljima, postavljanje IP adresa, konfiguraciju rutiranja i manipulaciju nexthop-om objekti koji pohranjuju podatke o stanju koji se koriste za prijenos paketa do željenog odredišta.
  • Svi izvršni fajlovi osnovnog sistema na 64-bitnim platformama imaju podrazumevano omogućenu Randomizaciju rasporeda adresnog prostora (ASLR). Da biste selektivno onemogućili ASLR, možete koristiti naredbe “proccontrol -m aslr -s disable” ili “elfctl -e +noaslr”.
  • U ipfw-u, radix tabele se koriste za traženje MAC adresa, što vam omogućava da kreirate tabele sa MAC adresama i koristite ih za filtriranje saobraćaja. Na primjer: ipfw tablica 1 kreirajte tip mac ipfw tablica 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
  • Moduli kernela dpdk_lpm4 i dpdk_lpm6 su dodani i dostupni su za učitavanje putem loader.conf sa implementacijom algoritma za pretragu ruta DIR-24-8 za IPv4/IPv6, koji vam omogućava da optimizirate funkcije rutiranja za hostove sa veoma velikim tabelama rutiranja ( u testovima je uočeno povećanje brzine od 25 %). Za konfiguriranje modula može se koristiti standardni uslužni program rute (dodata je opcija FIB_ALGO).
  • Implementacija ZFS sistema datoteka je ažurirana kako bi se izdala OpenZFS 2.1.9. Zfskeys skripta za pokretanje omogućava automatsko učitavanje ključeva pohranjenih u ZFS sistemu datoteka. Dodata nova RC skripta zpoolreguid za dodjelu GUID-a jednom ili više zpool-ova (npr. korisno za okruženja virtualizacije dijeljenih podataka).
  • Bhyve hipervizor i vmm modul podržavaju priključivanje više od 15 virtuelnih CPU-a na sistem za goste (regulisano preko sysctl hw.vmm.maxcpu). Uslužni program bhyve implementira emulaciju virtio-input uređaja, s kojim možete zamijeniti događaje unosa tastature i miša u sistem za goste.
  • U KTLS, implementaciji TLS protokola koji radi na nivou FreeBSD kernela, dodata je podrška za hardversko ubrzanje TLS-a 1.3 oslobađanjem nekih operacija koje se odnose na obradu šifrovanih dolaznih paketa na mrežnu karticu. Ranije je slična funkcija bila dostupna za TLS 1.1 i TLS 1.2.
  • U startup skriptu growfs, prilikom proširenja root sistema datoteka, moguće je dodati swap particiju ako je takva particija inicijalno nedostajala (na primjer, korisno kada instalirate gotovu sliku sistema na SD karticu). Za kontrolu veličine zamjene, novi parametar growfs_swap_size je dodan u rc.conf.
  • Skripta za pokretanje hostid-a osigurava da se generira nasumični UUID ako datoteka /etc/hostid nedostaje i UUID se ne može dobiti sa hardvera. Takođe je dodat /etc/machine-id fajl sa kompaktnim prikazom ID-a hosta (bez crtica).
  • Promenljive defaultrouter_fibN i ipv6_defaultrouter_fibN su dodane u rc.conf, preko kojih možete dodati podrazumevane rute u FIB tabele osim primarne.
  • Podrška za SHA-512/224 hešove dodata je biblioteci libmd.
  • Biblioteka pthread pruža podršku za semantiku funkcija koje se koriste u Linuxu.
  • Dodata podrška za dekodiranje Linux sistemskih poziva u kdump. Dodata podrška za praćenje sistemskih poziva u Linux stilu u kdump i sysdecode.
  • Uslužni program killall sada ima mogućnost slanja signala procesima vezanim za određeni terminal (na primjer, “killall -t pts/1”).
  • Dodat je nproc uslužni program za prikaz broja računskih blokova dostupnih trenutnom procesu.
  • Podrška za dekodiranje parametara ACS (Access Control Services) je dodata pciconf uslužnom programu.
  • Postavka SPLIT_KERNEL_DEBUG je dodana kernelu, što vam omogućava da sačuvate informacije o otklanjanju grešaka za kernel i module kernela u odvojenim datotekama.
  • Linux ABI je skoro kompletan s podrškom za vDSO (virtualni dinamički dijeljeni objekti) mehanizam, koji pruža ograničen skup sistemskih poziva dostupnih u korisničkom prostoru bez promjene konteksta. Linux ABI na ARM64 sistemima je doveden u paritet sa implementacijom za AMD64 arhitekturu.
  • Poboljšana hardverska podrška. Dodata podrška za praćenje performansi (hwpmc) za Intel Alder Lake CPU. Iwlwifi drajver za Intel bežične kartice je ažuriran podrškom za nove čipove i standard 802.11ac. Dodat rtw88 drajver za Realtek bežične kartice sa PCI interfejsom. Mogućnosti linuxkpi sloja su proširene za upotrebu sa Linux drajverima u FreeBSD-u.
  • OpenSSL biblioteka je ažurirana na verziju 1.1.1t, LLVM/Slang na verziju 14.0.5, a SSH server i klijent su ažurirani na OpenSSH 9.2p1 (prethodna verzija je koristila OpenSSH 8.8p1). Takođe su ažurirane verzije bc 6.2.4, expat 2.5.0, fajl 5.43, manje 608, libarchive 3.6.2, sendmail 8.17.1, sqlite 3.40.1, unbound 1.17.1, zlib 1.2.13.

Dodatno, objavljeno je da će, počevši od grane FreeBSD 14.0, jednokratne lozinke OPIE, ce i cp drajveri, drajveri za ISA kartice, uslužni programi za mergemaster i minigzip, ATM komponente u netgraph-u (NgATM), pozadinski proces telnetd i VINUM klasa u geom.

izvor: opennet.ru

Dodajte komentar