Wifibox 0.10: entorno para usar controladores WiFi de Linux en FreeBSD

Ya está disponible el proyecto Wifibox 0.10, destinado a solucionar el problema de FreeBSD mediante adaptadores inalámbricos para los que faltan los drivers necesarios. El funcionamiento de los adaptadores problemáticos para FreeBSD se garantiza iniciando un sistema invitado con Linux, en el que se cargan los controladores nativos de Linux para dispositivos inalámbricos.

La instalación del sistema invitado con controladores está automatizada y todos los componentes necesarios están empaquetados en forma de un paquete wifibox listo para usar, que se inicia al arrancar utilizando el servicio rc incluido. Incluyendo la transición al modo de suspensión se maneja correctamente. El entorno se puede utilizar potencialmente para cualquier tarjeta WiFi compatible con Linux, pero se ha probado principalmente en chips Intel. También se ha probado el correcto funcionamiento en sistemas con chips inalámbricos Qualcomm Atheros y AMD RZ608 (MediaTek MT7921K).

El sistema de invitados se inicia mediante el hipervisor Bhyve, que organiza el acceso de reenvío a la tarjeta inalámbrica. Requiere un sistema que admita la virtualización de hardware (AMD-Vi o Intel VT-d). El sistema invitado se basa en la distribución Alpine Linux, construida sobre la base de la biblioteca del sistema Musl y el conjunto de utilidades BusyBox. El tamaño de la imagen ocupa aproximadamente 30 MB en el disco y consume alrededor de 90 MB de RAM.

Para conectarse a una red inalámbrica, se utiliza el paquete wpa_supplicant, cuyos archivos de configuración están sincronizados con la configuración del entorno principal de FreeBSD. El socket de control Unix creado por wpa_supplicant se reenvía al entorno host, lo que le permite utilizar las utilidades estándar de FreeBSD para conectarse y trabajar con una red inalámbrica, incluidas las utilidades wpa_cli y wpa_gui (net/wpa_supplicant_gui).

En la nueva versión, se rediseñó el mecanismo para reenviar WPA al entorno principal, lo que hizo posible trabajar tanto con wpa_supplicant como con hostapd. Se ha reducido la cantidad de memoria requerida para el sistema invitado. Se ha interrumpido el soporte para FreeBSD 13.0-RELEASE.

Además, podemos destacar el trabajo de mejora de los controladores ofrecidos en FreeBSD para tarjetas inalámbricas en chips Intel y Realtek. Con el apoyo de la Fundación FreeBSD, continúa el desarrollo del nuevo controlador iwlwifi incluido en FreeBSD 13.1. El controlador se basa en el controlador de Linux y el código del subsistema Linux net80211, es compatible con el estándar 802.11ac y se puede utilizar con los nuevos chips inalámbricos Intel. El controlador se descarga automáticamente durante el arranque cuando se detecta la tarjeta inalámbrica requerida. Los componentes de la pila inalámbrica de Linux se habilitan mediante la capa LinuxKPI. Anteriormente, el controlador iwm fue portado para FreeBSD de manera similar.

Paralelamente, se inició el desarrollo de los controladores rtw88 y rtw89 para los chips inalámbricos Realtek RTW88 y RTW89, los cuales también se están desarrollando transfiriendo los controladores correspondientes desde Linux y funcionan utilizando la capa LinuxKPI. El controlador rtw88 está listo para las pruebas iniciales, mientras que el controlador rtw89 aún está en desarrollo.

Además, podemos mencionar la publicación de detalles y un exploit listo para usar relacionado con la vulnerabilidad (CVE-2022-23088) en la pila inalámbrica de FreeBSD, que se solucionó en la actualización de abril. La vulnerabilidad le permite ejecutar su código a nivel de kernel enviando un marco especialmente diseñado mientras el cliente está en modo de escaneo de red (en la etapa anterior al enlace SSID). El problema se debe a un desbordamiento del búfer en la función ieee80211_parse_beacon() al analizar las tramas de baliza transmitidas por el punto de acceso. El desbordamiento se debió a una falta de verificación de que el tamaño de los datos reales coincida con el tamaño especificado en el campo del encabezado. El problema aparece en las versiones de FreeBSD creadas desde 2009.

Wifibox 0.10: entorno para usar controladores WiFi de Linux en FreeBSD

Los cambios recientes en FreeBSD no relacionados con la pila inalámbrica incluyen: optimización del tiempo de arranque, que se redujo de 10 a 8 segundos en el sistema de prueba; el módulo GEOM gunion se ha implementado para transferir los cambios realizados en la parte superior de un disco accesible en modo de solo lectura a otro disco; Para la API criptográfica del kernel, se han preparado las primitivas criptográficas XChaCha20-Poly1305 AEAD y curve25519, necesarias para el controlador VPN WireGuard.

Fuente: opennet.ru

Añadir un comentario