۳۰ آذر ۱۴۰۳

Techboy

اخبار و اطلاعات روز تکنولوژی

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

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

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

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

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

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

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

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

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

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

بررسی: YugabyteDB به PostgreSQL افتخار می کند

Tailscale چیست؟

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

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

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

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

tailscale 01

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

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

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

tailscale 02

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

tailscale 06

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

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

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

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

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

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

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

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

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

tailscale 07

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

پیمایش NAT فرآیند پیچیده‌ای است که من شخصاً آن را ناموفق امتحان کردم. برای غلبه بر یک دهه پیش NAT (ترجمه آدرس شبکه) یکی از روش‌هایی است که فایروال‌ها کار می‌کنند: آدرس محلی رایانه شما مثلاً ۱۹۲.۱۶۸.۱.۱۹۱، در فایروال ترجمه می‌شود، زیرا بسته‌ای از رایانه شما به اینترنت می‌رود، به آدرس IP عمومی فعلی شما و یک شماره پورت تصادفی، مثلاً ۱۷۳.۷۶.۱۷۹.۱۵۵:۹۸۷۶، و آن شماره پورت را به عنوان مال شما به خاطر می آورد. وقتی سایتی به درخواست شما پاسخ می دهد، فایروال شما پورت را می شناسد و قبل از اینکه پاسخ را به شما ارسال کند، آن را به آدرس محلی شما ترجمه می کند.

tailscale 08

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

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

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

Tailscale یک پروتکل مخصوص به خود را به نام پیاده‌سازی می‌کند. DERP (رله رمزگذاری شده تعیین شده برای بسته ها). این استفاده از اصطلاح 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 می تواند این وضعیت را حتی با توپولوژی های هاب و اسپیک به خوبی مدیریت کند، و با اتصالات نقطه به نقطه Tailscale یک پیکربندی Zero Trust وجود دارد که هیچ آسیب پذیری را نشان نمی دهد.

راه حل های Tailscale

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

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

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

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