Tailscale: VPN های سریع و آسان برای توسعه دهندگان

آوریل 12, 2023 by بدون دیدگاه

شبکه می تواند یک مشکل آزاردهنده برای توسعه دهندگان نرم افزار باشد. من در مورد شبکه های محلی یا مرور وب صحبت نمی کنم، بلکه مشکل بسیار سخت تر شبکه های موقت، ورودی و گسترده است.

فرض کنید یک وب سایت خیره کننده بر روی لپ تاپ خود ایجاد کرده اید و می خواهید آن را با دوستان یا مشتریان خود به اشتراک بگذارید. شما می‌توانید فایروال روتر خود را تغییر دهید تا دسترسی به وب ورودی در پورتی که وب‌سایت شما استفاده می‌کند، اجازه دهد و به کاربران خود آدرس IP و پورت فعلی را بدانند، اما این می‌تواند یک آسیب‌پذیری امنیتی بالقوه ایجاد کند. به علاوه، تنها در صورتی کار می کند که روی روتر کنترل داشته باشید و بدانید که چگونه فایروال ها را برای تغییر مسیر پورت پیکربندی کنید.

از طرف دیگر، می‌توانید وب‌سایت خود را روی یک سرور آپلود کنید، اما این یک مرحله اضافی است که اغلب وقت‌گیر است و نگهداری سرورهای اختصاصی می‌تواند هم از نظر زمان و هم هزینه‌ای سنگین باشد. شما می توانید یک نمونه ابر کوچک را بچرخانید و سایت خود را در آنجا آپلود کنید، اما این یک مرحله اضافی است که اغلب وقت گیر است، حتی اگر اغلب نسبتاً ارزان است.

راه حل بالقوه دیگر Plug and Play جهانی (UPnP) است که به دستگاه ها امکان می دهد قوانین ارسال پورت را خودشان تنظیم کنند. UPnP باید در روتر شما فعال باشد، اما این تنها در صورتی ایمن است که مودم و روتر به روز و ایمن باشند. اگر نه، خطرات امنیتی جدی در کل شبکه شما ایجاد می کند. توصیه معمول فروشندگان امنیتی این است که آن را فعال نکنید، زیرا پیاده سازی UPnP در بسیاری از روترها حتی در سال 2023 هنوز خطرناک است. از طرف دیگر، اگر Xbox در خانه دارید، UPnP همان چیزی است که برای راه اندازی خود استفاده می کند. روتر برای بازی چند نفره و چت.

راه ساده‌تر و ایمن‌تر Tailscale است که به شما امکان می‌دهد با استفاده از پروتکل امن WireGuard بدون تولید کلیدهای عمومی یا تایپ مداوم رمزهای عبور، یک شبکه مجازی رمزگذاری‌شده و همتا به همتا ایجاد کنید. می‌تواند NAT و فایروال‌ها را طی کند، زیرشبکه‌ها را بچرخاند، از UPnP برای ایجاد اتصالات مستقیم در صورت در دسترس بودن استفاده کند، و اگر UPnP در دسترس نباشد از طریق شبکه سرورهای رله TCP رمزگذاری شده خود متصل شود.

به نوعی، همه VPN ها (شبکه های خصوصی مجازی) با Tailscale رقابت می کنند. با این حال، اکثر VPN های دیگر، ترافیک را از طریق سرورهای خود هدایت می کنند، که باعث افزایش تاخیر شبکه می شود. یکی از موارد استفاده اصلی برای VPN های مبتنی بر سرور این است که ترافیک شما به نظر برسد که از کشوری که سرور در آن قرار دارد آمده است. Tailscale در این مورد کمک زیادی نمی کند. مورد دیگر استفاده، نفوذ به فایروال های شرکتی با استفاده از سرور VPN در داخل فایروال است. Tailscale برای این مورد استفاده رقابت می کند و معمولاً تنظیمات ساده تری دارد.

علاوه بر Tailscale، تنها VPN همتا به نظیر دیگر WireGuard منبع باز رایگان است که Tailscale بر روی آن ساخته می شود. Wireguard توزیع کلید و تنظیمات فشار داده شده را کنترل نمی کند. Tailscale از همه اینها مراقبت می کند.

Tailscale چیست؟

Tailscale یک سرویس VPN نقطه به نقطه رمزگذاری شده بر اساس پروتکل منبع باز WireGuard است. در مقایسه با VPN های سنتی مبتنی بر سرورهای مرکزی، Tailscale اغلب سرعت های بالاتر و تاخیر کمتری را ارائه می دهد و معمولاً راه اندازی و استفاده از آن آسان تر و ارزان تر است.

Tailscale برای توسعه دهندگان نرم افزاری مفید است که نیاز به راه اندازی شبکه موقت دارند و نمی خواهند با فایروال ها یا زیرشبکه ها سر و صدا کنند. همچنین برای مشاغلی که نیاز به راه اندازی دسترسی VPN به شبکه های داخلی خود بدون نصب سرور VPN دارند مفید است، که اغلب می تواند هزینه قابل توجهی داشته باشد.

نصب و استفاده از Tailscale

ثبت نام برای طرح شخصی Tailscale رایگان و سریع بود. من انتخاب کردم که از شناسه GitHub خود برای احراز هویت استفاده کنم. نصب Tailscale روی هر دستگاهی که امتحان کردم چند دقیقه طول کشید: M1 MacBook Pro، جایی که آن را از فروشگاه macOS App Store نصب کردم. یک آیپد پرو، نصب شده از اپ استور iOS؛ و یک Pixel 6 Pro که از فروشگاه Google Play نصب شده است. نصب در ویندوز با دانلود از وب سایت Tailscale شروع می شود و نصب در لینوکس را می توان با استفاده از a انجام داد curl دستور و اسکریپت پوسته یا یک سری دستورات مخصوص توزیع.

IDG

می‌توانید Tailscale را روی macOS، iOS، Windows، Linux و Android نصب کنید. این برگه دستورالعمل macOS را نشان می دهد.

Tailscale از آدرس های IP در محدوده 100.xxx استفاده می کند و به طور خودکار نام های DNS را اختصاص می دهد، که در صورت تمایل می توانید آنها را سفارشی کنید. می‌توانید کل «tailnet» خود را از سایت Tailscale و از هر دستگاهی که در tailnet فعال است مشاهده کنید.

علاوه بر مشاهده دستگاه‌های خود، می‌توانید سرویس‌های موجود، کاربران tailnet، کنترل‌های دسترسی (ACL)، گزارش‌های خود، DNS tailnet و تنظیمات tailnet خود را مشاهده و ویرایش کنید.

IDG

هنگامی که این سه دستگاه Tailscale را اجرا می کردند، می توانستم همه آنها را در صفحه ورود به سیستم Tailscale خود ببینم. من تصمیم گرفتم از شناسه GitHub خود برای احراز هویت استفاده کنم، زیرا فقط برای خودم آزمایش می کردم. اگر من Tailscale را برای تیمی تنظیم می کردم، از آدرس ایمیل تیمم استفاده می کردم.

IDG

قیمت گذاری در دم.

Tailscale یک CLI را روی رایانه های رومیزی و لپ تاپ نصب می کند. استفاده از این خط فرمان کاملاً ضروری نیست، اما بسیاری از توسعه دهندگان نرم افزار آن را راحت می دانند.

Tailscale چگونه کار می کند

Tailscale، بر خلاف اکثر VPN ها، به جای شبکه هاب و اسپیک، اتصالات همتا به همتا را که به شبکه مش معروف است، راه اندازی می کند. از بسته منبع باز WireGuard (مخصوصاً نوع userspace Go، wireguard-go) به عنوان لایه پایه خود استفاده می کند.

برای توزیع کلید عمومی، Tailscale از پیکربندی hub-and-spoke استفاده می کند. سرور هماهنگی در login.tailscale.com است. خوشبختانه، توزیع کلید عمومی پهنای باند بسیار کمی می گیرد. البته کلیدهای خصوصی هرگز توزیع نمی شوند.

ممکن است با ایجاد جفت کلید عمومی-خصوصی به صورت دستی برای استفاده آشنا باشید ssh، و شامل پیوندی به فایل کلید خصوصی به عنوان بخشی از شما ssh خط فرمان. Tailscale همه این کارها را به طور شفاف برای شبکه‌اش انجام می‌دهد و کلیدها را به هر ورود یا اعتبار 2FA که انتخاب می‌کنید، گره می‌زند.

