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

    عضویت در

    کانال تلگرام

    توسینسو

    اطلاعات مطلب
      مدرس/نویسنده
      امیرحسین کریم پور
      امتیاز: 144754
      رتبه:7
      11
      468
      459
      4716
      امیرحسین کریم پور ، مدیر انجمن سخت افزار و تجهیزات دیجیتال TOSINSO ، متخصص شبکه ، تخصص در حوزه سیستم عامل های کلاینت و سرور مایکروسافت ، سیستم عامل لینوکس ، علاقه مند به حوزه امنیت اطلاعات و تست نفوذ سنجی ... پروفایل کاربر

      از کجا متوجه شویم که سرور لینوکس ما هک شده است یا خیر ؟

      تاریخ 21 روز قبل
      نظرات 0
      بازدیدها 58
      سلام خدمت کاربران عزیز وب سایت توسیسنو بویژه علاقه مندان به سیستم عامل لینوکس. در این مقاله میخواهیم به شما مهم ترین روش ها را برای چک کردن اینکه سرور لینوکس شما هک شده یا خیر آموزش دهیم.

      1. آخرین یوزرهایی که به سرور لینوکس شما لاگین کرده اند را بررسی کنید. با اجرای دستور last میتوانید به این موضوع پی ببرید. این دستور به شما اسم یوزرهایی را که با موفقیت به سرور لاگین کرده اند را نمایش می دهد. پس با استفاده از این دستور میتوانید بفهمید که کسی دسترسی غیرمجاز به سرورتان داشته یا خیر. خروجی این دستور به صورت زیر است :
      root@servername~# last 
      root pts/0 10.10.50.3 Mon Jan 30 13:03:45 2017 still logged in
      root pts/0 10.10.50.3 Mon Jan 30 13:00:27 2017 - Mon Jan 30 13:03:44 2017 (00:03)
      root pts/0 10.10.50.3 Mon Jan 30 12:50:42 2017 - Mon Jan 30 13:00:26 2017 (00:09)
      root pts/0 10.10.50.3 Fri Jan 27 09:17:39 2017 - Fri Jan 27 16:44:53 2017 (07:27
      
      2. چک کردن نرم افزار های در حال اجرا روی سرور نیز گزینه خیلی خوبی است. با دستور ps -aux میتوانید تمام Process هایی را که چه توسط کاربر root و چه توسط سایر کاربرها روی سرور در حال اجرا است را بصورت لیست وار مشاهده کنید. اگر سوئیچ pux را بکار نبردید اطلاعات اضافه ای را این دستور به شما نمایش میدهد. من ترجیح میدهم از نرم افزار top استفاده کنم. با استفاده از دستور top میتوانید بصورت Real-time تمام پراسس های در حال اجرا روی سیستم را مشاهده کنید و همچنین اگر پراسس یا برنامه ای بیش از حد از منابع سخت افزاری استفاده کرد را میتوانید بصورت منظم مشاهده کنید. خروجی دستور top به شکل زیر است :
      top - 11:33:21 up 21 days, 41 min, 1 user, load average: 0.02, 0.02, 0.05
      Tasks: 90 total, 2 running, 88 sleeping, 0 stopped, 0 zombie
      %Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
      KiB Mem : 6808648 total, 4629072 free, 306808 used, 1872768 buff/cache
      KiB Swap: 0 total, 0 free, 0 used. 5962784 avail Mem
      
      PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
      1 root 20 0 125104 3648 2408 S 0.0 0.1 1:40.58 systemd
      2 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kthreadd
      3 root 20 0 0 0 0 S 0.0 0.0 0:00.89 ksoftirqd/0
      5 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
      7 root rt 0 0 0 0 S 0.0 0.0 0:01.84 migration/0
      8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh
      
      بصورت پیش فرض دستور top تعداد کمی از نرم افزار های در حال اجرا را در خروجی نمایش میدهد. برای اینکه بخواهید تمام نرم افزار های در حال اجرا را مشاهده کنید دستور زیر را اجرا کنید :
      # top | more
      
      برای بستن یا Kill کردن یک Process میتوانید از دستور زیر استفاده کنید :
      # kill 3445
      
      در اینجا 3445 شماره پراسس یا PID مربوط به نرم افزار در حال اجرا است.
      3. شما برای دسترسی به سرور لینوکس تان از سرویس SSH استفاده می کنید. حالا اگر کسی سعی کرده باشد به سرورتان SSH بزند شما براحتی با چک کردن Log های مربوط به SSH به این موضوع پی ببرید. اگر سرور لینوکس تان از خانواده سیستم عامل های Redhat یا CentOS است دستور زیر را اجرا کنید :
      # tail -n 500 /var/log/secure | grep ‘sshd’
      
      و اگر سرور لینوکس تان از خانواده سیستم عامل های Debian است دستور زیر را اجرا کنید :
      # 'tail -n 500 /var/log/auth.log | grep 'sshd
      
      مثال :
      root@servername:~# tail -n 500 /var/log/auth.log | grep sshd
      Jan 30 13:24:12 servername sshd[17655]: pam_unix(sshd:session): session opened for user root by (uid=0)
      Jan 30 13:26:43 servername sshd[17796]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=10.0.50.3 user=root
      Jan 30 13:26:45 servername sshd[17796]: Failed password for root from 10.0.50.3 port 14238 ssh2
      Jan 30 13:26:51 servername sshd[17804]: Accepted password for root from 10.0.50.3 port 14332 ssh2
      
      دستور فوق 500 خط پایانی از فایل auth.log را نمایش خواهد داد. به پیغام های failure و authorized حتما توجه کنید. برای دانستن اینکه یوزر فعلی روی سرور اخیرا چه دستوراتی را روی سرور اجرا کرده دستور زیر را اجرا کنید :
      # tail -n 100 ~/.bash_history | more
      
      و برای اینکه بدانید یک یوزر خاصی اخیرا روی سرور چه دستوراتی را وارد کرده دستور زیر را اجرا کنید :
      # tail -n 100 /home/username/.bash_history | more
      
      4. با استفاده از دستور زیر میتوانید Session هایی که به سرور زده شده اند را به همراه Status و تعداد Send و Receive پکت ها را نمایش می دهد :
      # netstat -tuna
      
      زمانی که سرور شما کند شده باشد علت آن میتواند این باشد که یک آدرس IP از بیرون و یا داخل شبکه سرورتان را دچار Loop کرده و ترافیک شبکه تان را بالا برده است. اگر دیدید که تعداد Session ها خیلی زیاد شده اند احتمال دارد که سرور شما دچار حمله شده باشد.
      5. با انجام موارد زیر تقریبا میتوانید بفهمید که سرورتان هک شده است یا نه. اما بهتر است موارد زیر را نیز چک کنید. به این لینک مراجعه کنید و چک کنید ببینید IP Public شما در Blacklist قرار گرفته است یا خیر. زیرا ممکن است سرور شما دچار حمله SSH Brute force شده باشد یا اینکه Spam شده باشد و یا دچار حمله DDoS شده باشد. البته این مورد به این معنا نیست که سرور لینوکس شما هک شده است بلکه ممکن است بدین معنی باشد که وب سایت یا Web Application یا Mail server شما دچار حمله شده است.
      6. روش دیگر آن است که فایل Crontab را برای همه یوزر ها چک کنید. ممکن است یک Script مخرب یا نرم افزاری ناشناس یک Cronjob روی سرور ایجاد کرده باشد. برای پی بردن به این موضوع اگر سرور لینوکس تان از خانواده سیستم عامل های Debian است دستور زیر را اجرا کنید :
      # cd /var/spool/cron/crontabs/ && grep
      
      و اگر سرور لینوکس تان از خانواده سیستم عامل های Redhat یا CentOS است دستور زیر را اجرا کنید :
      # cd /var/spool/cron && grep
      
      این دو دستور تمامی Cronjob های یوزر ها را در خروجی نمایش می دهد.
      7. با دستور زیر روی سرور یک آنتی ویروس نصب کنید و سرور را اسکن کنید :
      # apt-get install clamav-scan
      
      برای سیستم عامل های Redhat یا CentOS است دستور زیر را اجرا کنید :
      # yum install clamav-server clamav-data clamav-update clamav-filesystem clamav clamav-scanner-systemd clamav-devel clamav-lib clamav-server-systemd
      
      حالا با دستو زیر آنتی ویروس را آپدیت کنید :
      # freshclam
      
      با دستور زیر سرور را اسکن کنید و نتیجه اسکن را درون یک فایل متنی ذخیره کنید :
      # clamscan –r / | grep FOUND >> /var/log/av/AvReport.txt
      

      نویسنده : امیرحسین کریم پور
      منبع : جزیره لینوکس و سیستم های متن باز وب سایت توسینسو
      هرگونه نشر و کپی برداری بدون ذکر منبع و نام نویسنده دارای اشکال اخلاقی میباشد
      برچسب ها
      مطالب مرتبط

      در حال دریافت اطلاعات

      نظرات
      هیچ نظری ارسال نشده است

        برای ارسال نظر ابتدا به سایت وارد شوید