Wifibox 0.10 — среда за използване на WiFi драйвери на Linux във 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. Размерът на образа на диска е около 30MB и използва около 90 MB оперативна памет.

За свързване с безжичната мрежа се използва пакетът 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 Foundation продължава развитието на новия драйвер iwlwifi, включен в състава на FreeBSD 13.1. Драйверът е основан на Linux-драйвера и кода от Linux-подсистемата net80211, поддържа стандарта 802.11ac и може да се използва с новите безжични чипове Intel. Драйверът се зарежда автоматично по време на стартиране при откритие на необходимата безжична карта. Работата на компонентите на безжичния стек на Linux се осигурява чрез прослойката LinuxKPI. Преди това подобно по същество за FreeBSD беше портирован драйверът iwm.

Паралелно започна разработката на драйвери rtw88 и rtw89 за безжични чипове Realtek RTW88 и RTW89, които също се развиват чрез пренасяне на съответните драйвери от Linux и работят чрез прослойката LinuxKPI. Драйверът rtw88 вече е готов за начално тестване, а драйверът rtw89 все още е в етап на разработка.

Освен това, може да се спомене публикуването на детайли и готов експлойт, свързани с уязвимост (CVE-2022-23088) в безжичния стек на FreeBSD, отстранена в априлското обновление. Уязвимостта позволява изпълнението на собствен код на нивото на ядрото чрез изпращане на специално оформен кадър в момента, когато клиентът е в режим на сканиране на мрежата (в етапа преди свързване на SSID). Проблемът е причинен от препълване на буфера в функцията ieee80211_parse_beacon() при анализ на beacon-кадри, предавани от точката за достъп. Препълването стана възможно поради липсата на проверка на съответствието между действителния размер на данните и размера, посочен в полето на заглавката. Проблемът се проявява в версии на FreeBSD, изградени от 2009 година насам.

Wifibox 0.10 - среда за използване на WiFi-драйвери Linux във FreeBSD

Сред не свързаните с безжичния стек последни промени в FreeBSD: проведена е оптимизация на времето за зареждане, което на тестовата система е намалено от 10 на 8 секунди; реализиран е GEOM-модул gunion за изхвърляне на друг диск изменения, произвеждани върху диска, достъпен в режим само за четене; за crypto API на ядрото са подготвени криптографски примитиви XChaCha20-Poly1305 AEAD и curve25519, необходими за драйвера. VPN WireGuard.

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

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster