استفاده از رمزعبور برای محافظت از حساب کاربری به امری مهم تبدیل شده است. کمپانی گوگل با ارائه سرویس احراز هویت دو مرحلهای کمک بسیاری به امنیت کاربران در برابر نفوذ هکرها کرده است.
به گزارش سافت گذر به نقل اززومیت؛ سرویس احراز هویت دو مرحلهای لایهی دومی برای تشخیص حساب کاربری شما
هنگام ورود به حساب، بکار میرود. اگر این سرویس را برای حساب جیمیلتان
فعال کرده باشید، با هر بار لاگین کدی را به شماره موبایل شما ارسال
میکند؛ با وارد کردن این کد، تشخیص هویت انجام شده و به حساب کاربری هدایت
میشوید.
گوگل به تازگی اپلیکیشنی با عنوان Google Authenticator برای پلتفرمهای
اندروید و آیاواس ارائه کرده است. در واقع این برنامه، کدهای معتبر یا
توکن را توسط الگوریتم Time-Based One-Time Password تولید میکند. کدهای
تولید شده با این الگوریتم فقط یکبار قابل استفاده بوده و تا زمان محدودی
دارای اعتبار هستند. توسط این برنامه میتوانید اپلیکشن خاص، حساب جیمیل و
سرویس دیگری را برای استفاده از کدهای توکن تعریف کنید.
در این پست از اپلیکیشن Google Authenticator برای لاگین به کالی لینوکس
و اوبونتو استفاده خواهیم کرد. کالی لینوکس در حالت عادی از صفحه گرافیکی
لاگین استفاده میکند. برای ورود از نامکاربری پیشفرض root و رمزعبور
toor استفاده کنید؛ البته ممکن است در حین نصب این اطلاعات را تغییر داده
باشید.
آمادهسازی کرنل لینوکس
در تمامی توزیعهای لینوکس، قبل از نصب هر برنامه و پکیجی باید کرنل
سیستم آماده و بروز شده باشد. ممکن است در حین نصب Google Authenticator با
خطا مواجه شده باشید، بههمین دلیل ابتدا مراحل زیر را طی کنید. ابتدا
ویرایشگر متنِ gedit را نصب کنید؛

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

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

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

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

اگر قبلا سیستم خود را بروز کردهاید، نیازی
به تکرار این دستورها نیست. حتما توجه داشته باشید که تمامی دستورات در
اوبونتو نیز قابل اجرا است. در صورتیکه از سیستمعاملهای Redhat، Fedora و
CentOS استفاده میکنید دستورات متفاوت خواهد بود و باید از yum بهجای
apt-get استفاده کنید.
نصب Google Authenticator
تمامی این مراحل در اوبونتو نسخه ۱۴.۰۴ با رابط کاربری یونیتی و مدیریت
لاگینِ LightDM تست شده است. روال کار در دیگر توزیعها نیز به همین شکل
است. برای سرویس SSH نیز میتوان احراز هویت دو مرحلهای نصب کرد، اما در
حالت دسکتاپ برای اجرای این قابلیت باید نرمافزار PAM یا ماژول احراز هویت
را نصب کرد. پَم سیستمی است که میتوان توسط آن متودهای مختلف احراز هویت
را در لینوکس بکار برد.
در اوبونتو دستور زیر نرمافزار پمِ گوگل را نصب میکند. پنجره ترمینال
را باز کرده و دستور زیر را وارد کنید. احتمالا نیاز به واردکردن پسورد
داشته باشید؛ حتما توجه داشته باشید که در کالی بهطور پیشفرض کاربرِ روت
هستید، برای همین لزومی به وارد کردن پسورد نبود.

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

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


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


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

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

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

پس از وارد کردن پسورد اوبونتو، با صفحه فوق مواجه خواهید شد. با کدی که اپلیکیشن تولید کرده میتوانید از این مرحله عبور کنید.
اگر هنگام نصب اوبونتو گزینه 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 را از آخر دستور پاک کنید.