لینک کوتاه مطلب : https://hsgar.com/?p=3590

معرفی Tailscale SSH · Tailscale

امروز ما خوشحالیم که Tailscale SSH را معرفی کنیم تا بتوانیم اتصالات SSH را به راحتی در tailnet خود مدیریت کنیم.. Tailscale SSH به شما این امکان را می‌دهد تا بدون مدیریت کلیدهای SSH، اتصالات SSH را بین دستگاه‌های موجود در شبکه Tailscale خود، بدون مدیریت کلیدهای SSH، برقرار کنید، و اتصال SSH خود را با استفاده از WireGuard تأیید می‌کند.

بسیاری از سازمان‌ها در حال حاضر از Tailscale برای محافظت از جلسات SSH خود استفاده می‌کنند – برای مثال، برای اینکه به کاربران اجازه دهند از لپ‌تاپ کاری خود به دسکتاپ کاری خود متصل شوند. از آنجایی که Tailscale به شما امکان می‌دهد دستگاه‌های خود را در یک شبکه خصوصی مجازی متصل کنید و از کنترل‌های دسترسی برای محدود کردن ارتباطات بین آنها استفاده کنید، فکر کردیم: «چرا به کلیدهای SSH نیاز داریم؟ بیایید کاری کنیم که SSH از هویت Tailscale شما استفاده کند.” و همینطور هم کردیم.

برای اتصالات حساس پرخطر، مانند اتصالات به عنوان root، همچنین می توانید حالت بررسی را فعال کنید. حالت بررسی به کاربر نیاز دارد تا قبل از اینکه بتواند یک اتصال SSH Tailscale برقرار کند، با SSO شما احراز هویت مجدد (یا اخیراً احراز هویت مجدد انجام داده باشد).

هنگام استفاده از حالت بررسی، اگر اخیراً احراز هویت نکرده‌اید، باید قبل از ایجاد یک اتصال SSH Tailscale مجدداً احراز هویت کنید.

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

SSH، اما آن را Tailscale کنید

نحوه عملکرد Tailscale را به یاد بیاورید: اتصالات بین دستگاه های شما در tailnet خصوصی شما قبلاً به طور خودکار با استفاده از WireGuard احراز هویت و رمزگذاری می شوند. سرور هماهنگی Tailscale کلید گره عمومی دستگاه شما را بین همتایان شبکه شما که مجاز به برقراری ارتباط با آنها است، توزیع می کند. این کلید گره هویت دستگاه شما است: چیزی است که برای احراز هویت دستگاه شما و رمزگذاری اتصالات به یا از دستگاه استفاده می شود. علاوه بر این، ACLهای شبکه tailnet شما برای تعیین اینکه آیا یک اتصال مشخص مجاز است یا خیر استفاده می شود. Tailscale ها ACL ها را در مجموعه ای از فیلترهای بسته کامپایل می کند که در تمام دستگاه های شبکه شما توزیع می شود و هر دستگاه به صورت محلی ترافیک مجاز را اعمال می کند.

چه چیزی Tailscale SSH را متفاوت می کند؟ هنگامی که Tailscale SSH را در دستگاهی فعال می‌کنید، Tailscale درگاه 22 را برای هرگونه ترافیک ورودی به آن دستگاه به آدرس IP Tailscale آن ادعا می‌کند – یعنی فقط برای ترافیکی که از طریق Tailscale می‌آید. این ترافیک به جای سرور استاندارد SSH شما به یک سرویس SSH در داخل Daemon Tailscale هدایت می شود. هنگامی که یک اتصال SSH جدید از یک کلاینت به این سرور از طریق شبکه Tailscale ایجاد می‌کنید، سرور از قبل می‌داند طرف راه دور کیست و مسئولیت را بر عهده می‌گیرد، و نیازی به ارائه مدرک بیشتر از مشتری SSH ندارد.

مدیریت کلیدهای SSH شخصی یا سازمان شما می تواند دردناک باشد. مطمئناً، کلیدهای SSH بهتر از رمزهای عبور هستند، زیرا کاربر را شناسایی می کنند، اما هنوز هم فقط تا زمانی که امن هستند آنها به طور تصادفی پخش مستقیم می شوند. (گواهینامه‌های SSH بهتر هستند، اما آیا سعی کرده‌اید CA سازمانی خود را اجرا کنید؟) اگر این کلیدها را به درستی مدیریت می‌کنید، زمان‌بر است – ممکن است ساعت‌ها صرف توزیع کلیدهای SSH هنگام تهیه سرورهای جدید یا حذف کلیدهای SSH هنگام خروج یکی از همکارانتان کنید. . برخی از سازمان‌ها از سنگرها استفاده می‌کنند تا اتصالات SSH را از طریق یک نقطه برای احراز هویت و مجوز تحمیل کنند – اما اگر از یک سنگر در نزدیکی تمام زیرساخت‌های خود استفاده نکنید و سرور (یا سرویس) دیگری برای مدیریت باشد، تأخیر غیرضروری اضافه می‌کند.

