Udgivelsen af FreeBSD 13.2 med support for Netlink og WireGuard

Efter 11 måneders udvikling er udgivelsen af FreeBSD 13.2 offentliggjort. Installationsbillederne er lavet til arkitekturerne amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 og riscv64. Derudover er der forberedt builds til virtualiseringssystemer (QCOW2, VHD, VMDK, raw) og cloud-miljøer som Amazon EC2, Google Compute Engine og Vagrant.

Nøgleændringer:

  • Muligheden for at oprette snapshots af UFS- og FFS-filsystemer med aktiveret journaling (soft updates) er blevet implementeret. Derudover er der tilføjet支持 til baggrundsbesparelse af dump (kørsel af dump med flaget "-L") med indholdet af de monterede UFS-filsystemer, når journaling er aktiveret. Blandt de funktioner, der ikke er tilgængelige ved brug af journaling, forbliver baggrundscheck af integritet ved hjælp af værktøjet fsck.
  • Den kernel-niveau-driver wg, der implementerer netværksgrænsefladen til VPN WireGuard, er blevet vedtaget som en del af hovedgruppen. For at bruge de nødvendige kryptografiske algoritmer til driveren blev API'et for FreeBSD's kryptosystem udvidet, hvilket inkluderede en indpakning, der gør det muligt at bruge algoritmer fra libsodium-biblioteket, som ikke understøttes i FreeBSD, gennem den standardiserede kryptografi-API. Under udviklingen blev der også udført optimeringer for at sikre jævn belastningsbalancering af krypterings- og dekrypteringsopgaver til CPU-kernerne, hvilket reducerede overhead ved behandling af WireGuard-pakker.

    Det tidligere forsøg på at inkludere WireGuard i FreeBSD fandt sted i 2020, men endte i en skandale, der resulterede i, at den allerede tilføjede kode blev fjernet på grund af lav kvalitet, sjusket arbejde med buffere, brug af stubs i stedet for kontroller, ufuldstændig implementering af protokollen og overtrædelse af GPL-licensen. Den nye implementering er blevet forberedt i samarbejde mellem de vigtigste udviklingsteams for FreeBSD og WireGuard med deltagelse af Jason Donenfeld, skaberen af VPN WireGuard, og John Baldwin, en anerkendt FreeBSD-udvikler. Før det nye kode blev godkendt, blev der gennemført en fuldstændig gennemgang af ændringerne med støtte fra FreeBSD Foundation.

  • Implementeret støtte til kommunikationsprotokollen Netlink (RFC 3549), som anvendes i Linux til at organisere interaktionen mellem kernen og processerne i brugerrummet. Projektet omfatter støtte til NETLINK_ROUTE operationer til styring af netværksundersystemets tilstand i kernen, hvilket muliggør brug af Linux-værktøjet ip fra pakken iproute2 til at administrere netværksinterface, oprette IP-adresser, konfigurere routing og manipulere med nexthop objekter, der gemmer oplysninger om tilstanden, som anvendes til at videregive pakker til det ønskede destinationspunkt.
  • Til alle eksekverbare filer i den grundlæggende system på 64-bit platforme er randomisering af adresseområdet (ASLR, Address Space Layout Randomization) aktiveret som standard. For selektivt at deaktivere ASLR kan man bruge kommandoerne «proccontrol -m aslr -s disable» eller «elfctl -e +noaslr».
  • I ipfw anvendes basis tabeller (Radix table) til at identificere MAC-adresser, hvilket gør det muligt at oprette tabeller med MAC-adresser og bruge dem til at filtrere trafik. For eksempel: 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
  • Der er tilføjet og gjort tilgængelige for download via loader.conf kerne-modulerne dpdk_lpm4 og dpdk_lpm6, som implementerer DIR-24-8 ruteopslag algoritmen for IPv4/IPv6, hvilket muliggør optimering af routingfunktioner for værter med meget store routingtabeller (test viser en hastighedsforøgelse på ca. 25%). For konfiguration af modulerne kan det indbyggede værktøj route anvendes (tilføjet option FIB_ALGO).
  • Implementeringen af filsystemet ZFS er opdateret til versionen OpenZFS 2.1.9. I startskriptet zfskeys sikres automatisk indlæsning af nøgler gemt i ZFS FS. Tilføjet er det nye RC-script zpoolreguid til tildeling af GUID til én eller flere zpool (for eksempel nyttigt til virtualiseringsmiljøer med delte data).
  • I hypervisoren Bhyve og modulet vmm er der implementeret støtte til vedhæftning af mere end 15 virtuelle CPU'er til gæstesystemet (reguleret via sysctl hw.vmm.maxcpu). I værktøjet bhyve er der implementeret emulering af en virtio-input enhed, hvormed man kan indsætte inputhændelser fra tastatur og mus i gæstesystemet.
  • I KTLS, implementeringen af TLS-protokollen, der kører på FreeBSD-kernen, er der blevet tilføjet støtte til hardwareacceleration af TLS 1.3, hvilket overfører visse operationer relateret til behandling af krypterede indkomne pakker til netværkskortet. Tidligere var en tilsvarende funktion tilgængelig for TLS 1.1 og TLS 1.2.
  • I startscriptet growfs er der sikret, at der tilføjes en swap-partition, hvis en sådan oprindeligt ikke var til stede (f.eks. nyttigt ved installation på et SD-kort med et foruddefineret systembillede). For at styre størrelsen på swap-en er der tilføjet en ny parameter growfs_swap_size i rc.conf.
  • I startscriptet hostid er der sikret generering af et tilfældigt UUID i tilfælde af, at filen /etc/hostid mangler, og der ikke kan opnås UUID fra hardwaren. Der er også tilføjet filen /etc/machine-id med en kompakt repræsentation af værtsidentifikatoren (uden bindestreger).
  • I rc.conf er der tilføjet variablerne defaultrouter_fibN og ipv6_defaultrouter_fibN, gennem hvilke man kan tilføje standardruter til FIB-tabeller, der adskiller sig fra den primære.
  • I bibliotektet libmd er der tilføjet støtte for SHA-512/224 hashes.
  • I pthread-biblioteket er der implementeret støtte for semantikken af funktionerne, der anvendes i Linux.
  • I kdump er der tilføjet støtte til afkodning af systemanrop i Linux. I kdump og sysdecode er der også tilføjet støtte til sporing af systemanrop i Linux-stil.
  • I killall-værktøjet er der nu mulighed for at sende signaler til processer, der er knyttet til en bestemt terminal (f.eks. "killall -t pts/1").
  • Der er tilføjet et værktøj nproc, der viser antallet af tilgængelige beregningsblokke for den aktuelle proces.
  • I pciconf-værktøjet er der tilføjet støtte til afkodning af ACS (Access Control Services) parametre.
  • I kernen er der tilføjet indstillingen SPLIT_KERNEL_DEBUG, der muliggør opbevaring af fejlinformation i separate filer for kernen og kernelmoduler.
  • I ABI linux er implementeringen af vDSO (virtual dynamic shared objects) mekanismen næsten færdig, hvilket giver et begrænset sæt systemanrop, der er tilgængelige i brugerrummet uden kontekstskift. ABI linux på ARM64-systemer er blevet bragt til paritet med implementeringen for AMD64-arkitekturen.
  • Forbedret hardware-support. Tilføjet support til performance monitoring (hwpmc) for Intel Alder Lake CPU'er. Opdateret iwlwifi-driveren til Intel trådløse kort med support for nye chips og standarden 802.11ac. Tilføjet rtw88-driver til Realtek trådløse kort med PCI-interface. Udvidet linuxkpi-lagets kapabiliteter til brug med FreeBSD Linux-drivere.
  • OpenSSL-biblioteket er opdateret til version 1.1.1t, LLVM/Clang til version 14.0.5, og SSH-serveren og klienten er opdateret til OpenSSH 9.2p1 (den tidligere version brugte OpenSSH 8.8p1). Derudover er versionerne af 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 og zlib 1.2.13 blevet opdateret.

Det er desuden annonceret, at engangsadgangskoder OPIE, drivere til ce og cp, drivere til kort med ISA-interface, værktøjer som mergemaster og minigzip, ATM-komponenter i netgraph (NgATM), baggrundsprocessen telnetd og klassen VINUM i geom vil blive erklæret forældede og fjernet fra FreeBSD 14.0-grenen.

Kilde: opennet.ru

Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere 🔥 Køb pålidelig webhosting med DDoS-beskyttelse, VPS VDS-servere | ProHoster