احراز هویت دو مرحله ای برای SSH

"Secure Shell" SSH یک پروتکل شبکه برای برقراری ارتباط ایمن بین هاست، به طور استاندارد روی پورت 22 است (که بهتر است تغییر دهید). کلاینت های SSH و سرورهای SSH برای اکثر سیستم عامل ها در دسترس هستند. تقریباً هر پروتکل شبکه دیگری در داخل SSH کار می کند، یعنی می توانید از راه دور روی رایانه دیگری کار کنید، یک جریان صوتی یا تصویری را از طریق یک کانال رمزگذاری شده منتقل کنید و غیره. بعلاوه، از طریق پروکسی SOCKS در یک میزبان راه دور شما می توانید از طرف این میزبان راه دور به هاست های دیگر متصل شوید.

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

نحوه اجرای احراز هویت دو مرحله ای

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

دستورالعمل‌ها فرض می‌کنند که شما یک هاست اصلی خاص را به اینترنت (باستیون) باز دارید. می خواهید از طریق اینترنت از طریق لپ تاپ یا رایانه به این هاست متصل شوید و به سایر دستگاه هایی که در پشت آن قرار دارند دسترسی داشته باشید. 2FA تضمین می کند که مهاجم نمی تواند همین کار را انجام دهد حتی اگر به لپ تاپ شما دسترسی پیدا کند، مثلاً با نصب بدافزار.

اولین گزینه OTP است

OTP - رمزهای دیجیتال یکبار مصرف، که در این مورد برای احراز هویت SSH همراه با کلید استفاده می شود. توسعه دهندگان می نویسند که این یک گزینه ایده آل نیست، زیرا یک مهاجم می تواند یک سنگر جعلی را بلند کند، OTP شما را رهگیری کرده و از آن استفاده کند. ولی از هیچی بهتره

در این حالت، در سمت سرور، خطوط زیر در پیکربندی Chef نوشته می شود:

  • metadata.rb
  • attributes/default.rb (از attributes.rb)
  • files/sshd
  • recipes/default.rb (کپی از recipe.rb)
  • templates/default/users.oath.erb

هر برنامه OTP در سمت مشتری نصب می شود: Google Authenticator، Authy، Duo، Lastpass، نصب شده brew install oath-toolkit یا apt install oathtool openssl، سپس یک رشته (کلید) تصادفی base16 تولید می شود. به فرمت Base32 که احراز هویت موبایل استفاده می‌کند تبدیل شده و مستقیماً به برنامه وارد می‌شود.

در نتیجه، می توانید به Bastion متصل شوید و ببینید که اکنون نه تنها به یک عبارت عبور، بلکه به یک کد OTP برای احراز هویت نیز نیاز دارد:

➜ ssh -A bastion
Enter passphrase for key '[snip]': 
One-time password (OATH) for '[user]': 
Welcome to Ubuntu 18.04.1 LTS...

گزینه دوم احراز هویت سخت افزاری است

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

در اینجا پیکربندی Chef کمی پیچیده تر است و پیکربندی مشتری به سیستم عامل بستگی دارد. اما پس از انجام تمام مراحل، کلاینت‌های MacOS می‌توانند با استفاده از یک عبارت عبور و قرار دادن انگشت روی سنسور، احراز هویت را در SSH تأیید کنند (عامل دوم).

دارندگان iOS و Android ورود را تأیید کنید با فشار دادن یک دکمه در گوشی هوشمند خود. این یک فناوری ویژه از Krypt.co است که حتی از OTP ایمن تر است.

بر Linuxسیستم عامل کروم (ChromeOS) گزینه‌ای برای کار با توکن‌های USB یوبیکی (YubiKey) دارد. در حالی که یک مهاجم می‌تواند توکن شما را بدزدد، اما همچنان نمی‌تواند رمز عبور شما را بداند.

منبع: www.habr.com

خرید هاست قابل اعتماد برای سایت های دارای حفاظت DDoS، سرورهای VPS VDS 🔥 خرید هاستینگ معتبر با محافظت در برابر حملات DDoS، سرورهای VPS و VDS | ProHoster