مراحل کلیدی جفت عبارتند از:

  1. هر گره یک جفت کلید عمومی/خصوصی تصادفی برای خود تولید می کند و کلید عمومی را با هویت خود مرتبط می کند.
  2. گره با سرور هماهنگ‌کننده تماس می‌گیرد و کلید عمومی و یادداشتی درباره جایی که آن گره در حال حاضر پیدا می‌شود و در چه دامنه‌ای قرار دارد، می‌گذارد.
  3. گره فهرستی از کلیدهای عمومی و آدرس های موجود در دامنه خود را که توسط گره های دیگر در سرور هماهنگی رها شده اند، دانلود می کند.
  4. گره نمونه WireGuard خود را با مجموعه مناسبی از کلیدهای عمومی پیکربندی می کند.

Tailscale خود احراز هویت کاربر را کنترل نمی کند. در عوض، همیشه احراز هویت را به یک ارائه‌دهنده OAuth2، OIDC (OpenID Connect)، یا SAML، از جمله Gmail، G Suite، و Office 365 برون‌سپاری می‌کند. با این کار نیازی به نگهداری مجموعه‌ای از حساب‌های کاربری یا گواهی‌های جداگانه برای VPN شما نیست.

IDG

کمک CLI Tailscale. در macOS، فایل اجرایی CLI در داخل بسته برنامه زندگی می‌کند. به نظر نمی رسد پیوند نرم به این فایل اجرایی در M1 MacBook Pro من کار کند، احتمالاً به این دلیل که Tailscale در یک جعبه شنی اجرا می شود.

پیمایش NAT یک فرآیند پیچیده است، فرآیندی که من شخصاً یک دهه پیش سعی کردم بر آن غلبه کنم. NAT (ترجمه آدرس شبکه) یکی از روش‌هایی است که فایروال‌ها کار می‌کنند: آدرس محلی رایانه شما مثلاً 192.168.1.191، در فایروال ترجمه می‌شود، زیرا یک بسته از رایانه شما به اینترنت، به آدرس IP عمومی فعلی شما و یک شماره پورت تصادفی، مثلاً 173.76.179.155:9876، و آن شماره پورت را به عنوان مال شما به خاطر می آورد. وقتی سایتی به درخواست شما پاسخ می دهد، فایروال شما پورت را می شناسد و قبل از اینکه پاسخ را به شما ارسال کند، آن را به آدرس محلی شما ترجمه می کند.

IDG

وضعیت Tailscale، پینگ Tailscale به دو دستگاه و پینگ ساده به همان دستگاه ها با استفاده از شبکه بومی. توجه داشته باشید که پینگ Tailscale به دستگاه Pixel ابتدا از طریق یک سرور DERP (به پایین مراجعه کنید) در نیویورک مسیر می‌شود و سپس می‌تواند اتصال LAN را پیدا کند.

مشکل کجاست؟ فرض کنید شما دو مشتری فایروال دارید که سعی در برقراری ارتباط همتا به همتا دارند. هیچ کدام نمی توانند موفق شوند تا زمانی که کسی یا چیزی به هر دو طرف بگوید از چه پورتی استفاده کنند.

هنگامی که از پروتکل STUN (Session Traversal Utilities for NAT) استفاده می کنید، این داور یک سرور خواهد بود. در حالی که STUN روی اکثر روترهای خانگی کار می کند، متاسفانه در اکثر روترهای شرکتی کار نمی کند. یک جایگزین پروتکل TURN (Traversal Using Relays around NAT) است که از رله ها برای دور زدن مشکل بن بست NAT استفاده می کند. مشکل با آن این است که TURN برای پیاده سازی دردناک است و سرورهای رله TURN موجود زیادی وجود ندارد.

Tailscale یک پروتکل مخصوص به خود را به نام DERP (Relay Encrypted Designated for Packets) پیاده سازی می کند. این استفاده از اصطلاح DERP هیچ ربطی به احمق بودن ندارد، اما نشان می دهد که فردی در Tailscale حس شوخ طبعی دارد.

Tailscale دارای سرورهای DERP در سرتاسر جهان برای پایین نگه داشتن تاخیر است. این شامل نه سرور در ایالات متحده است. به عنوان مثال، اگر می‌خواهید از Tailscale برای اتصال تلفن هوشمند خود از پارک به دسکتاپ در دفتر خود استفاده کنید، احتمال اینکه اتصال از طریق نزدیک‌ترین سرور DERP انجام شود بسیار خوب است. اگر خوش شانس باشید، سرور DERP تنها به عنوان یک کانال جانبی برای برقراری ارتباط استفاده می شود. اگر اینطور نیستید، سرور DERP ترافیک رمزگذاری شده WireGuard را بین گره های شما حمل می کند.

