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.

Освен това може да се отбележи работата по подобряване на драйверите за безжични карти, базирани на чипове Intel и Realtek, предлагани във FreeBSD. С подкрепата на FreeBSD Foundation продължава разработката на новия 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 секунди на тестовата система; внедрен GEOM-module gunion за прехвърляне на промени на друг диск, направени върху диск, наличен в режим само за четене; за крипто API на ядрото са подготвени криптографските примитиви XChaCha20-Poly1305 AEAD и curve25519, необходими за драйвера на VPN WireGuard.

Източник: opennet.ru

Добавяне на нов коментар