استفاده از Google Authenticator برای لاگین به لینوکس

چهارشنبه ۱۳ اسفند ۱۳۹۳ - ۱۶:۵۰
مطالعه 8 دقیقه
استفاده از رمزعبور برای محافظت از حساب کاربری به امری مهم تبدیل شده است. کمپانی گوگل با ارائه سرویس احراز هویت دو مرحله‌ای کمک بسیاری به امنیت کاربران در برابر نفوذ هکرها کرده است. با زومیت همراه باشید تا از این سرویس برای لاگین به سیستم لینوکسی استفاده کنیم.
تبلیغات

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

گوگل به تازگی اپلیکیشنی با عنوان Google Authenticator برای پلتفرم‌های اندروید و آی‌او‌اس ارائه کرده است. در واقع این برنامه، کدهای معتبر یا توکن را توسط الگوریتم Time-Based One-Time Password تولید می‌کند. کدهای تولید شده با این الگوریتم فقط یک‌بار قابل استفاده بوده و تا زمان محدودی دارای اعتبار هستند. توسط این برنامه می‌توانید اپلیکشن خاص، حساب جیمیل و سرویس دیگری را برای استفاده از کدهای توکن تعریف کنید.

در این پست از اپلیکیشن Google Authenticator برای لاگین به کالی لینوکس و اوبونتو استفاده خواهیم کرد. کالی لینوکس در حالت عادی از صفحه گرافیکی لاگین استفاده می‌کند. برای ورود از نام‌کاربری پیش‌فرض root و رمزعبور toor استفاده کنید؛ البته ممکن است در حین نصب این اطلاعات را تغییر داده باشید.

آماده‌سازی کرنل لینوکس

در تمامی توزیع‌های لینوکس، قبل از نصب هر برنامه و پکیجی باید کرنل سیستم آماده و بروز شده باشد. ممکن است در حین نصب Google Authenticator با خطا مواجه شده باشید، به‌همین دلیل ابتدا مراحل زیر را طی کنید. ابتدا ویرایشگر متنِ gedit را نصب کنید؛

1-installing gedit

البته لزومی به نصب gedit نیست و می‌توانید از ویرایشگر پیش‌فرض کالی بنام vim استفاده کنید. توسط وایشگر gedit، فایل source.list را باز کرده و تغییراتی را اعمال کنید؛

2-editing source list

فایل سورس شامل لیستی از هدرهای کالی لینوکس برای بروزرسانی سیستم‌عامل است؛ در واقع کالی با این منابع آپدیت می‌شود.

3-source contains

کالی لینوکس بر پایه دبیان است؛ به‌همین دلیل در ابتدای سورس‌ها deb نوشته شده است. هدرهای زیر را به آخر این لیست اضافه کرده سپس ذخیره کنید.

با هر بار تغییراتی که در سیستم اعمال می‌کنید حتما باید کرنل بروزرسانی شود؛ از دستور زیر برای آپدیت استفاده کنید.

4-Kernel Update

بعد از بروزرسانی کرنل، نوبت به نصب هدرها می‌رسد. هدرهایی که در فایل source.list اضافه کرده‌ایم باید توسط کرنل شناسایی شود؛ از دستور زیر استفاده کنید.

5-Installing Headers

اگر قبلا سیستم خود را بروز کرده‌اید، نیازی به تکرار این دستورها نیست. حتما توجه داشته باشید که تمامی دستورات در اوبونتو نیز قابل اجرا است. در صورتی‌که از سیستم‌عامل‌های Redhat، Fedora و CentOS استفاده می‌کنید دستورات متفاوت خواهد بود و باید از yum به‌جای apt-get استفاده کنید.

نصب Google Authenticator

تمامی این مراحل در اوبونتو نسخه ۱۴.۰۴ با رابط کاربری یونیتی و مدیریت لاگینِ LightDM تست شده است. روال کار در دیگر توزیع‌ها نیز به همین شکل است. برای سرویس SSH نیز می‌توان احراز هویت دو مرحله‌ای نصب کرد، اما در حالت دسکتاپ برای اجرای این قابلیت باید نرم‌افزار PAM یا ماژول احراز هویت را نصب کرد. پَم سیستمی است که می‌توان توسط آن متودهای مختلف احراز هویت را در لینوکس بکار برد.

در اوبونتو دستور زیر نرم‌افزار پمِ گوگل را نصب می‌کند. پنجره ترمینال را باز کرده و دستور زیر را وارد کنید. احتمالا نیاز به واردکردن پسورد داشته باشید؛ حتما توجه داشته باشید که در کالی به‌طور پیش‌فرض کاربرِ روت هستید، برای همین لزومی به وارد کردن پسورد نبود.

6-install-google-ubuntu

به همین شکل در کالی هم می‌توانید نصب کنید؛

6-install google

تولید کدهای احراز هویت

