Wifibox 0.10 – keskkond Linuxi WiFi-draiverite kasutamiseks FreeBSD-s

Saadaval on Wifibox 0.10 projekti väljalase, et lahendada FreeBSD traadita adapterite kasutamisega seotud probleem, millel puuduvad vajalikud draiverid. Adaptereid, mis on FreeBSD jaoks problemaatilised, pakub Linuxi külaline, mis laadib Linuxi traadita seadmete draiverid.

Külalissüsteemi installeerimine koos draiveritega on automatiseeritud ning kõik vajalikud komponendid on pakendatud valmis wifiboxi paketina, mis käivitatakse alglaadimisel kaasasoleva rc-teenuse abil. Kaasa arvatud unerežiimile üleminek on õigesti töödeldud. Keskkonda saab potentsiaalselt rakendada kõikidele Linuxi toetatud WiFi-kaartidele, kuid seda on testitud peamiselt Inteli kiipidel. Testisime ka Qualcomm Atherose ja AMD RZ608 (MediaTek MT7921K) juhtmevabade kiipidega süsteemide õiget toimimist.

Külalissüsteem käivitatakse Bhyve hypervisori abil, mis korraldab juurdepääsu edastamise juhtmeta kaardile. Nõuab süsteemi, mis toetab riistvara virtualiseerimist (AMD-Vi või Intel VT-d). Külalissüsteem põhineb Alpine Linuxi distributsioonil, mis on üles ehitatud Musli süsteemiteegile ja BusyBoxi utiliitide komplektile. Pildi suurus on kettal umbes 30 MB ja RAM kulub umbes 90 MB.

Traadita võrguga ühenduse loomiseks kasutatakse paketti wpa_supplicant, mille konfiguratsioonifailid sünkroonitakse FreeBSD põhikeskkonna sätetega. Wpa_supplicant loodud Unixi juhtpesa edastatakse hostikeskkonda, mis võimaldab traadita võrguga ühenduse loomiseks ja sellega töötamiseks kasutada standardseid FreeBSD utiliite, sealhulgas wpa_cli ja wpa_gui (net/wpa_supplicant_gui).

Uues versioonis on WPA põhikeskkonda edastamise mehhanism ümber kujundatud, mis võimaldas töötada nii wpa_supplicant kui hostapd-ga. Külalissüsteemi jaoks vajalik mälumaht on vähenenud. FreeBSD 13.0-RELEASE tugi on ära langenud.

Lisaks võib märkida FreeBSD-s pakutavate Inteli ja Realteki kiipidel põhinevate juhtmevabade kaartide draiverite täiustamise tööd. FreeBSD Foundationi toel jätkub FreeBSD 13.1-ga kaasas oleva uue iwlwifi draiveri arendamine. Draiver põhineb Linuxi draiveril ja net80211 Linuxi alamsüsteemi koodil, toetab 802.11ac ja seda saab kasutada uute Inteli traadita kiipidega. Draiver laaditakse alglaadimisel automaatselt, kui leitakse õige traadita kaart. Linuxi juhtmevaba pinu komponente toidab LinuxKPI kiht. Varem porditi iwm draiver FreeBSD-le sarnasel viisil.

Paralleelselt algas Realtek RTW88 ja RTW89 juhtmevabade kiipide rtw88 ja rtw89 draiverite väljatöötamine, mida arendatakse samuti vastavate draiverite Linuxist portimise teel ja töötavad LinuxKPI kihi abil. Rtw88 draiver on esmaseks testimiseks valmis, samas kui rtw89 draiver on alles väljatöötamisel.

Lisaks võib mainida üksikasjade avaldamist ja lõppenud ärakasutamist, mis on seotud aprilli värskenduses parandatud FreeBSD juhtmevaba virnas oleva haavatavusega (CVE-2022-23088). Haavatavus võimaldab koodi käivitada kerneli tasemel, saates spetsiaalselt koostatud raami, kui klient on võrguskannimisrežiimis (etapis enne SSID sidumist). Probleemi põhjustab puhvri ületäitumine funktsioonis ieee80211_parse_beacon() pääsupunkti poolt edastatud majakakaadrite sõelumisel. Ületäitumine sai võimalikuks seetõttu, et ei kontrollitud, kas andmete tegelik suurus vastab päiseväljal määratud suurusele. Probleem ilmneb FreeBSD versioonides, mis on loodud alates 2009. aastast.

Wifibox 0.10 – keskkond Linuxi WiFi-draiverite kasutamiseks FreeBSD-s

Hiljutised traadita ühenduseta pinu muudatused FreeBSD-s: alglaadimisaja optimeerimised, mida vähendati testsüsteemis 10 sekundilt 8 sekundile; rakendatud GEOM-mooduli püstol, et kanda teisele kettale kirjutuskaitstud režiimis saadaval oleva ketta peal tehtud muudatused; kerneli krüpto API jaoks on ette valmistatud VPN WireGuard draiveri jaoks vajalikud krüptoprimitiivid XChaCha20-Poly1305 AEAD ja curve25519.

Allikas: opennet.ru

Lisa kommentaar