Version 0.10 of the Wifibox project is now available, aimed at addressing the issue of using wireless adapters on FreeBSD for which the necessary drivers are unavailable. The problematic FreeBSD adapters are managed through the booting of a guest system with Linux, where the native Linux drivers for wireless devices are loaded.
The installation of the guest system with drivers is automated, and all necessary components are packaged as a ready-to-use wifibox package, which launches at boot using the included rc service. Transitioning to sleep mode is handled correctly. The environment can potentially be applied to any WiFi cards supported in Linux, but has been primarily tested on Intel chipsets. Correct operation has also been verified on systems with Qualcomm Atheros and AMD RZ608 (MediaTek MT7921K) wireless chips.
The guest system is booted using the Bhyve hypervisor, which facilitates access to the wireless card. A system with hardware virtualization support (AMD-Vi or Intel VT-d) is required for operation. The guest system is based on the Alpine Linux distribution, built on the Musl system library and the BusyBox utility set. The disk image size is approximately 30MB, consuming about 90MB of RAM.
To connect to a wireless network, the wpa_supplicant package is used, with configuration files synchronized with settings from the main FreeBSD environment. The created wpa_supplicant controlling Unix socket is forwarded to the host environment, allowing the use of standard FreeBSD utilities for connecting to and working with the wireless network, including the use of wpa_cli and wpa_gui utilities (net/wpa_supplicant_gui).
In the new release, the mechanism for forwarding WPA to the main environment has been redesigned, enabling operation with both wpa_supplicant and hostapd. The required memory volume for the guest system has been reduced. Support for FreeBSD 13.0-RELEASE has been discontinued.
Gjithashtu, mund të theksohet puna për përmirësimin e drejtuesve të ofruar në FreeBSD për kartat wireless me çipa Intel dhe Realtek. Me mbështetje nga organizata FreeBSD Foundation, vazhdon zhvillimi i drejtuesit të ri iwlwifi, i përfshirë në përbërjen e FreeBSD 13.1. Ky drejtues bazohet në drejtuesin e Linux-it dhe kodin nga nënsistemi net80211 të Linux-it, mbështet standardin 802.11ac dhe mund të përdoret me çipat wireless më të rinj të Intel-it. Drejtuesi ngarkohet automatikisht gjatë nisjes kur zbulohet karta wireless e nevojshme. Funksionimi i komponentëve të stakut wireless të Linux-it sigurohet përmes shtresës LinuxKPI. Më parë, drejtuesi iwm u portua në mënyrë të ngjashme për FreeBSD.
Përveç kësaj, ka filluar zhvillimi i drejtuesve rtw88 dhe rtw89 për çipat wireless Realtek RTW88 dhe RTW89, të cilët gjithashtu po zhvillohen përmes transferimit të drejtuesve përkatës nga Linux dhe funksionojnë përmes shtresës LinuxKPI. Drejtuesi rtw88 tashmë është i gatshëm për testimin e hershëm, ndërsa drejtuesi rtw89 është ende në fazën e zhvillimit.
Gjithashtu, mund të përmenden publikimi i detajeve dhe eksploati i gatshëm, të lidhur me vulnerabilitetin (CVE-2022-23088) në stakun wireless të FreeBSD, i zgjidhur në përditësimin e prillit. Vulnerabiliteti lejon ekzekutimin e kodit të përdoruesit në nivelin e kernelit përmes dërgimit të një kadre të veçantë ndërkohë që klienti është në modalitetin e skanimit të rrjetit (në fazën para lidhjes me SSID). Problemi shkaktohet nga mbushja e ndërprerjes në funksionin ieee80211_parse_beacon() gjatë analizës së кадrove herald, të cilat dërgohen nga pika e aksesit. Mbushja u bë e mundur për shkak të mungesës së verifikimit të përputhjes midis madhësisë aktuale të të dhënave dhe madhësisë të specifikuar në fushën e titullit. Problemi shfaqet në versionet e FreeBSD, të formuara që nga viti 2009.

Ndër ndryshimet e fundit të papjekura me stakun wireless në FreeBSD: është optimizuar koha e ngarkimit, e cila në sistemin testues është reduktuar nga 10 në 8 sekonda; është implementuar moduli GEOM gunion për transferimin në një disk tjetër të ndryshimeve të bëra mbi diskun e disponueshëm në modalitetin vetëm për lexim; për API-në kriptografike të kernelit janë përgatitur primitivat kriptografikë XChaCha20-Poly1305 AEAD dhe curve25519, të nevojshme për drejtuesin. VPN WireGuard.
Burimi: opennet.ru
