کی بازار- SSH یکی از محبوبترین روشهای کنترل Raspberry Pi از لپتاپ یا پیسی است. در ادامه توضیح خواهیم داد چطور میشود احراز هویت دوعاملی برای دسترسی SSH به Raspberry Pi راهاندازی کرده و لایهی امنیتی دیگری بدان افزود.
توجه: اگر برای دسترسی به Raspberry Pi خود از key-file SSH استفاده میکنید، احراز هویت دوعاملی به کارتان نخواهد آمد.
آپدیت Pi
فرض میگیریم از قبل Raspberry Pi خود را با Raspberry Pi OS تنظیم کردهاید؛ حالا بهتر است ابتدا چک کنید که تمامی نرمافزارهای شما بهروز است. پایانهای را باز کرده و فرمان زیر را تایپ نمایید:
sudo apt update && sudo apt -y upgrade
فعالسازی SSH
سیستمعامل Raspberry Pi یک سرور SSH دارد که به طور پیشفرض غیرفعال است. پیش از اینکه بتوانید از طریق SSH به Pi خود وصل شوید باید با اجرای فرمانهای پایانهایِ زیر آن را فعالساز کنید:
sudo systemctl enable ssh
sudo systemctl start ssh
اکنون خواهید توانست به سرور SSH متصل شوید:
احراز هویت با چالش پاسخ
در نهایت، Raspberry Pi شما نیاز دارد برای احراز هویت شما و بعد پردازش پاسختان شما را به چالش بکشد؛ این یعنی باید رمزعبورهای challenge-response (چالشِ پاسخ) را فعالسازی کند.
برای شروع، با اجرای فرمان پایانهای زیر فایل تنظیمات SSH به منظور ویرایش را باز کنید:
sudo nano /etc/ssh/sshd_config
داخل این فایل، بخش ChallengeResponseAuthentication را پیدا کرده و آن را از «نه» به «بله» تغییر دهید.
شما اکنون میتوانید با فشار دادن Ctrl + O و به تبع آن Ctrl + X فایل sshd_config آپدیتشده را ذخیره کنید.
برگردید به Terminal، دیمن[1] SSH را با تنظیمات جدید خود ریستارت کنید:
sudo systemctl restart ssh
از آنجایی که تنظیمات SSH تغییراتی پیدا کرده است، خوب است اگر چک کنید ببینید همچنان میتوانید از طریق SSH به Raspberry Pi خود وصل شوید. برای وصل شدن به سرور SSH باید آدرس آیپی Raspberry Pi خود را بشناسید. اگر چنین اطلاعاتی را در اختیار ندارید، فرمان زیر را روی Pi خود اجرا کنید:
hostname –I
این کار آدرس IP که نیاز دارید استفاده کنید را برخواهد گرداند.
به لپتاپ یا کامپیوتر خود سوئیچ کرده، یک Terminal را اجرا کرده و ممطئن شوید 10.3.000.0 با آدرس آیپی منحصر به فرد شما جایگزین شده است.
ssh pi@10.3.000.0
اکنون به SSH وصل شدهاید.
راهاندازی احزار هویت دوعاملی
سپس، برای تولید کد یکبار مصرف احراز هویت، اپلیکیشن Authenticator را دانلود کنید. اپهای احراز هویت مختلفی در بازار وجود دارد اما برای این آموزش ما از Google Authenticator استفاده میکنیم که هم برای اندروید و هم آیاواس موجود است.
وقتی این اپ موبایل را دانلود کردید، همچنین نیاز دارید ماژول Google Authenticator PAM را نیز روی Raspberry Pi خود نصب کنید.
روی Pi خود، پنجرهی Terminal را باز کرده و فرمان زیرا را اجرا کنید:
sudo apt install libpam-google-authenticator
وقتی Google Authenticator هم روی Raspberry Pi و هم روی دستگاه موبایل شما نصب شد، آمادهاید تا احراز هویت دوعاملی را راهاندازی کنید.
ایجاد کانکشن: لینک کردن Pi خود به دستگاه موبایلتان
برای ایجاد لینکی بین اپ موبایل خود و Raspberry Piتان، کد QR را روی Pi خود تولید کرده و بعد این کد را با استفاده از اسمارتفون یا تبلتتان اسکن کنید.
برای تولید کد QR، به Raspberry Pi بازگردید و فرمان Terminal زیر را اجرا نمایید:
google-authenticator
Raspberry Pi شما ازتان خواهد پرسید آیا توکنهای تأیید اعتبارش باید محدود به زمان باشند یا نه. از آنجایی که این روش امنتر است، معمولاً میخواهید توکنهای تأیید اعتبار زمانمحور باشند مگر آنکه دلیلی برای نخواستن این روش داشته باشید.
Terminal کد QR را تولید خواهد کرد؛ هرچند باید برای مشاهدهی کل بارکد سایز Terminal را تغییر دهید.
همچنین مجموعه کدهای اضطراری هم وجود دارد. اگر گوشی موبایل خود را گم کردید، جا گذاشتید و یا خراب شد این کدها به شما اجازه دسترسی به Raspberry Pi از طریق SSH را خواهد داد؛ حتی بدون دستگاه موبایلتان. ریسک بیرون آمدن از حالت قفل Raspberry Piتان را به جان نخرید. از این کدها جایی نوت بردارید و آنها را در مکانی امن نگه دارید.
از این کد برای وصل کردن Raspberry Pi خود به اپ Google Authenticator استفاده کنید:
- روی اسمارتفون یا تبلت خود اپ Google Authenticator را اجرا کنید.
- در گوشه پایین سمت راست صفحه روی علامت + ضربه بزنید.
- گزینه Scan a QR barcode را انتخاب کنید. در صورت درخواست، به اپ اجازهی دسترسی به دوربین دستگاهتان را بدهید.
- دوربین دستگاه خود را بالا روبروی مانیتور نگه داشته و آن را روی کد QR قرار دهید. به محض اینکه اسمارتفون یا تبلت شما کد QR را بشناسد، اکانتی را ساخته و شروع خواهد کرد به تولید خودکار کدهای احراز هویت.
- به Raspberry Pi خود سوئیچ کنید؛ این پایانه شما را مجبور به آپدیت فایل google_authenticatorتان خواهد کرد. روی دکمهی Y در کیبورد خود فشار دهید.
- از شما خواسته خواهد شد آیا میخواهید نگذارید چندین نفر از یک توکن احراز هویت استفاده کنند یا خیر. کلید Y کیبورد را فشار دهید.
- وقتی ازتان پرسیده شد میخواهید پنجرهی اختلاف زمانی را افزایش دهید، N را فشار دهید چراکه این کار به شما کمک میکند از خود در مقابل حملات جستجوی فراگیر محافظت کنید.
- این پایانه اکنون از شما خواهد خواست محدودیت نرخ[2] را فعال کنید؛ چیزی که شما (و هکرهای احتمالی) را به سه عمل در هر 30 ثانیه محدود خواهد کرد. محدودیت نرخ میتواند کمک کند شما از خود در برابر حمله جستجوی فراگیر و سایر حملات مبتنی بر رمزعبور محافظت کنید؛ بنابراین باید به Yes تمایل داشته باشید مگر آنکه دلیل خاصی داشته باشید.
PAM لینوکس
در آخر باید احراز هویت دوعاملی را با استفاده از [3]PAM فعالسازی کنید.
برای شروع، فایل sshd را در ویرایشگر متن Nano باز کنید:
sudo nano /etc/pam.d/sshd
خط فرمان زیر را اضافه کنید:
auth required pam_google_authenticator.so
با این حال، اینکه خط فرمان زیر را کجا اضافه میکنید مهم است:
- بعد از وارد کردن رمزعبور
اگر میخواهید بعد از وارد کردن رمزعبور Raspberry Pi ازتان کد احراز هویت یکبارمصرف خواسته شود، پس بعد از @include خط فرمان زیر را اضافه کنید.
- پیش از وارد کردن رمزعبور
اگر میخواهید پیش از وارد کردن رمزعبور خود از شما کد احراز هویت یکبار مصرف خواسته شود فرمان زیر را قبل از @include اضافه کنید.
وقتی این تغییرات را اعمال کردید با فشار دادن Ctrl + O و بعد Ctrl + X فایلهای خود را ذخیره کنید.
دیمن[4] SSH را ریستارت کنید:
sudo systemctl restart ssh
حالا هر بار که سعی دارید از طریق SSH وصل شوید، از شما کد تأیید اعتبار یکبارمصرف خواسته خواهد شد.
اکنون که احراز هویت دوعاملی را روی Raspberry Pi خود راهاندازی کردید، میتوانید کمی جلوتر رفته و سرور وب شخصی یا سرور موزیک را هم راهاندازی نمایید. همچنین قادرید با همین ترفندها لایهی امنیتی بیشتری به SSH خود بیافزایید.
[1] در سیستمعاملهای با قابلیت چندکارگی, یک دیمِن (به انگلیسی: Daemon) یک برنامه است که به جای اینکه تحت کنترل مستقیم یک کاربر تعاملی باشد، در پسزمینه اجرا میشود.
[2] rate-limiting
[3] Pluggable authentication module
[4] در سیستمعاملهای با قابلیت چندکارگی, یک دیمِن (به انگلیسی: Daemon) یک برنامه است که به جای اینکه تحت کنترل مستقیم یک کاربر تعاملی باشد، در پسزمینه اجرا میشود.
منبع: کی بازار (فروشگاه آنلاین نرم افزارهای اورجینال)، با دریافت انواع لایسنسهای معتبر از تامینکنندگان جهانی این امکان را برای تمام کاربران فراهم آورده است تا در چند ثانیه، از خدماتی بینالمللی لذت ببرند. در کی بازار امکان خرید لایسنسهای اورجینال نرم افزارهای کاربردی و امنیتی(ویندوز اورجینال، آفیس اورجینال، آنتی ویروس اورجینال، آنتی ویروس کسپرسکی، آنتی ویروس پادویش و آنتی ویروس نود 32) بصورت ارسال آنی فراهم آمده است.