مهدی اشراقی
مهندس شبکه و Embeded system
مهدی اشراقی
مهندس شبکه و Embeded system
نوشته بلاگ

امن سازی SSH در لینوکس با تأیید هویت ۲ مرحله ای گوگل

۵, مرداد,۱۳۹۹ امنیت, لینوکس
امن سازی SSH در لینوکس با تأیید هویت ۲ مرحله ای گوگل

 

سلام .در این پست قصد دارم آموزش قدم به قدم امن سازی لینوکس با تأیید هویت ۲ مرحله گوگل رو براتون توضیح بدم.

پس با من همراه باشید .

من در اینجا از Ubuntu Server به عنوان سیستم سرور و از Google Authenticator هم به عنوان تأیید کنند ۲ مرحله ای استفاده میکنم .

بریم سر اصل مطلب

بزرگترین مشکلی که ما همیشه باهاش سروکار داریم اینه که روی SSH سرور ما از روشهای مختلف مورد حمله قرار میگیره . یکی از راه های محافظت در مقابله حملات استفاده از Fail2ban بود که آموزش نحوه استفاده و راه اندازیش رو کامل توضیح دادم اگر نخوندینش یه سر بهش بزنین .

اما مشکلی که Fail2ban داره اینه که اگر هکر از تعداد زیادی هاست استفاده کنه اون موقع Fail2ban خیلی کار خاصی نمیتونه انجام بده . پس میریم سراغ روش بعدی یعنی امن کردم SSH با استفاده از تأیید هویت ۲ مرحله ای :

مراحل راه اندازی :

  1. نصب روی لینوکس (سرور )
  2. راه اندازی و تنظیم PAM
  3. پیکربندی OpenSSH

۱. نصب روی لینوکس (سرور )

خوب وارد محیط خط فرمان سرور خودتون بشید و منابع یا (repository) های سرور رو به روز کنید :

حالا با دستور زیر Google Authenticator رو روی سرور نصب کنید .

تایید هویت 2 مرحله ای در لینوکس

با دستور بالا ۲ ماژول PAM و libqrencode3 روی سرور ما نصب میشه . ماژول PAM برای ساخت کلید TOTP استفاده میشه که الگوریتم ساخت کلید بر مینای زمان هست .  کتابخانه libqrencode3 در برای ایجاد QR کد که شما بتونید با استفاده از دوربین موبایل خودتون ارتباط  رو با Google Authenticator برقرار کنید .

۲.راه اندازی و تنظیم PAM :

خوب حالا میریم سراغ تنظیم و راه اندازی

این قسمت درباره گزینه های موثر در امن سازی لینوکس با تأیید هویت ۲ مرحله گوگل هست .

دستور زیر رو وارد کنید تا وارد محیط تنظیمات Google Authenticator بشید :

بعد از اجرا دستور بالا یه سری سوال از شما میپرسه که با همدیگه اونها رو تکمیل میکنیم .

آیا میخواید توکن رو بر مبنای زمان اجرا کنید (یعنی میخواید از Google Authenticator استفاده کنید ؟) که شما y رو به نشانه تأیید وارد کنید .

حالا باید کلیدی که تولید شده رو داخل نرم افزار Google authenticator خودتون وارد کنید ،اگر برنامه رو ندارید از این لینک ها استفاده کنید    اندروید    آیفون

2fa qr code

 

اکیدا توصیه میکنم  emergency scratch codes خودتون رو در یه جای امن ذخیره کنید . این کد برای مواقعی طراحی شده که شما دسترسی به گوشی نداشتید . در این صورت فقط با داشتن این کد به سرور خودتون میتونید دسترسی داشته باشید . من این قسمت رو با خط چین قرمز مشخص کردم پس دقت کنید !

 

اجازه بدید کد ایجاد شده بر روی سرور شما هم ذخیره بشه کلمه y رو به نشونه تأیید فشار بدید .

این قسمت مربوط به ورود بر مبانی زمان هست . توصیه من تأیید این قسمت هست . با تأیید این قسمت شما بعد از استفاده از کد ورود مجدد مجاز به استفاده از اون کد نیستید . این مورد برای جلوگیری از حملات مرد میانی بسیار موثره . برای تأیید y و برای عدم تأیید n رو تایپ کنید .

این قسمت ۲ حالت داره :

  1. اگر n رو وارد کنید بعد از ورود ۳ کد اشتباه در ۱ دقیقه و ۳۰ ثانیه دسترسی شما محدود میشه
  2. اگر y رو وارد کنید بعد از ورود ۸ کد اشتباه در ۴ دقیقه دسترسی شما محدود میشه .

پیشنهاد من Y هست.

این قسمت هم برای محدود کردن تلاش هست که اگر ۳ کد اشتباه وارد کنید دسترسی شما مسدود میشه .

توضیه من به شما تاید (y) هست.

امن سازی ssh در لینوکس با تأیید هویت ۲ مرحله گوگل

خوب قسمت تنظیم PAM تموم شد و الان باید بریم سراغ پیکربندی SSH.

۳. پیکربندی OpenSSH :

در این مرحله اصلا ارتباط خودتون رو با SSH اصلا قطع نکنید و تا انتها پیش برید .

قطع شدن ارتباط در میانه کار باعث میشه شما به سرور دسترسی نداشته باشید !

برای شروع فایل تنظیمات PAM سرور رو با دستور زیر باز کنید :

این کد رو به فایل بالا اضافه کنید :

در مرحله بعد باید SSH رو تنظیم کنیم که تأیید هویت ۲ مرحله ای رو پشتیبانی کنه .

فایل sshd_config رو با ویرایشگر باز کنید

دنبال عبارت  ChallengeResponseAuthentication  بگردید و اون رو از no به yes تغییر بدید.

حالا فقط کافیه سرویس SSH رو یکبار با استفاده از دستور زیر راه اندازی مجدد (restart) کنید .

حالا بعد از ارتباط مجدد با SSH بعد از وارد کردن نام کاربری و رمز عبور صحیح از شما verification code میخواد که با وارد کردن عدد ۶ رقمی که google authrnticator به شما میده میتونید به لینوکس خودتون دسترسی داشته باشید .

login linux with 2fa

لذت امن سازی لینوکس با تأیید هویت ۲ مرحله گوگل رو ببرید .

لطفا اگه سوال داشتید بپرسید .

 

برچسب ها:
درج دیدگاه

ضبط پیام صوتی

زمان هر پیام صوتی 1 دقیقه است