Netlink va WireGuard yordami bilan FreeBSD 13.2 versiyasi

11 oylik rivojlanishdan so'ng FreeBSD 13.2 chiqarildi. Oʻrnatish tasvirlari amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64 va riscv64 arxitekturalari uchun yaratilgan. Bundan tashqari, virtualizatsiya tizimlari (QCOW2, VHD, VMDK, raw) va bulutli muhitlar uchun Amazon EC2, Google Compute Engine va Vagrant uchun yig'ilishlar tayyorlangan.

Asosiy o'zgarishlar:

  • Jurnalga kirish yoqilgan (yumshoq yangilanishlar) bilan UFS va FFS fayl tizimlarining suratlarini yaratish imkoniyati joriy etildi. Jurnallar yoqilgan bo'lsa, o'rnatilgan UFS fayl tizimlari mazmuni bilan dumplarni ("-L" bayrog'i bilan ishlaydigan dump) fonda saqlash uchun qo'shimcha yordam ham qo'shildi. Jurnaldan foydalanishda mavjud bo'lmagan xususiyatlardan biri fsck yordam dasturi yordamida yaxlitlikni tekshirishning fonda bajarilishidir.
  • Asosiy tarkib VPN WireGuard uchun tarmoq interfeysini amalga oshirish bilan yadro darajasida ishlaydigan wg drayverini o'z ichiga oladi. Drayv tomonidan talab qilinadigan kriptografik algoritmlardan foydalanish uchun FreeBSD yadro kripto-quyi tizimi API kengaytirildi, unga standart kripto-API orqali FreeBSD-da qo'llab-quvvatlanmaydigan libsodium kutubxonasi algoritmlaridan foydalanish imkonini beruvchi jabduqlar qo'shildi. . Rivojlanish jarayonida paketlarni shifrlash va shifrni ochish vazifalarini protsessor yadrolari bilan bog'lashni teng ravishda muvozanatlash uchun optimallashtirish ham amalga oshirildi, bu WireGuard paketlarini qayta ishlashda qo'shimcha xarajatlarni kamaytirdi.

    WireGuard-ni FreeBSD-ga qo'shishga so'nggi urinish 2020 yilda qilingan, ammo janjal bilan yakunlangan, natijada allaqachon qo'shilgan kod past sifatli, buferlar bilan ehtiyotsizlik bilan ishlash, cheklar o'rniga stublardan foydalanish, to'liq amalga oshirilmaganligi sababli olib tashlandi. protokoli va GPL litsenziyasining buzilishi. Yangi dastur VPN WireGuard muallifi Jeyson A. Donenfeld va mashhur FreeBSD dasturchisi Jon X. Baldvin hissalari bilan FreeBSD va WireGuardning asosiy ishlab chiqish guruhlari tomonidan birgalikda tayyorlandi. Yangi kod qabul qilinishidan oldin FreeBSD Foundation koʻmagida oʻzgarishlarni toʻliq koʻrib chiqish oʻtkazildi.

  • Yadroning foydalanuvchi makonidagi jarayonlar bilan o'zaro ta'sirini tashkil qilish uchun Linuxda qo'llaniladigan Netlink aloqa protokolini (RFC 3549) qo'llab-quvvatlash amalga oshirildi. Loyiha yadrodagi tarmoq quyi tizimi holatini boshqarish uchun NETLINK_ROUTE operatsiyalari oilasini qo‘llab-quvvatlash bilan cheklangan, bu esa FreeBSD-ga tarmoq interfeyslarini boshqarish, IP-manzillarni o‘rnatish, marshrutni sozlash va keyingi ish dasturini boshqarish uchun iproute2 paketidagi Linux ip yordam dasturidan foydalanish imkonini beradi. paketni kerakli manzilga o'tkazish uchun ishlatiladigan holat ma'lumotlarini saqlaydigan ob'ektlar.
  • 64-bitli platformalardagi barcha asosiy tizim bajariladigan dasturlarda sukut bo'yicha Manzillar maydoni tartibini tasodifiylashtirish (ASLR) yoqilgan. ASLR-ni tanlab o'chirish uchun siz "proccontrol -m aslr -s disable" yoki "elfctl -e +noaslr" buyruqlaridan foydalanishingiz mumkin.
  • ipfw da radix jadvallari MAC manzillarini qidirish uchun ishlatiladi, bu esa MAC manzillari bilan jadvallar yaratish va ulardan trafikni filtrlash uchun foydalanish imkonini beradi. Masalan: ipfw jadval 1 yaratish turi mac ipfw table 1 qo'shing 11:22:33:44:55:66/48 ipfw add skipto tablearg src-mac 'table(1)' ipfw add inkor src-mac 'table(1,, 100 )' ipfw dst-mac 1 qidiruvini rad etishni qo'shing
  • Dpdk_lpm4 va dpdk_lpm6 yadro modullari qo'shildi va IPv24/IPv8 uchun DIR-4-6 marshrutni qidirish algoritmini amalga oshirish bilan loader.conf orqali yuklash mumkin, bu sizga juda katta marshrutlash jadvallariga ega xostlar uchun marshrutlash funktsiyalarini optimallashtirish imkonini beradi ( testlarda tezlikning 25 ga oshishi kuzatiladi %). Modullarni sozlash uchun standart marshrut yordam dasturidan foydalanish mumkin (FIB_ALGO opsiyasi qo'shilgan).
  • ZFS fayl tizimini amalga oshirish OpenZFS 2.1.9 ni chiqarish uchun yangilandi. Zfskeys ishga tushirish skripti ZFS fayl tizimida saqlangan kalitlarni avtomatik yuklashni ta'minlaydi. Bir yoki bir nechta zpoollarga GUID belgilash uchun yangi RC skripti zpoolreguid qo‘shildi (masalan, umumiy ma’lumotlarni virtualizatsiya qilish muhitlari uchun foydali).
  • Bhyve gipervisor va vmm moduli mehmon tizimiga 15 dan ortiq virtual protsessorlarni ulashni qo'llab-quvvatlaydi (sysctl hw.vmm.maxcpu orqali tartibga solinadi). bhyve yordam dasturi virtio-kirish qurilmasining emulyatsiyasini amalga oshiradi, uning yordamida siz klaviatura va sichqonchani kiritish hodisalarini mehmon tizimiga almashtirishingiz mumkin.
  • FreeBSD yadrosi darajasida ishlaydigan TLS protokolining amalga oshirilishi bo'lgan KTLS-da, tarmoq kartasiga shifrlangan kiruvchi paketlarni qayta ishlash bilan bog'liq ba'zi operatsiyalarni tushirish orqali TLS 1.3 apparat tezlashuvini qo'llab-quvvatlash qo'shildi. Ilgari shunga o'xshash xususiyat TLS 1.1 va TLS 1.2 uchun mavjud edi.
  • Grownfs ishga tushirish skriptida, ildiz fayl tizimini kengaytirishda, agar bunday bo'lim dastlab etishmayotgan bo'lsa, almashtirish bo'limini qo'shish mumkin (masalan, SD-kartaga tayyor tizim tasvirini o'rnatishda foydali). Swap hajmini boshqarish uchun rc.conf ga yangi growfs_swap_size parametri qo'shildi.
  • Hostid ishga tushirish skripti, agar /etc/hostid fayli yo'q bo'lsa va UUIDni apparatdan olinmasa, tasodifiy UUID hosil bo'lishini ta'minlaydi. Shuningdek, xost identifikatorining ixcham ko'rinishiga ega /etc/machine-id fayli qo'shildi (defissiz).
  • defaultrouter_fibN va ipv6_defaultrouter_fibN o'zgaruvchilari rc.conf ga qo'shildi, ular orqali siz FIB jadvallariga birlamchidan boshqa standart marshrutlarni qo'shishingiz mumkin.
  • SHA-512/224 xeshlarini qo'llab-quvvatlash libmd kutubxonasiga qo'shildi.
  • Pthread kutubxonasi Linuxda ishlatiladigan funksiyalarning semantikasini qo'llab-quvvatlaydi.
  • Linux tizimi qo'ng'iroqlarini kdumpga dekodlash uchun qo'shilgan yordam. Linux uslubidagi tizim qo'ng'iroqlarini kdump va sysdecode orqali kuzatish uchun qo'shimcha qo'llab-quvvatlash.
  • Killall yordam dasturi endi ma'lum bir terminalga bog'langan jarayonlarga signal yuborish imkoniyatiga ega (masalan, "kilall -t pts/1").
  • Joriy jarayonda mavjud bo'lgan hisoblash bloklari sonini ko'rsatish uchun nproc yordam dasturi qo'shildi.
  • Pciconf yordam dasturiga ACS (Access Control Services) parametrlarini dekodlashni qo'llab-quvvatlash qo'shildi.
  • SPLIT_KERNEL_DEBUG sozlamasi yadroga qo'shildi, bu yadro va yadro modullari uchun disk raskadrovka ma'lumotlarini alohida fayllarda saqlash imkonini beradi.
  • Linux ABI deyarli kontekstni almashtirmasdan foydalanuvchi maydonida mavjud bo'lgan cheklangan tizim qo'ng'iroqlari to'plamini ta'minlaydigan vDSO (virtual dinamik umumiy ob'ektlar) mexanizmini qo'llab-quvvatlash bilan deyarli to'liq. ARM64 tizimlaridagi Linux ABI AMD64 arxitekturasini amalga oshirish bilan tenglashtirildi.
  • Yaxshilangan apparat yordami. Intel Alder Lake protsessorlari uchun qo'shilgan ishlash monitoringi (hwpmc) qo'llab-quvvatlashi. Intel simsiz kartalari uchun iwlwifi drayveri yangi chiplar va 802.11ac standartini qo'llab-quvvatlash bilan yangilandi. PCI interfeysli Realtek simsiz kartalari uchun rtw88 drayveri qo'shildi. linuxkpi qatlamining imkoniyatlari FreeBSD da Linux drayverlari bilan foydalanish uchun kengaytirilgan.
  • OpenSSL kutubxonasi 1.1.1t versiyasiga, LLVM/Slang 14.0.5 versiyasiga va SSH serveri va mijozi OpenSSH 9.2p1 ga yangilandi (oldingi versiyada OpenSSH 8.8p1 ishlatilgan). Shuningdek, bc 6.2.4, expat 2.5.0, fayl 5.43, kamroq 608, libarchive 3.6.2, sendmail 8.17.1, sqlite 3.40.1, unbound 1.17.1, zlib 1.2.13 versiyalari ham yangilangan.

Bundan tashqari, FreeBSD 14.0 filialidan boshlab, bir martalik parollar OPIE, ce va cp drayverlari, ISA kartalari uchun drayverlar, mergemaster va minigzip yordam dasturlari, netgraphdagi ATM komponentlari (NgATM), telnetd fon jarayoni va Geomda VINUM sinf.

Manba: opennet.ru

a Izoh qo'shish