اتصالات SSH Tailscale از مکانیسم کنترلی مشابه سایر اتصالات Tailscale استفاده می کنند، با استفاده از کلیدهای گره Tailscale و ACLها برای اطمینان از احراز هویت، مجاز و رمزگذاری شده یک اتصال:

  • اتصال SSH Tailscale شما احراز هویت شده است بر اساس هویت Tailscale دستگاه منبع شما. Tailscale همچنین کلیدهای میزبان SSH عمومی را در صورت امکان در اختیار مشتری شما قرار می دهد، به طوری که سرویس گیرنده SSH میزبانی را که به آن متصل می شود تشخیص می دهد – به این معنی که پیام هشدار “میزبان ناشناس” را نخواهید دید.
  • اتصال SSH Tailscale شما مجاز است بر اساس قوانین دسترسی که در ACL های tailnet خود تعریف می کنید.
  • اتصال SSH Tailscale شما رمزگذاری شده است با استفاده از WireGuard (علاوه بر رمزگذاری SSH معمولی)، با استفاده از کلیدهای عمومی گره دستگاه مبدأ و مقصد.

با Tailscale SSH، دیگر نیازی به تولید، توزیع و مدیریت کلیدهای SSH ندارید. (شما می توانید بدون نیاز به نحوه دریافت کلید SSH خصوصی خود بر روی iPad خود، از راه دور توسعه دهید!) Tailscale SSH به شما امکان می دهد مجوزهای خود را به عنوان کد مدیریت کنید، بنابراین دسترسی بر اساس ACL های شما مجاز است. اگر کسی آنجا را ترک کرد، می‌توانید دسترسی را تقریباً فوراً و بدون دست زدن به هر سروری لغو کنید. و بر خلاف میزبان های مستحکم، نیازی نیست که تمام ترافیک خود را از طریق یک نقطه ورودی شبکه مشخص و مشخص قیف کنید.

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

اگر قبلاً با آن آشنا هستید WireGuard، این منطقی است – WireGuard بسیار شبیه SSH است زیرا هر طرف برای تعیین هویت خود به یک کلید خصوصی نیاز دارد و از کلید عمومی همتای خود برای شناسایی آن استفاده می کند. هر طرف می تواند یک اتصال را آغاز کند. در هر دو مورد، چیزی که Tailscale به آن کمک می کند، پیکربندی شبکه، توزیع کلید، و نگاشت کلیدهای عمومی به هویت کاربر است. Tailscale در حال حاضر هویت SSO شما را به هویت شبکه شما گسترش می دهد. با Tailscale SSH، یک قدم دیگر برمی داریم.

از قوانین دسترسی SSH برای تعریف اتصالات مجاز استفاده کنید

Tailscale SSH بخش جدیدی را به ACL های Tailscale معرفی می کند: قوانین دسترسی SSH. مانند سایر قوانین دسترسی Tailscale، که به شما امکان می دهد تعریف کنید که یک کاربر یا دستگاه خاص مجاز است در شبکه Tailscale شما دسترسی داشته باشد، این قوانین به شما امکان می دهد کاربران یا دستگاه هایی را که می توانند از Tailscale SSH استفاده کنند و کاربران SSH را محدود کنید.

بنابراین، می توانید به Alice اجازه دهید تا با استفاده از Tailscale SSH به سرور تولید به عنوان روت دسترسی داشته باشد:

  "ssh": [
    {
      "action": "accept",
      "src": ["alice@example.com"],
      "dst": ["tag:prod"],
      "users": ["root"]
    }
  ]

برای اینکه بتوانید از Tailscale SSH استفاده کنید، نیاز دارید هر دو یک قانون که اجازه دسترسی از دستگاه مبدأ به دستگاه مقصد را از طریق پورت 22 (جایی که سرور SSH Tailscale اجرا می‌شود) را می‌دهد و یک قانون دسترسی SSH که به Tailscale SSH اجازه دسترسی به دستگاه مقصد و کاربر SSH را می‌دهد.

از حالت چک برای تأیید اتصالات پرخطر استفاده کنید

