Wifibox 0.10 - Опкружување за користење Linux WiFi драјвери на FreeBSD

Проектот Wifibox 0.10 сега е достапен, чија цел е да се реши проблемот на FreeBSD со помош на безжични адаптери за кои недостасуваат потребните драјвери. Работата на адаптери кои се проблематични за FreeBSD е обезбедена со лансирање на гостин систем со Linux, во кој се вчитуваат оригинални двигатели на Linux за безжични уреди.

Инсталирањето на системот за гости со драјвери е автоматизирано, а сите потребни компоненти се спакувани во форма на готов пакет wifibox, кој се активира при подигнување со помош на вклучената услуга rc. Вклучувањето на транзицијата во режим на мирување се постапува правилно. Околината потенцијално може да се користи за сите WiFi картички поддржани во Linux, но е тестирана главно на Intel чипови. Правилната работа е тестирана и на системи со безжични чипови Qualcomm Atheros и AMD RZ608 (MediaTek MT7921K).

Системот за гости се стартува со помош на хипервизорот Bhyve, кој организира пристап за препраќање до безжичната картичка. Потребен е систем кој поддржува виртуелизација на хардверот (AMD-Vi или Intel VT-d). Системот за гости се заснова на дистрибуцијата на Alpine Linux, изградена врз основа на системската библиотека Musl и збирот на комунални услуги BusyBox. Големината на сликата зафаќа приближно 30 MB на дискот и троши околу 90 MB RAM меморија.

За поврзување на безжична мрежа, се користи пакетот wpa_supplicant, чии конфигурациски датотеки се синхронизирани со поставките од главната околина на FreeBSD. Контролниот приклучок за Unix создаден од wpa_supplicant се проследува до околината на домаќинот, што ви овозможува да користите стандардни FreeBSD алатки за поврзување и работа со безжична мрежа, вклучувајќи ги алатките wpa_cli и wpa_gui (net/wpa_supplicant_gui).

Во новото издание, механизмот за препраќање WPA до главната средина е редизајниран, што овозможи да се работи и со wpa_supplicant и со hostapd. Количината на меморија потребна за системот за гости е намалена. Поддршката за FreeBSD 13.0-RELEASE е прекината.

Дополнително, можеме да ја забележиме работата за подобрување на драјверите понудени во FreeBSD за безжични картички на Intel и Realtek чиповите. Со поддршка на Фондацијата FreeBSD, развојот на новиот двигател на iwlwifi вклучен во FreeBSD 13.1 продолжува. Возачот е базиран на двигателот на Linux и кодот од потсистемот net80211 Linux, го поддржува стандардот 802.11ac и може да се користи со новите безжични чипови на Intel. Возачот автоматски се презема за време на подигањето кога ќе се открие потребната безжична картичка. Компонентите на безжичниот стек Linux се овозможени со користење на слојот LinuxKPI. Претходно, драјверот за iwm беше пренесен за FreeBSD на сличен начин.

Паралелно, започна развојот на драјверите rtw88 и rtw89 за безжичните чипови Realtek RTW88 и RTW89, кои исто така се развиваат со пренесување на соодветните драјвери од Linux и работат со користење на слојот LinuxKPI. Возачот rtw88 е подготвен за првично тестирање, додека драјверот rtw89 е сè уште во развој.

Дополнително, можеме да го споменеме објавувањето на детали и готов експлоат поврзан со ранливоста (CVE-2022-23088) во безжичниот стек на FreeBSD, што беше поправено во ажурирањето во април. Ранливоста ви овозможува да го извршите вашиот код на ниво на јадрото со испраќање на специјално дизајнирана рамка додека клиентот е во режим на мрежно скенирање (во фазата пред врзувањето на SSID). Проблемот е предизвикан од прелевање на баферот во функцијата ieee80211_parse_beacon() при парсирање на рамки за светилници пренесени од пристапната точка. Прелевањето беше предизвикано од недостаток на проверка дали вистинската големина на податоците се совпаѓа со големината наведена во полето за заглавие. Проблемот се појавува во верзиите на FreeBSD изградени од 2009 година.

Wifibox 0.10 - средина за користење Linux WiFi драјвери во FreeBSD

Неодамнешните промени на FreeBSD кои не се поврзани со безжичниот стек вклучуваат: оптимизација на времето за подигање, кое беше намалено од 10 на 8 секунди на системот за тестирање; ГЕОМ модулот е имплементиран за пренос на промени направени на врвот на дискот достапен во режим само за читање на друг диск; За крипто API на кернелот, подготвени се криптографските примитиви XChaCha20-Poly1305 AEAD и curve25519, неопходни за драјверот VPN WireGuard.

Извор: opennet.ru

Додадете коментар