وایرگارد WireGuard یکی از پروتکلهای جدید ویپیان هست و به دلیل سرعت و امنیت بالا، مورد توجه کاربران قرار گرفته. توی این پست از بخش آموزش میکروتیک، درباره WireGuard یا وایرگارد صحبت میکنیم. پس در ادامه با من همراه باشین.
وایرگارد چیست؟
Wireguard یه نرمافزار آزاد و اوپن سورس و یه پروتکل ارتباطی هست که از تانلینگ برای ایجاد ارتباط نقطه به نقطه، و ایجاد یه شبکه خصوصی بین شبکههای مختلف روی بستر اینترنت استفاده میکنه. این پروتکل طراحی شد تا نسبت به پروتکلهای فعلی وی پی ان، قدرتمندتر و سریعتر عمل کنه و در عین حال امنیت بالایی هم ارایه بده. Wireguard در حال حاضر به عنوان یک ماژول در هسته لینوکس اجرا میشه و نسبت به اوپن ویپیان و آیپیسک عملکرد بهتری در تانلینگ داره.
کی وایرگارد رو ساخته؟
جیسون ای. دوننفلد Wireguard رو سال 2018 ارایه کرد. اگه دوست دارید وبسایت، گیتهاب و توییترش رو ببینید.
وایرگارد چطوری کار میکنه؟
برخلاف اکثر پروتکلهای ویپیان، این پروتکل مثل SSH کار میکنه. سرور و کلاینت، اول کلیدهای عمومی را مبادله میکنن. کلیدها رد و بدل رد و بدل شدن و تونل Wireguard ایجاد شد، دیگه نیازی به مدیریت اتصال نیست. ضمنا، وقتی تونل VPN برقرار شد، قبل از اینکه کاربر بتونه واقعاً استفاده کنه، سرور، حداقل یک بسته داده رمزگذاری شده رو دریافت میکنه تا بتونه صحت کلید رو تایید کنه.
وایرگارد خوبه؟!
لاینوس توروالدز، خالق لینوکس گفته وایرگارد یه اثر هنری هست! همین کافی نیست؟!
Linus Torvalds
“Maybe the code isn’t perfect, but I’ve skimmed it, and compared to the horrors that are OpenVPN and IPSec, it’s a work of art.”
ولی اگه بخوایم یهکم فنی تر صحبت کنیم:
- WireGuard نسبت به اکثر پروتکلهای ویپیان، ساختاری سبکتر داره. این مورد در مقایسه با پروتکلهای ویپیان اوپن سورس مثل OpenVPN، SoftEther، IKEv2 که کل کدشون قابل مشاهده است، کاملا مشخص هست. مثلا اینکه اوپن ویپیان حدود 100.000 خط کد داره در حالی که این پروتکل حدود 4000 خط کد داره.
- ChaCha20 برای رمزگذاری متقارن (با Poly1305 برای احراز هویت و استفاده از ساختار AEAD RFC7539.
- منحنی 25519 برای ECDH (منحنی بیضوی Diffie-Hellman – یک پروتکل اصلی ارتباطی)
- BLAKE2s برای هش و کلید زدن
- SipHash24 برای کلیدهای قابل هشدار
- HKDF برای استخراج کلید
- علاوه بر کلید رمزگذاری متقارن، این پروتکل از یک کلید اختیاری از پیش اشتراکی پشتیبانی میکنه که میتونه در رمزنگاری کلید عمومی مخلوط و منطبق بشه.
- هنگام استفاده از WireGuard، سرور VPN به کاربرانی که مجاز به کاهش خطر حملات DoS نیست پاسخ نمیده. اولین پیام Handshake که به سرور ارسال میشه. ضمنا، دارای نشان زمان TAI64N برای جلوگیری از حملات مجدد هم هست.
- WireGuard فقط روی UDP کار میکنه و به طور رسمی از TCP پشتیبانی نمی کنه (البته راهکارهایی برای این کار وجود داره). این پروتکل میتونه از هر شماره پورتی برای سرویسدهی استفاده کنه. پورت پیشفرضش UDP 51820 است.
- WireGuard از ناچ استفاده مجدد نمیکنه (عددی که میتونه در ارتباطات رمزنگاری استفاده بشه). در عوض، به یک شمارنده 64 بیتی متکی هست که نمیتونه به عقب برگرده. در نتیجه، حملات پخش خطر کمتری دارن و بسته های UDP از رده خارج نمی شن (اتفاقی که می تواند در مورد UDP بیفتد).
روی همه سیستمعاملها قابل استفاده هست؟
بله، علاوه بر تمام سیستمعامل های مرسوم، مثل ویندوز، مک، اندروید، iOS و لینوکس، Wireguard روی سیستمعامل های دیگه مثل OpenWRT و میکروتیک هم قابل استفاده هست.
سرعت در برابر بقیه پروتکلهای VPN
بر اساس معیارهای اصلی، پروتکل Wireguard خیلی سریعتر از OpenVPN و IPSec هست.
پروتکل وایرگارد به لطف کدبیس کوچکش میتونه سرعت بالایی رو ارائه بده. همچنین، می تواند اتصالات و فرایند Handshake رو سریعتر برقرار کنه.
از اونجایی که این پروتکل توی کرنل لینوکس هست، کاربران لینوکس بهترین سرعت رو با اتصال WireGuard VPN تجربه میکنن.
چطوری VPN وایرگارد راهاندازی کنیم؟
وایرگارد توی کرنل سیستمعامل لینوکس وجود داره. پس اگه میخواین روی سیستمعامل لینوکسیتون وایرگارد رو راهاندازی کنید، کافیه چند تا دستور وارد کنید.
Quick Start وبسایت وایرگارد میتونه نقطه شروع خوبی باشه.
برای توضیحات در مورد سیستمعاملهای دیگه هم، میتونید داکیومنت وبسایت Wireguard رو ببینید.
وایرگارد روی میکروتیک
همونطوری که بالاتر خوندید، پروتکل وایرگارد روی میکروتیک هم وجود داره و میتونیم کانفیگ وایرگارد روی میکروتیک رو هم انجام بدیم. سیستمعامل میکروتیک از ورژن 7 به بعد از وایرگارد پشتیبانی میکنه.
توی کانال یوتوب در این باره صحبت کردم و کانفیگ سرور ویپیان وایرگارد روی سرور میکروتیک و اتصال به وی پی ان وایرگارد روی روتر میکروتیک رو انجام دادم. توی دوره آموزش میکروتیک MTCRE و دوره آموزش تانلینگ میکروتیک هم میتونین تمام پروتکلهای تانلینگ و وی پی ان میکروتیک رو یاد بگیرین.
توی این ویدیو، میتونید کانفیگ سرور ویپیان وایرگارد روی سرور میکروتیک رو ببینید.
اینجا هم، میتونید اتصال به وی پی ان وایرگارد روی روتر میکروتیک رو ببینید.
اگه توی شبکهتون مشکلی هست و به کمک نیاز دارین، صفحه پشتیبانی شبکه رو برای دیدن خدماتی که ارائه میدم، ببینین.
برای یادگیری اصولی میکروتیک دورههای آموزش میکروتیک من رو ببینین.