راهکارهایی برای بالا بردن امنیت پروتکل 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 به این صفحه سری بزنید.
به صفحه اینستاگرام ماهان ویپ سری بزنید.
سوالات متداول
- بهترین راه برای بالابردن امنیت پروتکل SSH چیست؟ به طور کلی در خصوص بالابردن امنیت پروتکل SSH راهی قطعی وجود ندارد، اما میتوانید با راهکارهایی که در این مقاله بیان کردیم، امنیت پروتکل SSH را بالا ببرید.
- پروتکل SSH چیست؟ یک پروتکل شبکه رمزنگاری برای ارتباط امن با الگوی client–server است که به عنوان جایگزین ایمن برای پروتکل های پوسته راه دور ناامن مانند Telnet در سرورهای شبه یونیکس و rlogin و rexec در سرورهای یونیکس طراحی شده است،