Wifibox 0.10 - Et miljø for bruk av Linux WiFi-drivere på FreeBSD

Wifibox 0.10-prosjektet er nå tilgjengelig, rettet mot å løse problemet med FreeBSD ved å bruke trådløse adaptere der de nødvendige driverne mangler. Driften av adaptere som er problematiske for FreeBSD sikres ved å lansere et gjestesystem med Linux, der native Linux-drivere for trådløse enheter lastes inn.

Installasjon av gjestesystemet med drivere er automatisert, og alle nødvendige komponenter pakkes i form av en ferdig wifibox-pakke, som lanseres ved oppstart ved hjelp av den medfølgende rc-tjenesten. Inkludert overgang til hvilemodus håndteres riktig. Miljøet kan potensielt brukes for alle WiFi-kort som støttes i Linux, men har blitt testet hovedsakelig på Intel-brikker. Riktig drift har også blitt testet på systemer med Qualcomm Atheros og AMD RZ608 (MediaTek MT7921K) trådløse brikker.

Gjestesystemet lanseres ved hjelp av Bhyve hypervisor, som organiserer videresendingstilgang til det trådløse kortet. Krever et system som støtter maskinvarevirtualisering (AMD-Vi eller Intel VT-d). Gjestesystemet er basert på Alpine Linux-distribusjonen, bygget på grunnlag av Musl-systembiblioteket og BusyBox-settet med verktøy. Bildestørrelsen tar opp omtrent 30 MB på disken og bruker omtrent 90 MB RAM.

For å koble til et trådløst nettverk, brukes wpa_supplicant-pakken, konfigurasjonsfilene for disse er synkronisert med innstillingene fra FreeBSD-hovedmiljøet. Unix-kontrollkontakten opprettet av wpa_supplicant videresendes til vertsmiljøet, som lar deg bruke standard FreeBSD-verktøy for å koble til og arbeide med et trådløst nettverk, inkludert verktøyene wpa_cli og wpa_gui (net/wpa_supplicant_gui).

I den nye utgivelsen har mekanismen for videresending av WPA til hovedmiljøet blitt redesignet, noe som gjorde det mulig å jobbe med både wpa_supplicant og hostapd. Mengden minne som kreves for gjestesystemet er redusert. Støtte for FreeBSD 13.0-RELEASE har blitt avviklet.

I tillegg kan vi merke oss arbeidet med å forbedre driverne som tilbys i FreeBSD for trådløse kort på Intel- og Realtek-brikker. Med støtte fra FreeBSD Foundation fortsetter utviklingen av den nye iwlwifi-driveren inkludert i FreeBSD 13.1. Driveren er basert på Linux-driveren og koden fra net80211 Linux-delsystemet, støtter 802.11ac-standarden og kan brukes med nye Intel trådløse brikker. Driveren lastes ned automatisk under oppstart når det nødvendige trådløse kortet oppdages. Komponentene til den trådløse Linux-stabelen aktiveres ved å bruke LinuxKPI-laget. Tidligere ble iwm-driveren portert for FreeBSD på lignende måte.

Parallelt startet utviklingen av driverne rtw88 og rtw89 for Realtek RTW88 og RTW89 trådløse brikker, som også utvikles ved å overføre de tilsvarende driverne fra Linux og arbeide med LinuxKPI-laget. rtw88-driveren er klar for innledende testing, mens rtw89-driveren fortsatt er under utvikling.

I tillegg kan vi nevne publisering av detaljer og en ferdig utnyttelse knyttet til sårbarheten (CVE-2022-23088) i den trådløse FreeBSD-stakken, som ble fikset i apriloppdateringen. Sårbarheten lar deg kjøre koden din på kjernenivå ved å sende en spesialdesignet ramme mens klienten er i nettverksskannemodus (på stadiet før SSID-binding). Problemet er forårsaket av et bufferoverløp i ieee80211_parse_beacon()-funksjonen ved parsing av beacon-rammer overført av tilgangspunktet. Overløpet ble forårsaket av manglende kontroll av at den faktiske datastørrelsen samsvarer med størrelsen angitt i overskriftsfeltet. Problemet dukker opp i versjoner av FreeBSD bygget siden 2009.

Wifibox 0.10 - miljø for bruk av Linux WiFi-drivere i FreeBSD

Nylige endringer i FreeBSD som ikke er relatert til den trådløse stabelen inkluderer: optimalisering av oppstartstid, som ble redusert fra 10 til 8 sekunder på testsystemet; GEOM-modulen har blitt implementert for å overføre endringer gjort på toppen av en disk tilgjengelig i skrivebeskyttet modus til en annen disk; For krypto-API-en til kjernen er de kryptografiske primitivene XChaCha20-Poly1305 AEAD og curve25519, nødvendig for VPN WireGuard-driveren, utarbeidet.

Kilde: opennet.ru

Legg til en kommentar