Wifibox 0.10 - Et miljø til brug af Linux WiFi-drivere på FreeBSD

En udgivelse af Wifibox 0.10-projektet er tilgængelig for at løse problemet med FreeBSDs brug af trådløse adaptere, der mangler de nødvendige drivere. Adaptere, der er problematiske for FreeBSD, leveres ved at køre en Linux-gæst, som indlæser native Linux-trådløse enhedsdrivere.

Installationen af ​​gæstesystemet med drivere er automatiseret, og alle nødvendige komponenter pakkes som en færdiglavet wifibox-pakke, som lanceres ved opstart ved hjælp af den medfølgende rc-tjeneste. Inklusive overgangen til dvaletilstand er korrekt behandlet. Miljøet kan potentielt anvendes på alle WiFi-kort, der understøttes på Linux, men er primært blevet testet på Intel-chips. Vi testede også den korrekte funktion på systemer med Qualcomm Atheros og AMD RZ608 (MediaTek MT7921K) trådløse chips.

Gæstesystemet lanceres ved hjælp af Bhyve hypervisor, som organiserer adgangsvideresendelse til det trådløse kort. Kræver et system, der understøtter hardwarevirtualisering (AMD-Vi eller Intel VT-d). Gæstesystemet er baseret på Alpine Linux-distributionen, bygget på Musl-systembiblioteket og BusyBox-hjælpesættet. Billedstørrelsen er omkring 30 MB på disk og bruger omkring 90 MB RAM.

For at oprette forbindelse til et trådløst netværk bruges wpa_supplicant-pakken, hvor konfigurationsfilerne er synkroniseret med indstillingerne fra FreeBSD-hovedmiljøet. Unix-kontrolsocket oprettet af wpa_supplicant videresendes til værtsmiljøet, som giver dig mulighed for at bruge standard FreeBSD-værktøjerne til at forbinde og arbejde med et trådløst netværk, inklusive wpa_cli og wpa_gui (net/wpa_supplicant_gui) hjælpeprogrammerne.

I den nye udgivelse er mekanismen til at videresende WPA til hovedmiljøet blevet redesignet, hvilket gjorde det muligt at arbejde med både wpa_supplicant og hostapd. Mængden af ​​hukommelse, der kræves til gæstesystemet, er blevet reduceret. Support til FreeBSD 13.0-RELEASE er blevet droppet.

Derudover kan arbejdet med at forbedre driverne til trådløse kort baseret på Intel- og Realtek-chips, der tilbydes i FreeBSD, bemærkes. Med støtte fra FreeBSD Foundation fortsætter udviklingen af ​​den nye iwlwifi-driver, der følger med FreeBSD 13.1. Driveren er baseret på Linux-driveren og koden fra net80211 Linux-undersystemet, understøtter 802.11ac og kan bruges med nye Intel trådløse chips. Driveren indlæses automatisk ved opstart, når det korrekte trådløse kort er fundet. Komponenterne i den trådløse Linux-stack drives af LinuxKPI-laget. Tidligere blev iwm-driveren overført til FreeBSD på lignende måde.

Sideløbende begyndte udviklingen af ​​rtw88 og rtw89 drivere til Realtek RTW88 og RTW89 trådløse chips, som også er udviklet ved at portere de tilsvarende drivere fra Linux og arbejde ved hjælp af LinuxKPI laget. rtw88-driveren er klar til indledende test, mens rtw89-driveren stadig er under udvikling.

Derudover kan vi nævne offentliggørelsen af ​​detaljer og en færdig udnyttelse relateret til sårbarheden (CVE-2022-23088) i den trådløse FreeBSD-stak, rettet i aprilopdateringen. Sårbarheden tillader, at kode udføres på kerneniveau ved at sende en specielt fremstillet ramme, når klienten er i netværksscanningstilstand (på stadiet før SSID-binding). Problemet er forårsaget af et bufferoverløb i funktionen ieee80211_parse_beacon() under parsing af beacon-frames transmitteret af adgangspunktet. Overløbet blev muliggjort af den manglende kontrol af, at den faktiske størrelse af dataene matcher størrelsen angivet i overskriftsfeltet. Problemet manifesterer sig i versioner af FreeBSD dannet siden 2009.

Wifibox 0.10 - miljø til brug af Linux WiFi-drivere i FreeBSD

Blandt de seneste ikke-trådløse stakændringer i FreeBSD: opstartstidsoptimeringer, som blev reduceret fra 10 sekunder til 8 sekunder på testsystemet; implementeret GEOM-modul gunion til at overføre til en anden disk ændringer foretaget oven på en disk tilgængelig i skrivebeskyttet tilstand; for kernel crypto API er XChaCha20-Poly1305 AEAD og curve25519 kryptografiske primitiver, der kræves til VPN WireGuard driveren, blevet forberedt.

Kilde: opennet.ru

Tilføj en kommentar