Tailscale در مقابل سایر VPN ها

Tailscale راهنمای بازبین را ارائه می دهد. من اغلب به چنین اسنادی نگاه می‌کنم و سپس کارهای خودم را انجام می‌دهم، زیرا چند بار در اطراف این بلوک بوده‌ام و تشخیص می‌دهم که چه زمانی یک شرکت در حال قرار دادن مردان کاهی و خراب کردن آنهاست، اما این یکی تا حدودی مفید است. در اینجا چند تمایز کلیدی وجود دارد که باید در نظر بگیرید.

با اکثر VPN ها، وقتی اتصال شما قطع می شود، باید دوباره وارد شوید. وقتی شرکت شما دو ارائه دهنده اینترنت داشته باشد و دو سرور VPN برای مدیریت آنها داشته باشد، می تواند حتی بدتر باشد، زیرا معمولاً باید با آزمون و خطا یا با تلاش برای تماس با مدیر شبکه، که احتمالاً به او بستگی دارد، بفهمید که چه اتفاقی در حال رخ دادن است. یا آرنجش در بحران. با Tailscale (و WireGuard)، اتصال فقط از سر گرفته می شود. به طور مشابه، بسیاری از سرورهای VPN با اتصالات flakey مانند LTE مشکل دارند. Tailscale و WireGuard پوسته پوسته شدن را با کمال میل می کنند.

با اکثر VPN ها، اتصال یک کاربر ساده لوح برای اولین بار تمرینی برای صبر برای مدیر شبکه و احتمالاً برای کاربری ترسناک است که مجبور است برای فعال کردن اتصال، دیوار آتش خانه خود را سوراخ کند. با Tailscale این یک فرآیند پنج دقیقه ای است که اصلا ترسناک نیست.

اکثر VPN ها می خواهند انحصاری باشند. اتصال همزمان به دو متمرکز کننده VPN یک گناه بزرگ و یک آسیب پذیری امنیتی بالقوه در نظر گرفته می شود، به خصوص اگر در شرکت های مختلف باشند. Tailscale اهمیتی نمی دهد. WireGuard می تواند این وضعیت را حتی با توپولوژی های Hub-and-Spoke به خوبی مدیریت کند، و با اتصالات نقطه به نقطه Tailscale یک پیکربندی Zero Trust وجود دارد که هیچ آسیب پذیری را نشان نمی دهد.

راه حل های مقیاس دم

Tailscale حدود ده‌ها راه‌حل را برای موارد استفاده متداول ثبت کرده است که می‌توان با شبکه‌های تک‌تک آن به آن پرداخت. اینها از تمایل به کدنویسی از iPad تا اجرای یک سرور خصوصی Minecraft بدون پرداخت هزینه میزبانی یا باز کردن فایروال شما متغیر است.

همانطور که دیدیم، استفاده از Tailscale ساده است، اما در زیر کاپوت نیز پیچیده است. این یک انتخاب آسان برای شبکه های موردی است و یک جایگزین معقول برای VPN های هاب و اسپیک سنتی برای شرکت ها است. تنها عملکرد رایج VPN که می توانم به آن فکر کنم نمی خواهد انجام دهید این است که موقعیت مکانی شما را جعل کنید تا بتوانید محتوای ویدیویی محدود شده جغرافیایی را تماشا کنید – اما VPN های رایگانی وجود دارند که این کار را انجام می دهند.

هزینه: برنامه های شخصی، منبع باز و «دوستان و خانواده»، رایگان. Personal Pro، 48 دلار در سال. تیم، 5 دلار برای هر کاربر در ماه (آزمایش رایگان در دسترس است). کسب و کار، 15 دلار برای هر کاربر در ماه (آزمایش رایگان در دسترس است). طرح های سفارشی، تماس با فروش.

سکو: macOS 10.13 یا بالاتر، Windows 7 SP1 یا جدیدتر، لینوکس (اکثر توزیع‌های اصلی)، iOS 15 یا جدیدتر، Android 6 یا بالاتر، Raspberry Pi، Synology.

#Tailscale #VPN #های #سریع #آسان #برای #توسعه #دهندگان