Wifibox 0.10 專案現已推出,旨在解決 FreeBSD 使用無線適配器時缺少必要驅動程式的問題。 對於 FreeBSD 來說有問題的適配器的運作是透過啟動 Linux 來賓系統來確保的,其中載入了無線裝置的本機 Linux 驅動程式。
具有驅動程式的訪客系統的安裝是自動化的,所有必要的組件都以現成的 wifibox 包的形式打包,該包在啟動時使用附帶的 rc 服務啟動。 包括正確處理到睡眠模式的轉換。 該環境可用於 Linux 支援的任何 WiFi 卡,但主要在 Intel 晶片上進行了測試。 正確的操作也在配備 Qualcomm Atheros 和 AMD RZ608 (MediaTek MT7921K) 無線晶片的系統上進行了測試。
訪客系統使用 Bhyve 管理程式啟動,該管理程式組織對無線卡的轉發存取。 需要支援硬體虛擬化(AMD-Vi 或 Intel VT-d)的系統。 訪客系統是基於 Alpine Linux 發行版,建構在 Musl 系統庫和 BusyBox 實用程式集的基礎上。 影像大小在磁碟上佔用約 30MB,並消耗約 90MB 的 RAM。
要連接到無線網絡,需要使用 wpa_supplicant 套件,其設定檔與主 FreeBSD 環境中的設定同步。 wpa_supplicant 建立的 Unix 控制套接字被轉送到主機環境,這允許您使用標準 FreeBSD 實用程式來連接和使用無線網絡,包括 wpa_cli 和 wpa_gui 實用程式 (net/wpa_supplicant_gui)。
在新版本中,重新設計了將WPA轉發到主環境的機制,這使得可以與wpa_supplicant和hostapd一起工作。 客戶系統所需的記憶體量已減少。 對 FreeBSD 13.0-RELEASE 的支援已停止。
此外,我們還可以注意到 FreeBSD 中為 Intel 和 Realtek 晶片上的無線卡提供的驅動程式的改進工作。 在 FreeBSD 基金會的支持下,FreeBSD 13.1 中包含的新 iwlwifi 驅動程式的開發仍在繼續。 此驅動程式基於Linux驅動程式和net80211 Linux子系統的程式碼,支援802.11ac標準,可與新的Intel無線晶片一起使用。 當偵測到所需的無線卡片時,驅動程式會在啟動期間自動下載。 Linux 無線堆疊的元件是使用 LinuxKPI 層啟用的。 以前,iwm 驅動程式以類似的方式移植到 FreeBSD。
同時,Realtek RTW88和RTW89無線晶片的驅動程式rtw88和rtw89的開發也開始了,這些驅動程式也是透過從Linux轉移相應的驅動程式來開發的,並使用LinuxKPI層工作。 rtw88 驅動程式已準備好進行初始測試,而 rtw89 驅動程式仍在開發中。
此外,我們還可以提及與 FreeBSD 無線堆疊中的漏洞 (CVE-2022-23088) 相關的詳細資訊和現成的漏洞利用程序,該漏洞已在 80211 月的更新中修復。 此漏洞可讓您在用戶端處於網路掃描模式(在 SSID 綁定之前的階段)時透過傳送專門設計的幀來在核心層級執行程式碼。 此問題是由於解析存取點傳輸的信標訊框時 ieee2009_parse_beacon() 函數中的緩衝區溢位所引起的。 溢出是由於未檢查實際資料大小是否與標頭欄位中指定的大小相符而導致的。 這個問題出現在 XNUMX 年以來建置的 FreeBSD 版本。
FreeBSD 最近與無線堆疊無關的變更包括: 最佳化啟動時間,在測試系統上從 10 秒減少到 8 秒; GEOM 模組 Gunion 已實作將在唯讀模式下可存取的磁碟上所做的變更傳輸到另一個磁碟; 對於核心的加密 API,已經準備了 VPN WireGuard 驅動程式所需的加密原語 XChaCha20-Poly1305 AEAD 和 curve25519。
來源: opennet.ru