آموزش امنیت ssh در 8 گام

ssh یکی از مهم ترین و حساس ترین سرویس های لینوکس است که همواره مورد توجه هکرها بوده و امنیت آن تاثیر زیادی بر امنیت کلی سیستم دارد . در این پست سعی داریم شما را با راه های امنیت سرویس ssh آشنا کنیم .

توجه:  اگر تسلط کافی بر روی سیستم عامل لینوکس ندارید و تنها قصد آشنایی و یادگیری دارید از سیستم های آزمایشی و مجازی و لوکال استفاده نمائید و هرگز از سیستم های فعال ریموت و مهمی که احتمالا در اختیار شماست برای تست استفاده نکنید.

توجه : مسبر فایل تنظیمات SSH  بصورت etc/ssh/sshd_conf/ بوده و پس از هر تغییر باید سرویس SSH  مجددا راه اندازی شود.
دستور restart  سرویس SSH بصورت زیر می باشد:

CentOS / RHEL / Fedora / Redhat  
# /etc/init.d/sshd restart
OR
# service sshd restart
Debian / Ubuntu  
# /etc/init.d/ssh restart
OR
# service ssh restart
FreeBSD 
# /etc/rc.d/sshd restart

گام اول : تغییر پورت پیش فرض ssh
پورت پیشفرض سرویس ssh پورت 22 بوده و بسیاری از هکر ها از پورت اسکنر ها برای شناسایی سیستم هایی که دارای سرویس ssh هستند استفاده می کنند. با تغییر پورت پیش فرض سیستم شما از هجوم حملات هکرهایی که به دنبال شناسایی سرویس ssh روی تعداد زیادی از سیستم ها به شکل تصادفی و انجام عملیات Brouteforce هستند در امان خواهد بود.. توجه داشته باشید که بسیاری از پورت اسسکنرها نظیر nmap بصورت پیش فرض پورت های بالای 1024 رااسکن نمی کنند پس انتخاب یک پورت با شماره بالا مثل 20654 می تواند کار هکر ها را در شناسایی پورت ssh سخت کند و درصد حملات به سیستم شما را کاهش دهد.
برای تغییر پورت پیش فرض ssh کافی است فایل /etc/ssh/sshd_config را در حالت ویرایش باز کرده و خط زیر را پیدا کنید.

Port  22

سپس شماره پورت را به شماره دلخواه تغییر دهید .

Port  20354

توجه مهم : قبل از تغییر پورت پیش فرض اگر FireWall روی سیستم فعال است پورت جدید را در تنظیمات FireWall باز کنید چرا که در غیر این صورت قادر به اتصال به پورت مورد نظر نخواهید بود.( عدم باز بودن پورت sshمی تواند در موردvps ها و سیستم هایی که دسترسی فیزیکی به آنها ندارید دردسر ساز باشد و دسترسی شما به سرور کاملا قطع خواهد شد )
توجه : ترجیحا از انتخاب اعداد رند مانند 20000 یا 44444 خودداری کنید.

گام دوم : فقط استفاده از پروتکل ssh 2

در واقع 2 ورژن پروتکل ssh وجود دارد که استفاده از ورژن 1 به جهت وجود نقطه ضعف های امنیتی مانند SSH Insertion Attack و man-in-the-middle در آن توصیه نمی شود. پس فایل تنظیمات ssh مجددا باز کنید و خط زیر را پیدا کنید:

Protocol 2,1

سپس آن را بصورت زیر ویرایش کنید.

Protocol 2

گام سوم : غیر فعال کردن ورود مستقیم کاربر root
شما نباید اجازه بدهید که یک کاربر با سطح دسترسی Root بتواند از طریق ssh به سیستم لاگین کند چرا که اگر یک هکر با کاربرسطح Root به سیستم لاگین کند بسیار مخرب تر خواهد بود تا یک کاربر سطح پایین.
برای این کار در فایل تنطیمات ssh خط زیر را پیدا کنید:

PermitRootLogin yes

سپس yes را به no تغییر دهید:

PermitRootLogin no

از این پس با هر کاربر سطح پایین می توانید به سیستم ssh کرده و پس از آن در صورت نیاز سطح دسترسی خود را با استفاده از دستور suبه root افزایش دهید.

#su root 

همچنین در صورت نیاز برای مشخص کردن اینکه چه کاربرانی می توانند از طریق ssh به سیستم login کنند کافی است در انتهای فایل تنظیمات ssh خط زیر را که شامل دستور AllowUsers و لیستی از کاربران مجاز با استفاده از یک فاصله (space)است را قرار دهید.

AllowUsers user1 user2 user3

