Wifibox 0.10 - FreeBSD дээр Linux WiFi драйверуудыг ашиглах орчин

FreeBSD нь шаардлагатай драйвергүй утасгүй адаптеруудыг ашиглахтай холбоотой асуудлыг шийдвэрлэхийн тулд Wifibox 0.10 төслийн хувилбарыг гаргах боломжтой. FreeBSD-д асуудалтай байгаа адаптерууд нь Linux-ийн утасгүй төхөөрөмжийн драйверуудыг ачаалдаг Linux зочин ажиллуулснаар хангагдсан байдаг.

Драйверуудтай зочны системийг суурилуулах нь автоматжуулсан бөгөөд шаардлагатай бүх бүрэлдэхүүн хэсгүүдийг бэлэн wifibox багц хэлбэрээр багцалсан бөгөөд үүнийг нийлүүлсэн rc үйлчилгээг ашиглан ачаалах үед эхлүүлдэг. Унтах горимд шилжих нь зөв боловсруулагдсан. Энэ орчныг Линукс дээр дэмжигдсэн ямар ч WiFi картанд ашиглах боломжтой боловч үндсэндээ Intel чип дээр туршиж үзсэн. Мөн бид Qualcomm Atheros болон AMD RZ608 (MediaTek MT7921K) утасгүй чипүүдтэй системүүд дээр зөв ажиллагааг шалгасан.

Зочны системийг утасгүй карт руу дамжуулалтыг зохион байгуулдаг Bhyve hypervisor ашиглан эхлүүлсэн. Техник хангамжийн виртуалчлалыг дэмждэг систем шаардлагатай (AMD-Vi эсвэл Intel VT-d). Зочин систем нь Musl системийн номын сан болон BusyBox хэрэгслийн багц дээр бүтээгдсэн Alpine Linux түгээлт дээр суурилдаг. Зургийн хэмжээ нь дискэн дээр 30MB орчим бөгөөд 90MB RAM зарцуулдаг.

Утасгүй сүлжээнд холбогдохын тулд wpa_supplicant багцыг ашигладаг бөгөөд тохиргооны файлууд нь FreeBSD-н үндсэн орчноос тохиргоотой синхрончлогддог. wpa_supplicant-ийн үүсгэсэн удирдлагын Unix залгуурыг хостын орчинд дамжуулдаг бөгөөд энэ нь танд wpa_cli болон wpa_gui (net/wpa_supplicant_gui) хэрэгслүүдийг багтаасан утасгүй сүлжээнд холбогдох болон түүнтэй ажиллах стандарт FreeBSD хэрэгслүүдийг ашиглах боломжийг олгодог.

Шинэ хувилбарт WPA-г үндсэн орчин руу дамжуулах механизмыг дахин боловсруулсан бөгөөд энэ нь wpa_supplicant болон hostapd-тай ажиллах боломжтой болсон. Зочин системд шаардагдах санах ойн хэмжээг багасгасан. FreeBSD 13.0-RELEASE-ийн дэмжлэгийг зогсоосон.

Нэмж дурдахад FreeBSD дээр санал болгож буй Intel болон Realtek чип дээр суурилсан утасгүй картуудын драйверуудыг сайжруулах ажлыг тэмдэглэж болно. FreeBSD сангийн дэмжлэгтэйгээр FreeBSD 13.1-д багтсан шинэ iwlwifi драйверын хөгжүүлэлт үргэлжилж байна. Драйвер нь Linux драйвер болон net80211 Linux дэд системийн код дээр суурилж, 802.11ac-ийг дэмждэг бөгөөд шинэ Intel утасгүй чипүүдтэй хамт ашиглах боломжтой. Зөв утасгүй карт олдвол ачаалах үед драйвер автоматаар ачаалагдана. Линукс утасгүй стекийн бүрэлдэхүүн хэсгүүд нь LinuxKPI давхаргаар тэжээгддэг. Өмнө нь iwm драйверийг FreeBSD-д үүнтэй төстэй байдлаар шилжүүлж байсан.

Үүний зэрэгцээ Realtek RTW88 ба RTW89 утасгүй чипүүдэд зориулсан rtw88 ба rtw89 драйверуудыг боловсруулж эхэлсэн бөгөөд тэдгээр нь Linux-аас холбогдох драйверуудыг зөөвөрлөж, LinuxKPI давхаргыг ашиглан ажилладаг. Rtw88 драйвер нь анхны туршилтанд бэлэн байгаа бол rtw89 драйвер нь боловсруулагдаж байна.

Нэмж дурдахад бид 2022-р сарын шинэчлэлтээр зассан FreeBSD утасгүй стек дэх эмзэг байдалтай (CVE-23088-80211) холбоотой дэлгэрэнгүй мэдээлэл болон дууссан ашиглалтыг дурдаж болно. Энэ эмзэг байдал нь үйлчлүүлэгч сүлжээний скан хийх горимд (SSID холбохоос өмнөх үе шатанд) тусгайлан боловсруулсан фрейм илгээх замаар цөмийн түвшинд кодыг гүйцэтгэх боломжийг олгодог. Хандалтын цэгээр дамжуулж буй дохионы фреймүүдийг задлан шинжилж байх үед ieee2009_parse_beacon() функцэд буфер хэт ихэссэнээс асуудал үүссэн. Өгөгдлийн бодит хэмжээ нь толгойн талбарт заасан хэмжээтэй тохирч байгаа эсэхийг шалгаагүйгээс халих боломжтой болсон. Асуудал нь XNUMX оноос хойш бий болсон FreeBSD хувилбаруудад илэрдэг.

Wifibox 0.10 - FreeBSD дээр Linux WiFi драйверуудыг ашиглах орчин

FreeBSD-д саяхан хийгдсэн утасгүй холболтын стекийн өөрчлөлтүүдийн дунд: туршилтын систем дээр 10 секундээс 8 секунд хүртэл бууруулсан ачаалах хугацааг оновчтой болгох; Зөвхөн уншигдах горимд байгаа дискний дээд талд хийсэн өөрчлөлтийг өөр диск рүү шилжүүлэхийн тулд GEOM модулийн бууг суурилуулсан; цөмийн крипто API-ийн хувьд VPN WireGuard драйверт шаардлагатай XChaCha20-Poly1305 AEAD болон curve25519 криптограф командуудыг бэлтгэсэн.

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

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