ProHoster > WireGuard به هسته لینوکس "می آید" - چرا؟
WireGuard به هسته لینوکس "می آید" - چرا؟
در پایان ماه جولای، توسعه دهندگان تونل WireGuard VPN پیشنهاد کردند مجموعه پچ، که نرم افزار تونل زنی VPN آنها را به بخشی از هسته لینوکس تبدیل می کند. با این حال، تاریخ دقیق اجرای "ایده" ناشناخته باقی مانده است. در زیر برش، در مورد این ابزار با جزئیات بیشتر صحبت خواهیم کرد.
WireGuard یک تونل VPN نسل بعدی است که توسط Jason A. Donenfeld، مدیر عامل Edge Security ایجاد شده است. این پروژه به عنوان توسعه یافته است ساده شده و یک جایگزین سریع برای OpenVPN و IPsec. نسخه اول محصول فقط 4 هزار خط کد داشت. برای مقایسه، OpenVPN حدود 120 هزار خط دارد و IPSec - 420 هزار.
بر طبق توسعه دهندگان، پیکربندی WireGuard آسان است و امنیت پروتکل به دست می آید از طریق الگوریتم های رمزنگاری اثبات شده. هنگام تغییر شبکه: Wi-Fi، LTE یا Ethernet باید هر بار دوباره به سرور VPN متصل شوند. سرورهای WireGuard اتصال را قطع نمی کنند، حتی اگر کاربر یک آدرس IP جدید دریافت کرده باشد.
با وجود این واقعیت که WireGuard در ابتدا برای هسته لینوکس طراحی شده بود، توسعه دهندگان مراقبت شده است و در مورد نسخه قابل حمل این ابزار برای دستگاه های اندرویدی. این برنامه هنوز به طور کامل توسعه نیافته است، اما اکنون می توانید آن را امتحان کنید. برای این شما نیاز دارید یکی از آزمایش کننده ها شوید.
В اسناد رسمی (ص 18) اشاره شده است که توان عملیاتی WireGuard چهار برابر بیشتر از OpenVPN است: به ترتیب 1011 مگابیت بر ثانیه در مقابل 258 مگابیت بر ثانیه. WireGuard همچنین از راه حل استاندارد برای IPsec لینوکس جلوتر است - 881 مگابیت بر ثانیه دارد. همچنین در سهولت نصب از آن پیشی می گیرد.
پس از رد و بدل شدن کلیدها (اتصال VPN بسیار شبیه به SSH اولیه شده است) و اتصال برقرار شد، WireGuard به تنهایی تمام وظایف دیگر را انجام می دهد: نیازی به نگرانی در مورد مسیریابی، کنترل وضعیت و غیره نیست. تلاش های اضافی برای پیکربندی فقط انجام خواهد شد. اگر می خواهید از رمزگذاری متقارن استفاده کنید لازم است.
همانطور که ویراستاران xakep.ru خاطرنشان می کنند، خود مونتاژ از متون منبع نیز آسان است. کافی است رابط را باز کنید و کلیدهای عمومی و خصوصی تولید کنید:
$ sudo ip link add dev wg0 type wireguard
$ wg genkey | tee privatekey | wg pubkey > publickey
WireGuard استفاده نمی کند رابط برای کار با یک ارائه دهنده رمزنگاری CryptoAPI. در عوض، از رمز جریان استفاده می شود چاچا20، رمزنگاری درج تقلیدی Poly1305 و توابع هش رمزنگاری اختصاصی.
در این مورد، WireGuard از تابع ioctl برای کنترل I/O (که قبلا استفاده می شد) استفاده می کند نت لینک) که کد را تمیزتر و ساده تر می کند. شما می توانید این را با نگاه کردن به آن تأیید کنید کد پیکربندی.
برنامه های توسعه دهنده
در حال حاضر، WireGuard یک ماژول هسته خارج از درخت است. اما نویسنده پروژه جیسون دوننفلد است می گوید، که زمان اجرای کامل در هسته لینوکس فرا رسیده است. زیرا ساده تر و قابل اعتمادتر از راه حل های دیگر است. جیسون در این زمینه پشتیبانی می کند حتی خود لینوس توروالدز نیز کد WireGuard را "اثر هنری" نامید.
اما هیچ کس در مورد تاریخ های دقیق برای معرفی WireGuard به هسته صحبت نمی کند. و به ندرت این با انتشار هسته لینوکس آگوست 4.18 اتفاق می افتد. با این حال، این احتمال وجود دارد که در آینده بسیار نزدیک این اتفاق بیفتد: در نسخه 4.19 یا 5.0.
هنگامی که WireGuard به هسته اضافه می شود، توسعه دهندگان می خواهم برنامه را برای دستگاه های اندروید نهایی کنید و شروع به نوشتن یک برنامه برای iOS کنید. همچنین برنامههایی برای تکمیل پیادهسازی در Go and Rust و پورت آنها به macOS، Windows و BSD وجود دارد. همچنین برنامه ریزی شده است که WireGuard را برای "سیستم های عجیب و غریب" بیشتر پیاده سازی کند: DPDK, FPGA، و همچنین بسیاری از چیزهای جالب دیگر. همه آنها در فهرست شده اند لیست برای انجام کار نویسندگان پروژه