گام چهارم : ساخت بنر هشدار ssh

گاهی اوقات یک هشدار ساده می تواند بعضی هکرها را از سیستم شما دور کند بطور مثال وقتی هکر وارد محیط لاگین می شود به او اخطار داده می شود که کلیه اطلاعات او ذخیره و کنترل شده و در صورت انجام هر نوع عمل غیرفانونی تحویل مراجع قانونی خواهد شد.
برای این کار به مسیر /etc/ رفته و یک فایل بنام ssh-banner.txt ایجاد و متن زیر را در آن قرار داده و فایل را ذخیره کنید.

###############################################################
ALERT! 
You are entering into a secured area! Your IP, Login Time, Username has been noted and has been sent to the server administrator!
This service is restricted to authorized users only. All activities on this system are logged.
Unauthorized access will be fully investigated and reported to the appropriate law enforcement agencies. 
###############################################################

سپس به فایل کانفیگ ssh مراجعه ، خط زیر را به آن اضافه نموده و سرویس ssh را restart کنید.

Banner /etc/ssh-banner.txt

گام پنجم : محدود کردن IP از طریق فایل های hosts.deny و hosts.allow
شما می توانید لاگین کردن به ssh را محدود به ip های خاص کنید به این ترتیب هیچ کس دیگری حتی با دانستن نام کاربری و رمز عبور نمی تواند به سیستم وارد شود.
برای این کار ابتدا فایل etc/hosts.allow/ را در حالت ویرایش باز کرده و آیپی های مورد تائید را بصورت زیر بایک فاصله وارد کنید.

sshd: 192.168.1 193.180.177.13

سپس فایل etc/hosts.deny/ را در حالت ویرایش باز کرده و خط زیر را به آن اضافه کنید تا پورت ssh برای سایر آیپی ها غیر قابل دسترسی باشد .

sshd: ALL

از این پس تنها کامپیوتر های عضو شبکه 192.168.1.0/24 و کامپیوتری با آیپی 93.180.177.13 می توانند از سرویس ssh استفاده کنند و سایر کامپیوتر ها قبل از دیدن صفحه لاگین با پیغام خطای زیر مواجه می شوند.

ssh_exchange_identification: Connection closed by remote host

توجه : حتما قبل از انجام این مرحله مطمئن شوید آیپی صحیح و ثابت خود را در فایل hosts.allow وارد کرده اید.

گام ششم : محدود کردن IP از طریق iptables
برای باز کردن یک آیپی برای اتصال به سرویس ssh در iptable دستور زیر را ویرایش کرده و بجای 193.180.177.13 آیپی سیستمی که می خواهید با آن به ssh لاگین کنید و بجای 22 پورت جدید ssh را وارد کنید و سپس آن را در محیط ترمینال اجرا کنید.

~# iptables -A INPUT -p tcp -m state --state NEW --source 193.180.177.13 --dport 22 -j ACCEPT

سپس کد زیر را ویرایش و اجرا کنید تا پورت ssh برای سایر آیپی ها غیر قابل دسترسی باشد .

~# iptables -A INPUT -p tcp --dport 22 -j DROP
~#service iptables save

گام هفتم : نصب اسکریپت های امنیتی کنترل لاگین sshمانند Fail2ban و DenyHosts
این برنامه ها با بررسی و تحلیل لاگ فایل ها و کشف حملات هکری و شناسایی آیپی هکرها بصورت هوشمند ارتباط هکر ها را با استفاده از iptables یا TCP Wrapper’s قطع می کنند و امکان مانیتور رویدادها را برای مدیر سیستم ایجاد می کنند. در واقع این برنامه ها برای ممانعت از حملات brouteforce بسیار مفید هستند.
توجه : نصب و استفاده از این برنامه ها بصورت جداگانه آموزش داده شده است.

آموزش نصب و راه اندازی Fail2ban برای امنیت ssh

گام هشتم :استفاده از روش های جایگزین لاگین با یوزر و پسورد مانند ssh-keygen (در صورت نیاز)
در این روش شما با ایجاد کلید دو سیستم را به یکدیگر معرفی کرده و دیگر برای دسترسی نیاز به نام کاربری و پسورد ندارید. این روش بیشتر در شرایط خاص مورد استفاده قرار می گیرد.
توجه : تنظیم و استفاده از این روشا بصورت جداگانه آموزش داده می شود

 

عنوان : آموزش امنیت ssh در 8 گام,امنیت ssh,امنیت سرور,امنیت لینوکس,Fail2ban,DenyHosts,ssh security

0 نظر

پاسخ دهید

می خواهید به بحث بپیوندید ؟

دیدگاهتان را بنویسید