آموزش شناسایی تلاش‌های ناموفق برای لاگین به ssh در لینوکس

آموزش شناسایی تلاش‌های ناموفق برای لاگین به ssh در لینوکس

تمامی تلاش‌های ناموفق برای لاگین به ssh توسط rsyslog در لینوکس در فایل لاگ ذخیره می‌شوند که این کار را برای شناسایی و یافتن حرکات مشکوک برای مدیر سرور آسان می‌کند.

یکی از ساده‌ترین راه‌ها برای یافتن لاگین های ناموفق به ssh استفاده از دستورات لینوکس می‌باشد، توسط دو دستور cat و grep می‌توان به صورت ترکیبی عملیات بررسی و جستجو را به صورت فیلتر شده درون لاگ فایل‌ها انجام داد.

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

تمامی دستورات اجرا شده در این آموزش با دسترسی روت انجام می‌شود، بدیهی است داشتن دسترسی سطح پایین‌تر به سرور عملیات شناسایی تلاش‌های ناموفق برای لاگین به ssh را غیرممکن خواهد کرد.

 

مراحل شناسایی تلاش‌های ناموفق برای لاگین به ssh در سرور

اولین دستور که در آن از grep استفاده شده برای ما خطوطی که شامل کلمه Failed password باشند در خروجی چاپ می‌کند.

grep "Failed password" /var/log/auth.log

failed login-شناسایی تلاش‌های ناموفق برای لاگین به ssh

البته همین عملکرد را با دستور cat به شکل زیر می‌توان در خروجی مشاهده کرد.

"cat /var/log/auth.log | grep "Failed password

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

اگر به دنبال اطلاعات بیشتری برای نمایش در خروجی هستید می‌توانید دستور زیر را در ssh وارد کنید.

egrep "Failed|Failure" /var/log/auth.log

همان‌طور که در بالا هم اشاره کردیم مسیر فایل لاگ در توزیع‌های مختلف لینوکس متفاوت است برای مثال در توزیع ردهت بیس مثل centos مسیر فایل لاگ متفاوت بوده و باید دستور زیر را وارد کنید.

egrep "Failed|Failure" /var/log/secure

اگر هدف شما از شناسایی تلاش‌های ناموفق برای لاگین به ssh در لینوکس پیدا کردن Ip هکر و بستن دسترسی آن توسط فایروال است دستور زیر را در ssh وارد کرده تا لیست ip افرادی که تلاش‌های ناموفقی برای ورود به ssh داشته‌اند را به شما نمایش دهد.

grep "Failed password" /var/log/auth.log | awk '{print $11}' | uniq -c | sort -nr

در توزیع‌های جدید مبتنی بر system می‌توانید توسط journalctl اقدام به شناسایی تلاش‌های ناموفق برای لاگین به ssh کنید.

"journalctl _SYSTEMD_UNIT=ssh.service | egrep "Failed|Failure
journalctl _SYSTEMD_UNIT=sshd.service | egrep "Failed|Failure"  #In RHEL, CentOS

در توزیع‌های ردهت بیس مثل centos برای استفاده از journalctl باید دستور را به شکل زیر وارد نمایید تا خروجی صحیحی داشته باشید.

"journalctl _SYSTEMD_UNIT=sshd.service | grep "failure
"journalctl _SYSTEMD_UNIT=sshd.service | grep "Failed

بعد از شناسایی ip هکر می‌توانید آن را توسط فایروال مسدود کنید به صورت پیش‌فرض لینوکس از iptables برای دیواره آتش استفاده می‌کند ولی اگر می‌خواهید یک فایروال حرفه‌ای داشته باشید می‌توانید از csf استفاده کنید که پیش‌تر آموزش نصب csf را در سایت منتشر کردیم.

آیا این مطلب برای شما مفید بود؟

میانگین امتیاز ۵ / ۵. تعداد آرا: ۵

اشتراک در
اطلاع از
guest

2 نظرات
قدیمی‌ترین
تازه‌ترین بیشترین رأی
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها
Sam

سلام
بابت انتشار این مطلب مفید به سهم خودم از شما متشکرم
یک مشکل داشتم
سرور مجازی بنده centos هستش بخش اول فرمان ها که مشاهده لاگ هست رو از طریق کد: egrep “Failed|Failure” /var/log/secure با موفقیت انجام دادم
اما بخش دوم فرمان یعنی نمایش ip ها کار نکرد. ممکن است یک بررسی بفرمائید.
بنده از این بخش کدها استفاده کردم
grep “Failed password” /var/log/auth.log | awk ‘{print $11}’ | uniq -c | sort -nr

journalctl _SYSTEMD_UNIT=ssh.service | egrep “Failed|Failure”
journalctl _SYSTEMD_UNIT=sshd.service | egrep “Failed|Failure” #In RHEL, CentOS

journalctl _SYSTEMD_UNIT=sshd.service | grep “failure”
journalctl _SYSTEMD_UNIT=sshd.service | grep “Failed”

ممنون میشوم توضیحی در اینخصوص عنایت نمائید.
ارادتمند شما

فرم ثبت نام در مسابقه فتح پرچم

برای شرکت در مسابقه باید با اطلاعات صحیح عضو شوید
ثبت نام در مسابقه
close-link