در این مرحله باید کد مربوط به لینوکس تولید شود تا آن‌را در اپلیکیشن Google Authenticator وارد کنید. به این منظور ابتدا در سیستم خود ترمینال را باز کرده و دستور زیر را وارد کنید:

7-generating code
7-generating code-kali

در این مرحله تعدادی سئوال مبنی بر تولید کد با محدودیت زمانی از شما پرسیده خواهد شد؛ به تمامی سئوال‌ها جواب y که به معنای yes است، بدهید. در آخر سیستم‌تان کد مخصوص را به شکل زیر ارایه می‌کند.

8-result
8-result

اگر چند کاربر به‌طور همزمان از سیستم استفاده می‌کنند، تمامی این مراحل را برای هرکدام تکرار کنید.

برنامه Google Authenticator را در گوشی خود نصب کنید؛ پس از نصب کد تولید شده را در اپلیکیشن تعریف کنید؛

combine images

مطابق شکل ۳، کد تولید شده در سیستمِ کالی را وارد کنید، پس از آن اپلیکشن توکن‌ با محدودیت زمانی را تولید می‌کند. از این توکن برای لاگین به سیستم استفاده خواهید کرد.

همان‌طور که گفته شد، از این روش برای لاگین به سرویس SSH نیز می‌توان استفاده کرد؛ اما چون در این پست لاگینِ گرافیکی را توضیح داده‌ایم، ممکن است برخی مشکلات ناخواسته پیش آید. برای جلوگیری از این مشکلات مراحل زیر را دنبال کنید؛

از جمله این مشکلات، لاگین از طریق ترمینال لینوکس است؛ شما می‌توانید بدون استفاده از رابط گرافیکی به سیستم خود وارد شوید. در روشی که توضیح داده شد، فقط برای رابط گرافیکی کاربرد دارد؛ پس اگر کسی به سیستم شما دسترسی داشته باشد، بدون نیاز به کد احراز هویت، تنها با کمک ترمینال به سیستم شما نفوذ خواهد کرد.

برای رفع این مشکل در سیستم اوبونتو با رابط لاگینِ LightDM دستورات زیر را اجرا کنید.

6-lightDM

با این دستور فایل lightdm که حاوی تنظیمات لاگین است، باز می‌شود. داخل این فایل کد زیر را اضافه کنید:

auth required pam_google_authenticator.so nullok

اگر  nullok  در دستور وجود داشته باشد، کاربرانی که حتی کد احراز هویت نداشته باشند به سیستم لاگین خواهند شد. برای جلوگیری از این امر، nullok را حذف کرده و به فایلِ lightdm اضافه کنید. از این پس فقط کاربرانی که دارای کد احراز هویت باشند به سیستم لاگین خواهند شد.

9-login

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

اگر هنگام نصب اوبونتو گزینه Home Directory Encryption را انتخاب کرده باشید، ممکن است در این مرحله دچار مشکل شوید. با انتخاب این گزینه، دایرکتوری خانه یا همان محلی که در لینوکس فایل‌های سیستمی قرار دارند، رمزگذاری می‌شود. از آنجایی‌که نرم‌افزار PAM فایل‌های توکن خود را در این دایرکتوری نگه‌ می‌دارد، با رمزگذاری که توسط لینوکس انجام می‌گیرد، ممکن است دچار اختلال شوند. به‌همین دلیل در سیستم‌هایی که Home Directory Encryption فعال نباشد، اپلیکیشن احراز هویت بهتر کار خواهد کرد.

قابلیت احراز هویت گوگل را فقط برای رابط گرافیکی فعال کردیم؛ اما در شرایطی که مشکلی برای سرویس پم به‌وجود آید، می‌توان از طریق ترمینال به سیستم نفوذ کرد. برای جلوگیری از لاگین توسط ترمینال، ابتدا کلیدهای ترکیبی ctrl+alt+F2 را فشار دهید تا ترمینال مجازی باز شود؛ با نام‌کاربری و پسورد اکانت اوبونتو لاگین شوید. دستور زیر را در ترمینال وارد کنید:

sudo nano /etc/pam.d/lightdm

توسط این دستور فایل lightdm باز می‌شود، کدی که در مراحل بالا وارد کردیم را پاک خواهیم کرد. در ویرایشگر nano پس از اعمال تغییرات دکمه‌های ترکیبی ctrl+X را فشار داده و سپس y را وارد کنید.

اگر می‌خواهید امنیت لاگین را افزایش دهید، باید در فایلِ PAM نیز تغییراتی اعمال کنید. با اضافه کردن کد زیر، برای هر نوع لاگین باید کد احراز هویت را وارد کنید:

auth required pam_google_authenticator.so

 دقت کنید، در صورتی این کد را اضافه کنید که به کدهای تولید شده توسط اپلیکیشن دسترسی دارید؛ و اگر می‌خواهید دیگر کاربرانِ شبکه امکان لاگین نداشته باشند، nullok را از آخر دستور پاک کنید.

تبلیغات
داغ‌ترین مطالب روز

نظرات

تبلیغات