به طور معمول، اتصالات Tailscale بر اساس انقضای کلید گره شما است – به طوری که شما به طور منظم مجدداً در tailnet احراز هویت می کنید، اما نه به عنوان بخشی از هر تعامل. (همچنین می توانید انقضای کلید گره را برای سرورها غیرفعال کنید.) برای برخی از عملیات های حساس تر، واقعاً می خواهید تأیید کنید که یک انسان در انتهای دیگر اتصال است. (در اینترنت، هیچ کس نمی داند که شما یک سگ هستید، و واقعا سخت تر است که رمز عبور خود را با پنجه تایپ کنید.)

حالت بررسی Tailscale SSH نیاز دارد که کاربر اخیراً قبل از برقراری اتصال مجدداً به Tailscale احراز هویت کرده باشد. به طور پیش‌فرض، این یک دوره بررسی 12 ساعته است – بنابراین اگر به سرورهای گزارش مختلف برای رفع اشکال قطعی وصل می‌شوید، می‌توانید در طول روز بدون وقفه به کار خود ادامه دهید. اگر با یک برنامه کاربردی حساس یا مجموعه‌ای از مجوزها سر و کار دارید، می‌توانید دوره بررسی بسیار کوتاه‌تری را تعیین کنید – ممکن است فقط به ۱۵ دقیقه زمان نیاز داشته باشید تا به پایگاه داده خود دسترسی داشته باشید و شناسایی کنید که کدام مشتریان تحت تأثیر یک باگ هستند.

می توانید به بررسی هر اتصال SSH Tailscale نیاز داشته باشید و دوره بررسی مورد نظر را به عنوان بخشی از قوانین دسترسی SSH خود تنظیم کنید. به عنوان مثال، اگر فقط می‌خواهید آلیس بتواند به عنوان متصل شود، چه می‌شود root در سرور تولید، تا زمانی که او در یک ساعت گذشته احراز هویت شده باشد؟

  "ssh": [
    {
      "action": "check", // instead of "accept"
      "src": ["alice@example.com"],
      "dst": ["tag:prod"],
      "users": ["root"],
      "checkPeriod": "1h"
    }
  ]

Tailscale SSH را تنظیم کنید

بیایید ببینیم که چگونه (آسان) می توان Tailscale SSH را تنظیم کرد. شما باید: دستگاه مقصد را به Tailscale SSH انتخاب کنید و از وجود ACL هایی اطمینان حاصل کنید که اجازه دسترسی Tailscale SSH را می دهد.

برای فعال کردن Tailscale SSH در دستگاه مقصد، اجرا کنید

در حال حاضر، این فقط در دستگاه های لینوکس پشتیبانی می شود. این نمی کند پیکربندی SSH موجود خود را تحت تأثیر قرار دهید، بنابراین می توانید از Tailscale SSH همزمان با سایر ابزارهای SSH که دارید استفاده کنید یا به تدریج SSH Tailscale را در ناوگان خود گسترش دهید.

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

  "ssh": [
    {
      "action": "check",
      "src": ["autogroup:members"],
      "dst": ["autogroup:self"],
      "users": ["autogroup:nonroot", "root"]
    },
  ]

اگر شما دارند ACL های خود را تغییر دهید، باید این یا هر قانون دسترسی SSH را که می خواهید اعمال کنید اضافه کنید. می توانید ACL های خود را در کنسول مدیریت تغییر دهید.

سپس، به طور معمول از دستگاه منبع وصل شوید:

$ ssh root@100.100.100.100 

یا اگر MagicDNS را فعال کرده اید:

(ما قصد داشتیم یک گیف از استفاده از Tailscale SSH در این پست وبلاگ قرار دهیم، اما فقط شبیه SSH معمولی به نظر می رسد، بنابراین فایده ای ندارد. بدترین نسخه نمایشی تا کنون.)

شروع کنید

بنابراین: به Tailscale SSH سلام کنید — و با مدیریت کلیدهای SSH، راه اندازی جعبه های پرش باستیون و قرار دادن بی مورد دستگاه های تولید خصوصی خود در معرض اینترنت باز خداحافظی کنید.

Maya نحوه استفاده از Tailscale SSH را نشان می دهد.

برای شروع، به مستندات ما در Tailscale SSH مراجعه کنید یا a نسخه ی نمایشی در راه اندازی آن. تماشا کردن بحث ما با میسم علی و برد فیتزپاتریک در ساخت Tailscale SSH برای کسب اطلاعات بیشتر.

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

ما این را برای شما می سازیم، پس نظر خود را به ما بگویید @Tailscale در توییتر، و مشکل GitHub را ثبت کنید یا اگر Tailscale SSH مطابق انتظار کار نمی کند با پشتیبانی تماس بگیرید.



لینک منبع

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.