02187273

راهکارهایی برای بالا بردن امنیت پروتکل ssh

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

 پروتکل SSH چیست؟

SSH (پوسته امن) که مخفف Secure Shell یا Secure Socket Shell نیز شناخته می‌شود، یک پروتکل شبکه رمزنگاری برای ارتباط امن با الگوی client–server است که به عنوان جایگزین ایمن برای پروتکل های پوسته راه دور ناامن مانند Telnet در سرورهای شبه یونیکس و rlogin و rexec در سرورهای یونیکس طراحی شده است، SSH هم به پروتکل شبکه رمزنگاری اشاره دارد و هم به مجموعه ابزارهایی که آن پروتکل را پیاده سازی می کنند.

برای کسب اطلاعات بیشتر مقاله ssh چیست را بخوانید. 

نکات کلیدی برای بالابردن امنیت پروتکل SSH

حالا بعد از اینکه متوجه شدید پروتکل ssh چیست، نوبت به آن می‌رسد که راهکارهایی برای بالا بردن امنیت پروتکل ssh ارائه کنیم:

استفاده از نام کاربری و رمز عبور پیچیده

رمزعبور همواره از موارد بحث برانگیز امینتی بوده است همانطور که می دانید هر چقدر رمز عبور شما قوی تر باشد، احتمال حدس زدن آن کمتر و در نتیجه امنیت آن بیشتر می‌شود.

به طور مثال اسناد و اشیاء گرانبهای خود را در یک صندوقچه با قفل معمولی قرار داده اید. مطمئناً باز کردن آن برای سارقین، بسیار ساده خواهد بود. حال اگر قفل این صندوق را از نوع رمزی قرار دهید یا از گاوصندوق با قفل پیچیده استفاده نمایید، چه اتفاقی خواهد‌افتد؟! واضح است که باز کردن این قفل ها برای سارقین کاری زمان بر و یا حتی غیر ممکن می‌شود.

بنابراین برای حفظ اطلاعات در دنیای دیجیتال هم، به روز کردن و پیچیدگی رمزعبور مهم و ضروری است.

از نام کاربری هایی مانند debian, root, centos اجتناب کنید و برای مدیریت کاربری می‌توانید از برنامه های مدیریت رمزعبور مانند Bitwarden استفاده کنید.

برای پیکربندی به فایل sshd_config در مسیر /etc/ssh/ مراجعه کنید.

تعریف بازه زمانی idle یا بیکار

با تعریف بازه زمانی بیکار یا idle در صورتی که کاربر مدتی در سیستم فعالیت نداشته باشد بعد از بازه زمانی مشخص شده به صورت خودکار ارتباطش قطع خواهد شد به عنوان مثال در پیکربندی زیر در نظر گرفته شده که پس 6 دقیقه عدم فعالیت کاربر، ارتباط قطع خواهد شد.

ClientAliveInterval 360

ClientAliveCountMax 0

 غیرفعال کردن رمز عبور خالی

پیکربندی زیر از ورود حساب‌های دارای رمز عبور خالی جلوگیری می‌کند.

PermitEmptyPasswords no 

 استفاده از SSH Protocol 2

SSH دو پروتکل دارد که می تواند از آنها استفاده کند. پروتکل 1 قدیمی تر و دارای امنیت کمتری است و پروتکل 2 جدیدتر و امن تر است و استفاده از آن توصیه می‌شود:

#Protocol 2, 1

Protocol 2 

 محدود کردن دسترسی به کاربرهای خاص

فقط به کاربران خاصی که نیاز به دسترسی از راه دور دارند مجوز ورود بدهید و از ورودکاربران دیگر که نیاز به دسترسی SSH ندارند را جلوگیری کنید.

به طور مثال در این قسمت دسترسی به کاربران user1 و user2 محدود شده است:

AllowUsers user1 user2

تغییر پورت

به طور پیش فرض پورت 22 برای دسترسی به SSH در نظر گرفته شده است که این پورت کاملا شناخته شده است و همه در مورد آن اطلاع دارد و این مورد می‌تواند باعث سواستفاده شود.

در پیکربندی زیر از پورت 2245 به جای 22 استفاده شده است:

Port 2245

 غیرفعال کردن دسترسی به  ssh با استفاده از کاربر root

کاربر root علاوه بر اینکه یک کاربر شناخته شده است دسترسی بسیار بالایی دارد و باعث می شود که دیگران از این کاربری برای حملات خود استفاده کنند و اگر دسترسی به آن پیدا کنند در واقع دسترسی کامل به سیستم پیدا می‌کنند.

PermitRootLogin no

 غیرفعال سازی X11Forwarding

اضافه کردن پیکربندی زیر فایل sshd_config امکان اجرای برنامه های گرافیگی بر روی بستر ssh را غیرفعال خواهد کرد:

X11Forwarding no

 محدود کردن دسترسی به SSH به یک بازه زمانی خاص

به عنوان مثال ما می‌خواهیم فقط در یک بازه زمانی کاری به سرور دسترسی SSH بدهیم، برای پیاده سازی این پیکربندی نیاز داریم فایل sshd را در مسیر زیر ویرایش کنیم:

vim /etc/pam.d/sshd

و پیکربندی زیر را در بخش account اضافه می‌کنیم.

account required pam_time.so

/etc/security/time.conf

در پیکربندی زیر توضیح داده شده است که هر نوع دسترسی از هر ترمینالی با استفاده از کاربر toor یا foo کل ایام هفته از ساعت 09:00 تا ساعت 17:00 اجازه SSH به سرور را دارد.

*;*;toor|foo;Al0900-1700

or

*;*;toor|foo;!Al0900-1700

or

sshd;*;toor|foo;Al0900-1700

فهرست روزهای هفته:

Mo Tu We Th Fr Sa Su Wk Wd Al

 Login با استفاده از کلیدهای عمومی و خصوصی 

تعریف کلید عمومی و خصوصی از موارد مهمی است که امنیت سرورها را افزایش می‌دهد مخصوصا اگر برای کلیدها passphrase نیز تعریف کنیم و فقط امکان ورود با کلید را فعال کنیم

برای ساخت کلید عمومی از دستور زیر استفاده می‌کنیم:

ssh-keygen -t rsa -C “your_email@example.com”

با استفاده از دستور زیر کلید عمومی را به سرور مقصد کپی می‌کنیم:

copy-ssh-id toor@10.10.6.66

در نهایت با استفاده از دستور زیر به سرور ssh می‌زنیم اگر از چندین کلید استفاده می‌کنید با سوییچ i کلید خصوصی مورد را نظر را انتخاب و به سرور مورد نظر ssh می‌زنیم:

ssh toor@10.10.6.66

ssh -i ~/.ssh/id_rsa toor@10.10.6.66

اگر می‌خواهید فقط امکان Login با کلیدها باشد نیاز به اضافه کردن پیکربندی زیر به فایل sshd_config است.

PasswordAuthentication no

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

Sudo systemctl restart sshd

مقاله مرتبط: ” کلید عمومی و خصوصی ” را بخوانید.

جمع بندی مقاله امنیت پروتکل ssh

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

امیدواریم با خواندن این مقاله نکات ارزشمندی را دریافت کرده باشید.

ماهان ویپ

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

به صفحه اینستاگرام ماهان ویپ سری بزنید. 

سوالات متداول

  1. بهترین راه برای بالابردن امنیت پروتکل SSH چیست؟ به طور کلی در خصوص بالابردن امنیت پروتکل SSH راهی قطعی وجود ندارد، اما می‌توانید با راهکارهایی که در این مقاله بیان کردیم، امنیت پروتکل SSH را بالا ببرید.
  2. پروتکل SSH چیست؟  یک پروتکل شبکه رمزنگاری برای ارتباط امن با الگوی client–server است که به عنوان جایگزین ایمن برای پروتکل های پوسته راه دور ناامن مانند Telnet در سرورهای شبه یونیکس و rlogin و rexec در سرورهای یونیکس طراحی شده است،

 

دیدگاه‌ خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

پیمایش به بالا