Wifibox 0.10 - Un ambiente per utilizà i driver WiFi Linux in FreeBSD

Una liberazione di u prughjettu Wifibox 0.10 hè dispunibule per affruntà u prublema cù l'usu di FreeBSD di adattatori wireless chì ùn mancanu i drivers necessarii. L'adattatori chì sò problematici per FreeBSD sò furniti da eseguisce un invitatu Linux, chì carica i driver di dispositivi wireless Linux nativi.

L'installazione di u sistema d'ospiti cù i cunduttori hè automatizata, è tutti i cumpunenti necessarii sò imballati cum'è un pacchettu wifibox prontu, chì hè lanciatu à l'iniziu cù u serviziu rc furnitu. Includendu a transizione à u modu di sonnu hè trattatu currettamente. L'ambiente pò esse potenzialmente appiicatu à qualsiasi carte WiFi supportate in Linux, ma hè statu pruvatu principarmenti in chip Intel. Avemu ancu pruvatu l'operazione curretta nantu à i sistemi cù chips wireless Qualcomm Atheros è AMD RZ608 (MediaTek MT7921K).

U sistema d'ospiti hè lanciatu cù l'ipervisore Bhyve, chì urganizeghja l'accessu à l'invio à a carta wireless. Richiede un sistema chì sustene a virtualizazione hardware (AMD-Vi o Intel VT-d). U sistema d'ospiti hè basatu annantu à a distribuzione Alpine Linux, custruitu nantu à a biblioteca di u sistema Musl è u set di utilità BusyBox. A dimensione di l'imaghjini hè di circa 30MB in discu è cunsuma circa 90MB di RAM.

Per cunnette à una rete wireless, u pacchettu wpa_supplicant hè utilizatu, i schedarii di cunfigurazione per quale sò sincronizati cù i paràmetri da l'ambienti principali FreeBSD. U socket Unix di cuntrollu creatu da wpa_supplicant hè trasmessu à l'ambienti d'ospiti, chì vi permette di utilizà l'utilità standard FreeBSD per cunnette è travaglià cù una rete wireless, cumprese l'utilità wpa_cli è wpa_gui (net/wpa_supplicant_gui).

In a nova versione, u mecanismu per trasmette WPA à l'ambiente principale hè statu riprogettatu, chì hà permessu di travaglià cù wpa_supplicant è hostapd. A quantità di memoria necessaria per u sistema di ospiti hè stata ridutta. U supportu abbandunatu per FreeBSD 13.0-RELEASE.

Inoltre, u travagliu per migliurà i cunduttori per e carte wireless basate in chips Intel è Realtek, offerti in FreeBSD, pò esse nutatu. Cù supportu da a Fundazione FreeBSD, u sviluppu cuntinua nantu à u novu driver iwlwifi inclusu cù FreeBSD 13.1. U driver hè basatu annantu à u driver Linux è u codice da u subsistema Linux net80211, supporta 802.11ac è pò esse usatu cù novi chips wireless Intel. U driver hè caricatu automaticamente à u tempu di boot quandu si trova a carta wireless curretta. I cumpunenti di a pila wireless Linux sò alimentati da a capa LinuxKPI. In precedenza, u driver iwm era purtatu à FreeBSD in una manera simile.

In parallelu, u sviluppu di i drivers rtw88 è rtw89 per i chips wireless Realtek RTW88 è RTW89 hà cuminciatu, chì sò ancu sviluppati da porting i drivers currispondenti da Linux è travaglià cù a capa LinuxKPI. U driver rtw88 hè prontu per a prova iniziale, mentre chì u driver rtw89 hè sempre in sviluppu.

Inoltre, pudemu mintuvà a publicazione di dettagli è un sfruttamentu finitu in relazione à a vulnerabilità (CVE-2022-23088) in a pila wireless FreeBSD, fissata in l'aghjurnamentu d'aprile. A vulnerabilità permette à u codice per esse eseguitu à u livellu di u kernel mandendu un quadru apposta quandu u cliente hè in modu di scanning di a rete (in u stadiu prima di l'associazione SSID). U prublema hè causatu da un buffer overflow in a funzione ieee80211_parse_beacon() mentre analizza i frames di beacon trasmessi da u puntu d'accessu. U overflow hè statu pussibule da a mancanza di cuntrollà chì a dimensione attuale di e dati currisponde à a dimensione specificata in u campu di l'intestazione. U prublema si manifesta in versioni di FreeBSD formate da u 2009.

Wifibox 0.10 - ambiente per aduprà i drivers WiFi Linux in FreeBSD

Trà i cambiamenti recenti di stack non-wireless in FreeBSD: ottimisazioni di u tempu di boot, chì sò stati ridotti da 10 seconde à 8 seconde in u sistema di teste; implementatu GEOM-module gunion per trasfiriri à un altru discu i cambiamenti fatti nantu à un discu dispunibule in modu di sola lettura; per l'API di criptu di kernel, i primitivi criptografici XChaCha20-Poly1305 AEAD è curve25519 necessarii per u driver VPN WireGuard sò stati preparati.

Source: opennet.ru

Add a comment