ایمن سازی SSH با استفاده از احراز هویت دو مرحله ای (Google Authenticator)
ایمن سازی SSH با استفاده از احراز هویت دو مرحله ای (Google Authenticator)
اجرای سرور لینوکس خود می تواند بسیار چالش برانگیز باشد،
به خصوص اگر می خواهید امنیت سرور را در سطح بالایی نگه دارید و تا حد امکان از داده های شخصی محافظت کنید.
در طول راه اندازی اولیه سرور، ممکن است یک جفت کلید RSA برای اتصال به سرور بدون استفاده از رمز عبور ایجاد کرده باشید که یکی از روش های توصیه شده برای بهبود امنیت کلی است.
با این حال، در موارد خاص ممکن است این کافی نباشد، بنابراین اجرای احراز هویت دو مرحلهای باید قدم بعدی شما باشد.
این امر با ایجاد گذرواژه های یکبار مصرف مبتنی بر زمان، لایه دیگری از امنیت را اضافه میکند،
بنابراین هر کسی که به سرور متصل میشود باید به گوشی هوشمند شما دسترسی داشته باشد.
در این راهنما، نحوه ایمن سازی SSH خود را با استفاده از احراز هویت دو مرحله ای در سرور CentOS 7 توضیح خواهیم داد.
Google Authenticator را روی گوشی هوشمند نصب کنید
قبل از شروع، برنامه Google Authenticator را دانلود و بر روی گوشی هوشمند خود نصب کنید.
این اپلیکیشن برای iOS و اندروید در دسترس است.
این برنامه برخی از ویژگی های مفید مانند راه اندازی خودکار از طریق کد QR، پشتیبانی از چندین ارائه دهنده و حساب، پشتیبانی از توکن های مبتنی بر زمان و غیره را ارائه می دهد.
Google Authenticator را روی CentOS 7 نصب کنید
مرحله اول این است که برنامه Google Authenticator را روی سرور CentOS 7 خود نصب کنید.
البته ابتدا به سرور خود متصل شوید و اگر EPEL repo قبلاً نصب نشده است، آن را نصب کنید:
yum install google-authenticator
احراز هویت دو مرحله ای را فعال کنید
برای فعال کردن احراز هویت دو مرحله ای برای سرویس SSH خود، اولین کاری که باید انجام دهید این است که یک کلید برای کاربری ایجاد کنید که با آن وارد می شوید.
برای ایجاد کلیدها، برنامه Google Authenticator را روی سرور خود اجرا کنید:
google-authenticator
برنامه از شما می پرسد که آیا توکن های احراز هویت باید مبتنی بر زمان باشند یا نه.
از آنجایی که میخواهیم توکنهای مبتنی بر زمان را تنظیم کنیم، برای ادامه، y را وارد کنید.
Do you want authentication tokens to be time-based (y/n) y
سوال بعدی این است که آیا میخواهید استفاده چندگانه از یک توکن احراز هویت یکسان را ممنوع کنید؟
هر توکن به مدت 30 ثانیه معتبر خواهد بود و بلافاصله پس از استفاده منقضی می شود. برای ادامه y را وارد کنید.
Do you want to disallow multiple uses of the same authentication
token? This restricts you to one login about every 30s, but it increases
your chances to notice or even prevent man-in-the-middle attacks (y/n) y
.
اگر انتظار ندارید مشکلات همگام سازی بین کلاینت و سرور وجود داشته باشد، به سوال بعدی با n پاسخ دهید.
By default, tokens are good for 30 seconds. In order to compensate for
possible time-skew between the client and the server, we allow an extra
token before and after the current time. If you experience problems with
poor time synchronization, you can increase the window from its default
size of +-1min (window size of 3) to about +-4min (window size of
17 acceptable tokens).
Do you want to do so? (y/n) n
در مرحله بعد، می توانید نرخ-محدودیت را برای ماژول احراز هویت فعال کنید.
این به شما این امکان را می دهد که هر 30 ثانیه 3 بار وارد شوید، بنابراین برای فعال کردن این ویژگی، y را وارد کنید.
If the computer that you are logging into isn't hardened against brute-force
login attempts, you can enable rate-limiting for the authentication module.
By default, this limits attackers to no more than 3 login attempts every 30s.
Do you want to enable rate-limiting (y/n) y
با پاسخ به این سوال، تنظیمات Google Authenticator را تمام کرده اید.
تنظیمات در فایل ~/.google_authenticator ذخیره میشوند و اگر میخواهید یک نسخه پشتیبان از این فایل ایجاد کنید، میتوانید آن را در مکانی امن کپی کنید.
مرحله بعدی پیکربندی OpenSSH است.
فایل پیکربندی PAM را برای SSH با استفاده از ویرایشگر متن انتخابی خود باز کنید.
ما از نانو استفاده خواهیم کرد:
nano /etc/pam.d/sshd
به پایین فایل بروید و خط زیر را اضافه کنید:
auth required pam_google_authenticator.so
فایل دیگری که باید ویرایش کنید، فایل پیکربندی SSH است. فایل را باز کنید:
nano /etc/ssh/sshd_config
Challenge Response Authentication را داخل این فایل فعال کنید:
ChallengeResponseAuthentication yes
برای اعمال تغییرات، سرویس SSH را مجددا راه اندازی کنید:
systemctl restart sshd.service
تبریک می گویم! شما اکنون سرویس SSH را روی سرور خود با استفاده از احراز هویت دو مرحله ای ایمن کرده اید.
برای آزمایش موفقیت آمیز بودن پیکربندی، یک جلسه SSH جدید شروع کنید و سعی کنید به سرور خود وارد شوید.
پس از عبور از اولین روش احراز هویت، از شما خواسته می شود که کد تأیید تولید شده توسط برنامه تأیید هویت Google را وارد کنید.
کد را روی گوشی هوشمند خود دریافت خواهید کرد. برای ورود به سرور کد تایید را وارد کنید.
مطالب مرتبط:
دوره آموزشی امنیت سرورهای لینوکسی lpic 3-303
دوره آموزشی Tunnelling در Linux
پک آموزشی ورود به دنیای لینوکس Linux Essentials
دوره آموزشی +Linux یا LPIC 1 – Exam 101
دیدگاهتان را بنویسید
برای نوشتن دیدگاه باید وارد بشوید.