Wifibox 0.10 — um ambiente para usar drivers WiFi do Linux no FreeBSD

Está disponível a versão 0.10 do projeto Wifibox, que visa resolver o problema do uso de adaptadores sem fio no FreeBSD para os quais os drivers necessários estão ausentes. O funcionamento dos adaptadores problemáticos para o FreeBSD é garantido através da execução de um sistema convidado com Linux, que carrega os drivers nativos para dispositivos sem fio do Linux.

A instalação do sistema convidado com drivers é automatizada, e todos os componentes necessários estão organizados em um pacote pronto chamado wifibox, que é iniciado durante a inicialização com o serviço rc fornecido. A transição para o modo de suspensão é tratada corretamente. O ambiente pode potencialmente ser utilizado para qualquer adaptador WiFi compatível com Linux, mas foi testado principalmente em chips Intel. Também foi verificada a funcionalidade correta em sistemas com chips sem fio Qualcomm Atheros e AMD RZ608 (MediaTek MT7921K).

O sistema convidado é iniciado através do hypervisor Bhyve, que organiza o encaminhamento de acesso ao adaptador sem fio. Para funcionar, é necessário um sistema com suporte à virtualização de hardware (AMD-Vi ou Intel VT-d). O sistema convidado é baseado na distribuição Alpine Linux, construída com a biblioteca de sistema Musl e um conjunto de utilitários BusyBox. O tamanho da imagem ocupa aproximadamente 30 MB no disco e consome cerca de 90 MB de memória RAM.

Para se conectar à rede sem fio, é utilizado o pacote wpa_supplicant, cujos arquivos de configuração são sincronizados com as configurações do ambiente principal do FreeBSD. O socket Unix gerenciado criado pelo wpa_supplicant é encaminhado para o ambiente host, permitindo o uso de utilitários nativos do FreeBSD para se conectar e interagir com a rede sem fio, incluindo utilitários como wpa_cli e wpa_gui (net/wpa_supplicant_gui).

Na nova versão, o mecanismo de encaminhamento do WPA no ambiente principal foi reformulado, permitindo a operação tanto com o wpa_supplicant quanto com o hostapd. O volume de memória necessário para o sistema convidado foi reduzido. O suporte para FreeBSD 13.0-RELEASE foi descontinuado.

Além disso, pode-se destacar o trabalho de melhoria dos drivers para placas de rede sem fio com chips Intel e Realtek propostos no FreeBSD. Com o apoio da FreeBSD Foundation, o desenvolvimento do novo driver iwlwifi, incluído no FreeBSD 13.1, continua. O driver é baseado no driver Linux e no código da subsistema net80211 do Linux, suporta o padrão 802.11ac e pode ser usado com novos chips sem fio Intel. O driver é carregado automaticamente durante a inicialização ao detectar a placa de rede sem fio necessária. O funcionamento dos componentes da pilha sem fio do Linux é garantido por meio da camada LinuxKPI. Anteriormente, de forma semelhante, o driver iwm foi portado para o FreeBSD.

Paralelamente, começou o desenvolvimento dos drivers rtw88 e rtw89 para os chips sem fio Realtek RTW88 e RTW89, que também estão sendo desenvolvidos por meio da transferência dos respectivos drivers do Linux e funcionam por meio da camada LinuxKPI. O driver rtw88 já está pronto para testes iniciais, enquanto o driver rtw89 ainda está em fase de desenvolvimento.

Além disso, vale mencionar a publicação de detalhes e um exploit pronto relacionados à vulnerabilidade (CVE-2022-23088) na pilha sem fio do FreeBSD, resolvida na atualização de abril. A vulnerabilidade permite executar código no nível do kernel ao enviar um quadro especialmente formatado enquanto o cliente está no modo de varredura de rede (antes da vinculação ao SSID). O problema é causado por um estouro de buffer na função ieee80211_parse_beacon() durante a análise dos quadros beacon transmitidos pelo ponto de acesso. O estouro se tornou possível devido à falta de verificação da correspondência entre o tamanho real dos dados e o tamanho indicado no campo do cabeçalho. O problema se manifesta em versões do FreeBSD formadas desde 2009.

Wifibox 0.10 - ambiente para uso de drivers WiFi do Linux no FreeBSD

Entre as mudanças recentes não relacionadas com a pilha sem fio no FreeBSD: foi realizada otimização do tempo de inicialização, que em um sistema de teste foi reduzido de 10 para 8 segundos; implementado o módulo GEOM gunion para mover para outro disco as alterações feitas sobre um disco disponível em modo somente leitura; foram preparados os primitivos criptográficos XChaCha20-Poly1305 AEAD e curve25519 para a API crypto do kernel, necessários para o driver. VPN WireGuard.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster