Netlink болон WireGuard дэмжлэгтэй FreeBSD 13.2 хувилбар

11 сарын хөгжүүлэлтийн дараа FreeBSD 13.2 гарсан. Суурилуулалтын зургуудыг amd64, i386, powerpc, powerpc64, powerpc64le, powerpcspe, armv6, armv7, aarch64, riscv64 архитектурт зориулан бүтээдэг. Нэмж дурдахад виртуалчлалын систем (QCOW2, VHD, VMDK, түүхий) болон Amazon EC2, Google Compute Engine болон Vagrant үүл орчинд зориулсан угсралтуудыг бэлтгэсэн.

Гол өөрчлөлтүүд:

  • Бүртгэлийг идэвхжүүлсэн (зөөлөн шинэчлэлтүүд) UFS болон FFS файлын системийн агшин зуурын зургийг үүсгэх чадварыг хэрэгжүүлсэн. Мөн тэмдэглэл хөтлөх идэвхжсэн үед суурилуулсан UFS файлын системийн агуулга бүхий овоолгыг ("-L" тугтай ажиллаж байгаа dump) арын дэвсгэр дээр хадгалах дэмжлэг нэмэгдсэн. Бүртгэлийг ашиглах үед боломжгүй шинж чанаруудын нэг бол fsck хэрэгслийг ашиглан бүрэн бүтэн байдлын шалгалтыг гүйцэтгэх явдал юм.
  • Үндсэн найрлагад VPN WireGuard-д зориулсан сүлжээний интерфейсийг хэрэгжүүлсэн цөмийн түвшинд ажилладаг wg драйвер орно. Драйверт шаардлагатай криптограф алгоритмуудыг ашиглахын тулд FreeBSD цөмийн крипто дэд системийн API-г өргөтгөсөн бөгөөд үүнд стандарт крипто-API-ээр дамжуулан FreeBSD-д дэмжигддэггүй libsodium номын сангаас алгоритмуудыг ашиглах боломжийг олгодог бэхэлгээ нэмэгдсэн. . Хөгжүүлэлтийн явцад пакетийн шифрлэлт, шифрийг тайлах даалгавруудыг CPU-ийн цөмд холбох ажлыг жигд тэнцвэржүүлэхийн тулд оновчлолыг хийсэн бөгөөд энэ нь WireGuard пакетуудыг боловсруулахад гарах зардлыг бууруулсан.

    WireGuard-г FreeBSD-д оруулах сүүлчийн оролдлого нь 2020 онд хийгдсэн боловч дуулиан шуугианаар дуусгавар болсон бөгөөд үүний үр дүнд чанар муутай, буфертэй болгоомжгүй ажилласан, шалгалтын оронд бүдүүвч ашигласан, бүрэн гүйцэд хэрэгжүүлээгүйн улмаас аль хэдийн нэмсэн кодыг устгасан. протокол болон GPL лицензийг зөрчсөн. VPN WireGuard-ын зохиогч Жейсон А.Доненфельд болон FreeBSD-ийн нэрт хөгжүүлэгч Жон Х.Болдуин нарын оролцоотойгоор шинэ хэрэгжилтийг FreeBSD болон WireGuard хөгжүүлэлтийн үндсэн багууд хамтран бэлтгэсэн. Шинэ кодыг хүлээн авахаас өмнө FreeBSD сангийн дэмжлэгтэйгээр өөрчлөлтүүдийн бүрэн хяналтыг хийсэн.

  • Хэрэглэгчийн орон зай дахь процессуудтай цөмийн харилцан үйлчлэлийг зохион байгуулахад Linux-д ашигладаг Netlink холбооны протокол (RFC 3549)-ийн дэмжлэгийг хэрэгжүүлсэн. Энэхүү төсөл нь цөм дэх сүлжээний дэд системийн төлөвийг удирдах NETLINK_ROUTE гэр бүлийн үйлдлүүдийг дэмжихээр хязгаарлагдаж байгаа бөгөөд энэ нь FreeBSD-д сүлжээний интерфэйсүүдийг удирдах, IP хаягийг тохируулах, чиглүүлэлт тохируулах, Nexthop-ыг удирдахад iproute2 багцаас Linux ip хэрэгслийг ашиглах боломжийг олгодог. пакетийг хүссэн газар руу дамжуулахад ашигладаг төлөвийн өгөгдлийг хадгалах объектууд.
  • 64 битийн платформ дээрх үндсэн системийн бүх программууд нь Address Space Layout Randomization (ASLR)-ийг анхдагчаар идэвхжүүлсэн байдаг. ASLR-г сонгон идэвхгүй болгохын тулд та "proccontrol -m aslr -s disable" эсвэл "elfctl -e +noaslr" командуудыг ашиглаж болно.
  • ipfw-д radix хүснэгтүүдийг MAC хаягуудыг хайхад ашигладаг бөгөөд энэ нь танд MAC хаягтай хүснэгтүүдийг үүсгэж, траффикийг шүүхэд ашиглах боломжийг олгодог. Жишээ нь: ipfw хүснэгт 1 үүсгэх mac төрлийн ipfw хүснэгт 1 нэмэх 11:22:33:44:55:66/48 ipfw нэмэх skipto tablearg src-mac 'хүснэгт(1)' ipfw нэмэх src-mac 'хүснэгт(1,,) 100 )' ipfw нэмэх dst-mac 1 хайхаас татгалзах
  • Dpdk_lpm4 болон dpdk_lpm6 цөмийн модулиудыг нэмсэн бөгөөд IPv24/IPv8-д зориулсан DIR-4-6 маршрутын хайлтын алгоритмыг хэрэгжүүлснээр loader.conf-ээр ачаалах боломжтой бөгөөд энэ нь маш том чиглүүлэлтийн хүснэгт бүхий хостуудын чиглүүлэлтийн функцийг оновчтой болгох боломжийг олгодог ( туршилтанд хурдны өсөлт 25% ажиглагдаж байна %). Модулиудыг тохируулахын тулд стандарт маршрутын хэрэгслийг ашиглаж болно (FIB_ALGO сонголтыг нэмсэн).
  • ZFS файлын системийн хэрэгжилт OpenZFS 2.1.9-г гаргахаар шинэчлэгдсэн. Zfskeys эхлүүлэх скрипт нь ZFS файлын системд хадгалагдсан түлхүүрүүдийг автоматаар ачаалах боломжийг олгодог. Нэг буюу хэд хэдэн zpool-д GUID оноохын тулд zpoolreguid шинэ RC скрипт нэмсэн (жишээ нь хуваалцсан өгөгдөл виртуалчлалын орчинд хэрэгтэй).
  • Bhyve hypervisor болон vmm модуль нь зочны системд 15 гаруй виртуал CPU холбохыг дэмждэг (sysctl hw.vmm.maxcpu-ээр зохицуулагддаг). Bhyve хэрэгсэл нь virtio-оролтын төхөөрөмжийн эмуляцийг хэрэгжүүлдэг бөгөөд үүний тусламжтайгаар та гар, хулганы оролтын үйл явдлыг зочны системд орлуулах боломжтой.
  • FreeBSD цөмийн түвшинд ажилладаг TLS протоколын хэрэгжилт болох KTLS-д TLS 1.3-ын техник хангамжийн хурдатгалын дэмжлэгийг сүлжээний карт руу шифрлэгдсэн ирж буй пакетуудыг боловсруулахтай холбоотой зарим үйлдлүүдийг буулгах замаар нэмсэн. Өмнө нь ижил төстэй функцийг TLS 1.1 болон TLS 1.2-д ашиглах боломжтой байсан.
  • Grownfs эхлүүлэх скрипт дээр root файлын системийг өргөжүүлэхдээ хэрэв ийм хуваалт байхгүй байсан бол своп хуваалтыг нэмж болно (жишээлбэл, SD карт дээр бэлэн системийн дүрсийг суулгахад хэрэгтэй). Своп хэмжээг хянахын тулд rc.conf-д growfs_swap_size шинэ параметр нэмэгдсэн.
  • Hostid эхлүүлэх скрипт нь /etc/hostid файл байхгүй, UUID-г техник хангамжаас авах боломжгүй тохиолдолд санамсаргүй UUID үүсгэхийг баталгаажуулдаг. Мөн /etc/machine-id файлыг хостын ID-ийн авсаархан дүрслэл бүхий (зураасгүй) нэмсэн.
  • defaultrouter_fibN болон ipv6_defaultrouter_fibN хувьсагчдыг rc.conf-д нэмсэн бөгөөд түүгээр дамжуулан та үндсэн чиглэлээс өөр FIB хүснэгтэд анхдагч чиглүүлэлтүүдийг нэмж болно.
  • SHA-512/224 хэшүүдийн дэмжлэгийг libmd номын санд нэмсэн.
  • Pthread номын сан нь Линукс дээр хэрэглэгддэг функцүүдийн семантикийг дэмждэг.
  • kdump руу Линукс системийн дуудлагыг тайлах дэмжлэг нэмэгдсэн. kdump болон sysdecode руу Линукс маягийн системийн дуудлагыг хянах дэмжлэг нэмэгдсэн.
  • Killall хэрэгсэл нь тодорхой терминалтай холбогдсон процессуудад дохио илгээх чадвартай болсон (жишээлбэл, "killall -t pts/1").
  • Одоогийн процесст ашиглах боломжтой тооцооллын блокуудын тоог харуулах nproc хэрэгслийг нэмсэн.
  • Pciconf хэрэгсэлд ACS (Access Control Services) параметрүүдийг тайлах дэмжлэг нэмэгдсэн.
  • SPLIT_KERNEL_DEBUG тохиргоог цөмд нэмсэн бөгөөд энэ нь цөм болон цөмийн модулиудын дибаг хийх мэдээллийг тусдаа файлд хадгалах боломжийг олгодог.
  • Linux ABI нь vDSO (виртуал динамик хуваалцсан объектууд) механизмын дэмжлэгтэйгээр бараг бүрэн хийгдсэн бөгөөд энэ нь контекст шилжихгүйгээр хэрэглэгчийн орон зайд ашиглах боломжтой хязгаарлагдмал системийн дуудлагуудыг хангадаг. ARM64 систем дээрх Linux ABI нь AMD64 архитектурын хэрэгжилттэй ижил түвшинд хүргэгдсэн.
  • Сайжруулсан техник хангамжийн дэмжлэг. Intel Alder Lake CPU-ийн гүйцэтгэлийн хяналт (hwpmc) дэмжлэг нэмэгдсэн. Intel утасгүй картуудын iwlwifi драйвер нь шинэ чип болон 802.11ac стандартын дэмжлэгтэйгээр шинэчлэгдсэн. PCI интерфэйстэй Realtek утасгүй картуудад rtw88 драйвер нэмсэн. linuxkpi давхаргын боломжуудыг FreeBSD дахь Линукс драйверуудтай ашиглахаар өргөтгөсөн.
  • OpenSSL номын санг 1.1.1t, LLVM/Сlang нь 14.0.5, SSH сервер болон клиент нь OpenSSH 9.2p1 (өмнөх хувилбар нь OpenSSH 8.8p1) болж шинэчлэгдсэн. Мөн bc 6.2.4, expat 2.5.0, файл 5.43, 608-аас бага, libarchive 3.6.2, sendmail 8.17.1, sqlite 3.40.1, unbound 1.17.1, zlib 1.2.13 хувилбаруудыг шинэчилсэн.

Нэмж дурдахад, FreeBSD 14.0 салбараас эхлээд нэг удаагийн нууц үг OPIE, ce болон cp драйверууд, ISA картуудын драйверууд, mergemaster болон minigzip хэрэгслүүд, netgraph дахь ATM бүрэлдэхүүн хэсгүүд (NgATM), telnetd дэвсгэр процесс болон Геом дахь VINUM анги.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх