Wifibox 0.10 - محیطی برای استفاده از درایورهای WiFi لینوکس در FreeBSD

پروژه Wifibox 0.10 اکنون در دسترس است، با هدف حل مشکل FreeBSD با استفاده از آداپتورهای بی سیم که درایورهای لازم برای آنها وجود ندارد. عملکرد آداپتورهایی که برای FreeBSD مشکل ساز هستند با راه اندازی یک سیستم مهمان با لینوکس تضمین می شود که در آن درایورهای لینوکس بومی برای دستگاه های بی سیم بارگیری می شوند.

نصب سیستم مهمان با درایورها به صورت خودکار انجام می شود و تمام اجزای لازم در قالب یک بسته وای فای باکس آماده بسته بندی می شوند که هنگام بوت با استفاده از سرویس rc موجود راه اندازی می شود. شامل انتقال به حالت خواب به درستی انجام می شود. این محیط به طور بالقوه می تواند برای هر کارت وای فای پشتیبانی شده در لینوکس استفاده شود، اما عمدتاً روی تراشه های اینتل آزمایش شده است. عملکرد صحیح نیز بر روی سیستم هایی با تراشه های بی سیم کوالکام آتروس و AMD RZ608 (MediaTek MT7921K) آزمایش شده است.

سیستم مهمان با استفاده از هایپروایزر Bhyve راه اندازی می شود که دسترسی ارسال به کارت بی سیم را سازماندهی می کند. به سیستمی نیاز دارد که از مجازی سازی سخت افزار (AMD-Vi یا Intel VT-d) پشتیبانی کند. سیستم مهمان بر اساس توزیع Alpine Linux است که بر اساس کتابخانه سیستم Musl و مجموعه ابزارهای BusyBox ساخته شده است. اندازه تصویر تقریباً 30 مگابایت روی دیسک اشغال می کند و حدود 90 مگابایت رم مصرف می کند.

برای اتصال به یک شبکه بی سیم، از بسته wpa_supplicant استفاده می شود که فایل های پیکربندی آن با تنظیمات محیط اصلی FreeBSD همگام می شوند. سوکت کنترل یونیکس ایجاد شده توسط wpa_supplicant به محیط میزبان ارسال می شود، که به شما امکان می دهد از ابزارهای استاندارد FreeBSD برای اتصال و کار با یک شبکه بی سیم، از جمله ابزارهای wpa_cli و wpa_gui (net/wpa_supplicant_gui) استفاده کنید.

در نسخه جدید، مکانیزم ارسال WPA به محیط اصلی مجدداً طراحی شده است که امکان کار با wpa_supplicant و hostapd را فراهم می کند. مقدار حافظه مورد نیاز برای سیستم مهمان کاهش یافته است. پشتیبانی از FreeBSD 13.0-RELEASE متوقف شده است.

علاوه بر این، می‌توانیم به بهبود درایورهای ارائه شده در FreeBSD برای کارت‌های بی‌سیم در تراشه‌های اینتل و Realtek اشاره کنیم. با پشتیبانی بنیاد FreeBSD، توسعه درایور جدید iwlwifi موجود در FreeBSD 13.1 ادامه دارد. درایور مبتنی بر درایور لینوکس و کد زیرسیستم لینوکس net80211 است، از استاندارد 802.11ac پشتیبانی می کند و می تواند با تراشه های بی سیم جدید اینتل استفاده شود. هنگامی که کارت بی سیم مورد نیاز شناسایی شد، درایور به طور خودکار در هنگام بوت دانلود می شود. اجزای پشته بی سیم لینوکس با استفاده از لایه LinuxKPI فعال می شوند. قبلاً درایور iwm به روشی مشابه برای FreeBSD پورت شده بود.

به موازات آن، توسعه درایورهای rtw88 و rtw89 برای تراشه های بی سیم Realtek RTW88 و RTW89 آغاز شد که با انتقال درایورهای مربوطه از لینوکس و کار با لایه LinuxKPI نیز در حال توسعه هستند. درایور rtw88 برای آزمایش اولیه آماده است، در حالی که درایور rtw89 هنوز در دست توسعه است.

علاوه بر این، می توان به انتشار جزئیات و یک اکسپلویت آماده مربوط به آسیب پذیری (CVE-2022-23088) در پشته بی سیم FreeBSD اشاره کرد که در آپدیت آوریل برطرف شد. این آسیب‌پذیری به شما امکان می‌دهد تا زمانی که کلاینت در حالت اسکن شبکه (در مرحله قبل از اتصال SSID) است، کد خود را در سطح هسته با ارسال یک فریم طراحی شده خاص اجرا کنید. این مشکل به دلیل سرریز بافر در تابع ()ieee80211_parse_beacon هنگام تجزیه فریم های beacon ارسال شده توسط نقطه دسترسی ایجاد می شود. سرریز به دلیل عدم بررسی اینکه اندازه واقعی داده با اندازه مشخص شده در قسمت سرصفحه مطابقت دارد ایجاد شد. این مشکل در نسخه های FreeBSD که از سال 2009 ساخته شده است ظاهر می شود.

Wifibox 0.10 - محیطی برای استفاده از درایورهای WiFi لینوکس در FreeBSD

تغییرات اخیر FreeBSD که به پشته بی سیم مربوط نمی شود عبارتند از: بهینه سازی زمان بوت که در سیستم تست از 10 به 8 ثانیه کاهش یافت. ماژول GEOM gunion برای انتقال تغییرات ایجاد شده در بالای دیسک قابل دسترسی در حالت فقط خواندنی به دیسک دیگر پیاده سازی شده است. برای API رمزنگاری هسته، رمزهای اولیه XChaCha20-Poly1305 AEAD و curve25519، لازم برای درایور VPN WireGuard، آماده شده است.

منبع: opennet.ru

اضافه کردن نظر