Rilascio di FreeBSD 13.2 con supporto per Netlink e WireGuard

Dopo 11 mesi di sviluppo è stata pubblicata la release FreeBSD 13.2. Le immagini di installazione sono state create per le architetture amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 e riscv64. Sono inoltre disponibili build per sistemi di virtualizzazione (QCOW2, VHD, VMDK, raw) e ambienti cloud Amazon EC2, Google Compute Engine e Vagrant.

Principali modifiche:

  • È stata implementata la possibilità di creare snapshot dei file system UFS e FFS, in cui è abilitato il journaling (soft updates). È stata inoltre aggiunta la supporto per il salvataggio in background dei dump (esecuzione di dump con il flag «-L») con il contenuto dei file system UFS montati quando il journaling è abilitato. Tra le funzionalità non disponibili con l'uso del journaling, rimane l'esecuzione in background del controllo dell'integrità utilizzando l'utility fsck.
  • È stato accettato nel core il driver wg funzionante a livello di kernel con implementazione dell'interfaccia di rete per VPN WireGuard. Per utilizzare gli algoritmi crittografici necessari per il driver, è stata effettuata un'estensione dell'API della sottosistema crittografico del kernel FreeBSD, alla quale è stata aggiunta un'interfaccia che consente di utilizzare algoritmi non supportati in FreeBSD dalla libreria libsodium tramite l'API crittografico standard. Durante lo sviluppo, è stata effettuata anche un'ottimizzazione per un bilanciamento uniforme del carico per la crittografia e la decrittografia dei pacchetti sui core della CPU, riducendo così i costi di elaborazione dei pacchetti WireGuard.

    Il precedente tentativo di integrare WireGuard in FreeBSD è stato effettuato nel 2020, ma si è concluso in uno scandalo che ha portato alla rimozione del codice già inserito a causa della scarsa qualità, della gestione negligente dei buffer, dell'uso di stub invece di verifiche, dell'implementazione incompleta del protocollo e della violazione della licenza GPL. La nuova implementazione è stata preparata congiuntamente dai principali team di sviluppo di FreeBSD e WireGuard, con la partecipazione di Jason A. Donenfeld, autore della VPN WireGuard, e John H. Baldwin, noto sviluppatore di FreeBSD. Prima dell'adozione del nuovo codice, è stata condotta una revisione completa delle modifiche, supportata dall'organizzazione FreeBSD Foundation.

  • È stata implementata la supporto per il protocollo di comunicazione Netlink (RFC 3549), utilizzato in Linux per organizzare l'interazione tra il kernel e i processi nello spazio utente. Il progetto si limita al supporto del gruppo di operazioni NETLINK_ROUTE per gestire lo stato della sottosistema di rete nel kernel, il che consente di utilizzare in FreeBSD l'utilità Linux ip dal pacchetto iproute2 per gestire le interfacce di rete. IP addresses, impostazioni di instradamento e manipolazione degli oggetti nexthop, che memorizzano informazioni sullo stato, utilizzate per inviare il pacchetto alla destinazione desiderata.
  • Per tutti i file eseguibili del sistema di base su piattaforme a 64 bit, la randomizzazione dello spazio degli indirizzi (ASLR, Address Space Layout Randomization) è abilitata per impostazione predefinita. Per disattivare l'ASLR in modo selettivo, è possibile utilizzare i comandi «proccontrol -m aslr -s disable» o «elfctl -e +noaslr».
  • In ipfw, per la ricerca degli indirizzi MAC vengono utilizzate tabelle Radix, che consentono di creare tabelle con indirizzi MAC e utilizzarle per filtrare il traffico. Ad esempio: 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
  • I moduli del kernel dpdk_lpm4 e dpdk_lpm6 sono stati aggiunti e sono disponibili per il download tramite loader.conf, implementando l'algoritmo di ricerca delle rotte DIR-24-8 per IPv4/IPv6, che consente di ottimizzare le funzioni di instradamento per host con tabelle di instradamento molto grandi (nei test si osserva un incremento di velocità del 25%). Per configurare i moduli può essere utilizzato lo strumento di sistema route (è stata aggiunta l'opzione FIB_ALGO).
  • L'implementazione del file system ZFS è aggiornata alla versione OpenZFS 2.1.9. Nello script di avvio zfskeys è garantito il caricamento automatico delle chiavi memorizzate nel file system ZFS. È stato aggiunto un nuovo script RC zpoolreguid per assegnare un identificatore GUID a uno o più zpool (utile, ad esempio, per ambienti di virtualizzazione con dati condivisi).
  • Nel hypervisor Bhyve e nel modulo vmm è stata implementata la supporto per il collegamento a un sistema ospite di oltre 15 CPU virtuali (gestito tramite sysctl hw.vmm.maxcpu). Nello strumento bhyve è stata implementata l'emulazione del dispositivo virtio-input, che consente di inserire eventi di input da tastiera e mouse nel sistema ospite.
  • In KTLS, l'implementazione del protocollo TLS che opera a livello del kernel di FreeBSD, è stata aggiunta la supporto per l'accelerazione hardware di TLS 1.3 tramite lo spostamento su scheda di rete di alcune operazioni legate all'elaborazione dei pacchetti crittografati in arrivo. In precedenza, questa funzionalità era disponibile per TLS 1.1 e TLS 1.2.
  • Nello script di avvio growfs, durante l'espansione del filesystem radice, è stata implementata l'aggiunta di una partizione di swap se questa era inizialmente assente (ad esempio, utile durante l'installazione di un'immagine di sistema pronta su una scheda SD). È stato aggiunto un nuovo parametro growfs_swap_size in rc.conf per gestire le dimensioni dello swap.
  • Nello script di avvio hostid, è stata implementata la generazione di un UUID casuale in caso di assenza del file /etc/hostid e impossibilità di ottenere l'UUID dall'hardware. È stato inoltre aggiunto il file /etc/machine-id con una rappresentazione compatta dell'identificatore dell'host (senza trattini).
  • In rc.conf sono state aggiunte le variabili defaultrouter_fibN e ipv6_defaultrouter_fibN, attraverso le quali è possibile aggiungere rotte predefinite a tabelle FIB diverse da quella primaria.
  • Nella libreria libmd è stato aggiunto il supporto per gli hash SHA-512/224.
  • Nella libreria pthread è stato implementato il supporto per la semantica delle funzioni utilizzate in Linux.
  • In kdump è stato aggiunto il supporto per la decodifica delle chiamate di sistema Linux. In kdump e sysdecode è stato aggiunto il supporto per il tracciamento delle chiamate di sistema in stile Linux.
  • Nell'utilità killall è stata introdotta la possibilità di inviare segnali ai processi legati a un terminal specifico (ad esempio, 'killall -t pts/1').
  • È stata aggiunta l'utilità nproc per visualizzare il numero di blocchi di calcolo attualmente disponibili per il processo.
  • L'utilità pciconf ha aggiunto il supporto per la decodifica dei parametri ACS (Access Control Services).
  • Nel kernel è stata aggiunta l'impostazione SPLIT_KERNEL_DEBUG, che consente di salvare le informazioni di debug per il kernel e i moduli del kernel in file separati.
  • Nell'ABI linux è quasi completata l'implementazione del meccanismo vDSO (virtual dynamic shared objects), che fornisce un insieme limitato di chiamate di sistema disponibili nello spazio utente senza commutazione del contesto. L'ABI linux nei sistemi ARM64 è stato portato a parità con l'implementazione per l'architettura AMD64.
  • Migliorato il supporto hardware. Aggiunto il supporto al monitoraggio delle prestazioni (hwpmc) per le CPU Intel Alder Lake. Aggiornato il driver iwlwifi per le schede wireless Intel con supporto per nuovi chip e lo standard 802.11ac. Aggiunto il driver rtw88 per le schede wireless Realtek con interfaccia PCI. Espandete le capacità del layer linuxkpi per l'uso dei driver Linux in FreeBSD.
  • La libreria OpenSSL è stata aggiornata alla versione 1.1.1t, LLVM/Clang alla versione 14.0.5 e il server e client SSH sono stati aggiornati a OpenSSH 9.2p1 (nella versione precedente era utilizzato OpenSSH 8.8p1). Sono state inoltre aggiornate le versioni di 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.

È stato inoltre annunciato il disavanzo nella categoria obsoleti e la rimozione a partire dal ramo FreeBSD 14.0 delle password usa e getta OPIE, dei driver ce e cp, dei driver per schede con interfaccia ISA, degli strumenti mergemaster e minigzip, dei componenti ATM in netgraph (NgATM), del processo in background telnetd e della classe VINUM in geom.

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster