جهش به محتوا
ورود کاربران
مفاهیم پایه شبکه

مقاله از ایمن کردن سرویس SSH

هر زمان نیاز به کمک داشتید، در کنار شما هستیم . با ما تماس بگیرید ( 031-3626 0000 ) یا درخواست خود را به صورت آنلاین ثبت نمایید.

ایمن کردن سرویس SSH

سرویس SSH چیست ؟

پروتکل SSH ( به عنوان Secure Shell نیز شناخته میشود ) یک متد برای احراز هویت به سرورها می‌باشد. این پروتکل قابلیت‌های زیادی را برای امنیت بیشتر به هنگام اتصال به سرورها فراهم می‌سازد .

پروتکل SSH یک جایگزین خوب و ایمن برای راه کار های لاگین به سرورهای لینوکسی است که در قدیم استفاده می‌شدند به طور مثال پروتکل Telnet و یا Rlogin و یا حتی پروتکل های انتقال فایل همانند FTP که با آمدن SSH میتوان بصورت ایمن فایل انتقال داد (SFTP)

موارد استفاده از پروتکل SSH به شرح زیر می‌باشد :

  • فراهم سازی ارتباط ایمن برای کاربران و پروسه های اتوماتیک
  • انتقال فایل ها
  • اجرای کامند ها از راه دور
  • مدیریت زیرساخت شبکه و قسمت های حیاتی

 

SSH چگونه کار میکند ؟

این پروتکل بصورت Client-server کار می‌کند، بدین صورت که ارتباط توسط کلاینت برقرار و کلایت به سرور متصل می‌گردد.

کلاینت SSH با استفاده از Server Public-key سرور را احراز هویت نموده و با استفاده از رمزنگاری متقارن و الگوریتم های Hashing از حریم خصوصی و تمامیت داده‌هایی که بین سرور و کلاینت منتقل می‌شوند اطمینان حاصل می‌کند. تصویر زیر بیانگر این موضوع می‌باشد .

 

ssh hardening

 

ایمن کردن سرویس SSH

راهکار های ایمن تر کردن سرویس SSH به شرح زیر می‌باشد که آنها را بررسی می‌کنیم:

قبل از انجام هرگونه تنظیماتی از تنظیمات یا همان کانفیگ فعلی سرویس SSH بک آپ تهیه نمایید. با دستور زیر یک کپی از فایل تنظیمات SSH به نام backup.sshd_config می‌گیریم.

cp /etc/ssh/sshd_config /etc/ssh/backup.sshd_config

اکنون مراحل زیر را جهت شروع ایمن کردن سرویس SSH آغاز نمایید:

1- غیر فعال سازی لاگین از طریق یوزر root

فایل sshd_config را در مسیر /etc/ssh با یکی از ابزار های ویرایشگر متن مانند vi یا nano باز نمایید سپس PermitRootLogin را در آن بیابید. این ویژگی در ابتدا فعال و به صورت کامند است. تصویر زیر را بررسی بفرمایید.

permitrootlogin
ssh configuration

سپس PermitRootLogin را از حالت کامنت خارج (حذف # ) و مقدار آن را به no تغییر دهید.

 

PermitRootLogi

 

2- تنظیم Idle session

سشن های باز و Idle ( بلا استفاده ) می‌توانند خطرناک باشند و خارج کردن افرادی که در session خود کاری انجام نمی‌دهند مفید است . برای این منظور دو مولفه ClientAliveInterval و ClientAliveCountMax در فایل sshd_config باید به درستی تنظیم شوند.

ClientAliveInterval مدت زمانی را تعریف می‌کند که طی این مدت یک session فعال است و بعد از آن بلا استفاده محسوب می‌شود. واحد آن نیز ثانیه است.

ClientAliveCountMax پارامتری است که تعداد دفعاتی که یک session به حالت بلااستفاده می‌رسد را می‌شمارد.

با تنظیم موارد زیر یک session بلااستفاده بعد از 10 دقیقه Logout می‌شود .

ClientAliveInterval 300
ClientAliveCountMax 2

ClientAliveInterval

 

3- Whitelist Users

در فایل sshd_config می‌توان یوزرهایی که امکان اتصال به سرویس ssh را دارند، محدود کنیم. بنابراین تنها یوزرهایی که در این لیست هستند قادر به لاگین خواهند بود و سایر یوزرها از لاگین به سرور منع می‌شوند.
به طور مثال ما اکانتی با نام maj0rmil4d داریم که می‌خواهیم تنها این یوزر قادر به لاگین باشد :

AllowUsers maj0rmil4d

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

4- تغییر پورت 

یکی دیگر از راه های مرسوم برای در امان ماندن از حملات روی بستر SSH و

تغییر پورت SSH است ، پورت پیش‌فرض این سرویس 22 است برای تغییر پورت در فایل sshd_config عبارت #Port 22 را از حالت کامنت خارج نموده و عدد 22 را به یک عدد چهار یا پنج رقمی مانند 25212 تغییر دهید.

توجه داشته باشید که پورت 25212 باید در فایروال نیز باز باشد.

 

ایمن کردن سرویس SSH

 

5- استفاده از کلید های SSH

به طور پیش‌فرض کاربران با استفاده از یوزرنیم و پسورد به سرویس ssh متصل می‌شوند که این مورد می‌تواند باعث BruteForce شود . ( یعنی مهاجم لیستی از یوزرنیم‌ها و پسوردها را استفاده می‌کند تا بلکه به یوزرنیم و پسورد صحیح دستیابی کند )

برای استفاده از کلید ssh ابتدا باید یک کلید برای سیستم فعلی خود با دستور ssh-keygen ایجاد کنید .

 

ssh hardening

 

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

ssh-copy-id [email protected]

 

 

ssh hardening

 

حال می‌توانیم بدون استفاده از username و password به سرور مقصد به طریق ایمن‌تری متصل شویم.

 

ssh hardening

 

پس از تست ارتباط با سرور با کلید ssh نیاز است ارتباط با سرور را از طریق username و password غیر فعال کنیم.

بدین منظور عبارت
PasswordAuthentication yes
را به
PasswordAuthentication no

را در sshd_config تغییر می‌دهیم.

 

6- نصب fail2ban

fail2ban یک ابزار امنیتی است که قابلتی‌های زیادی جهت افزایش ایمنی سرویس‌ها مانند SSH فراهم می‌آورد. بعنوان مثال برای ایمن کردن سرویس SSH با scan فایل‌های لاگ ssh آی‌پی‌هایی که عملیات‌های غیرمعقولی روی سرویس ssh داشته‌اند را بصورت موقت بلاک می‌نماید.

ابتدا این ابزار را با دستور زیر نصب کنید:

apt-get install fail2ban

حال از فایل کانفیگ اصلی بک آپ تهیه کرده و فایل را ویرایش نمایید:

cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

موارد زیر را در فایل /etc/fail2ban/jail.conf اضافه می‌کنیم.

[sshd]

enabled = true
port = ssh
logpath = %(sshd_log)s

پس از انجام تمام مراحل بالا سرویس ssh را ریستارت می‌کنیم.

service ssh restart

یا

service sshd restart

 

این مقاله برای شما مفید بود؟
بلهخیر