حملات DDoS (Distributed Denial-of-Service) یکی از رایج ترین تهدیدات امنیتی سرورها هستند که هر ساله تعداد و شدت آنها افزایش مییابد. ( پیش بینی این حملات کار آسانی نیست و) مالکان سرور ها به ندرت می توانند این حملات را پیش بینی کنند اما این حملات را میتوان با نظارت بر منابع سرور و اقدام سریع کاهش داد.
این مقاله به شما نشان میدهد که چگونه حملات DDoS را روی سرور لینوکس خود بررسی کنید و نکات پاسخگویی سریع برای مقابله با آنها را ارائه میدهد.
حمله DDoS چیست؟
DDosیک حمله است که در آن یک مهاجم با ارسال درخواستهای زیاد به شبکه، تمامی منابع موجود سرور را مصرف میکند. برخلاف حمله معمولی DoS (محرومسازی از سرویس)، حمله DDoS:
- از چندین دستگاه توزیعشده استفاده میکنند، که معمولاً متعلق به کاربرانی هستند که سیستمهایشان هک شده است.
- به چندین دستگاه و پروتکل شبکه حمله میکنند، نه فقط به یک نقطه خاص در شبکه.
در ادامه، سه نوع اصلی حملات DDoS را معرفی میکنیم:
1: حملات لایه اپلیکیشن (حمله لایه 7) (Application Layer DDoS – Layer 7 Attack) : روی نرمافزارهای میزبان سرور مانند وبسرورهای Apache و Nginx تمرکز دارد. رایجترین نوع حمله DDoS محسوب میشود.
2: حملات پروتکلی (Protocol DDoS) : سیستمعاملها و فایروالهای دستگاههای اصلی شبکه را هدف قرار میدهد.
3: حملات حجمی (Volumetric DDoS) : حجم عظیمی از ترافیک تولید میکند تا پهنای باند و ظرفیت سرور را اشغال کند.
چگونه حمله DDoS را روی سرور لینوکس شناسایی کنیم؟
مهاجمان از مسیرهای استاندارد شبکه برای انجام حملات DDoS استفاده میکنند. بنابراین، با نظارت بر ترافیک شبکه و بررسی اتصالات غیرعادی، میتوان این حملات را بهراحتی شناسایی کرد.
در ادامه، سادهترین روشها برای بررسی اینکه آیا سرور شما تحت حمله DDoS قرار دارد یا خیر آورده شده است.
بررسی میزان بار سرور :
میانگین بار سرور را با دستور uptime بررسی کنید:
uptime
سه مقدار نمایش داده شده در قسمت load average به ترتیب میانگین بار در بازههای یک دقیقه، پنج دقیقه و پانزده دقیقه را نشان میدهند.

یک عدد مرجع مفید برای میزان بار قابلقبول سرور، تعداد threads موجود در سرور است. اگر میزان بار برابر یا بیشتر از تعداد threads باشد، ممکن است نشاندهنده فعالیتی غیرعادی باشد.
برای بررسی تعداد threads موجود در سرور، دستور زیر را اجرا کنید:
grep processor /proc/cpuinfo | wc -l

در این مثال، سرور دارای ۲ thread است. اگر میانگین بار از ۲ بیشتر باشد، نشاندهنده بار غیرعادی سرور است.
بررسی بار شبکه :
اگر سرور شما کند است اما از طریق اتصال مستقیم (مانندIPMI ) همچنان در دسترس میباشد، از یکی از ابزارهای زیر برای بررسی بار شبکه استفاده کنید.
توجه: برای نصب هر یک از ابزارهای زیر، از سیستم مدیریت بستههای توزیع لینوکس خود استفاده کنید. به عنوان مثال، در سیستمهای مبتنی بر Debian از APT استفاده کنید:
sudo apt install [name-of-the-utility]
bmon :
bmon یک مانیتور پهنای باند و تخمینگر نرخ انتقال داده است که بهصورت کاربرپسند طراحی شده و در یک محیط متنی، نمایش دادههای ساده و قابل فهم را ارائه میدهد.
برای اجرای bmon، دستور زیر را وارد کنید:
bmon
با استفاده از کلیدهای بالا یا پایین روی صفحهکلید، به اینترفیس مورد نظر برای بررسی بروید.

bmon اطلاعات زمان واقعی را در چندین دستهبندی مختلف نمایش میدهد. برای جابجایی بین دستهها، از کلیدهای چپ یا راست استفاده کنید.
nload :
nload برای نظارت بر ترافیک شبکه و مصرف پهنای باند در زمان واقعی مفید است. برای شروع nload، دستور زیر را وارد کنید:
nload
برای جابجایی به اینترفیس مورد نظر خود، از کلیدهای چپ یا راست استفاده کنید. این ابزار جزئیات ترافیک ورودی و خروجی شبکه را برای اینترفیس انتخابی نمایش میدهد.

vnStat :
مانند nload، vnStat یک ابزار نظارت بر ترافیک شبکه است. مزیت vnStat این است که لاگهای ترافیک شبکه ساعتی، روزانه و ماهانه را برای اینترفیس انتخابی نگه میدارد.
برای دسترسی به vnStat، دستور زیر را وارد کنید:
vnStat

iftop :
ابزار iftop فهرستی از اتصالات شبکه و اطلاعات مربوط به آنها را بهصورت کاربرپسند نمایش میدهد. بهطور پیشفرض، فهرست بر اساس مصرف پهنای باند مرتب شده است.
برای شروع iftop، دستور زیر را وارد کنید:
iftop

بررسی آدرسهای IP متصل به سرور :
لیست کردن آدرسهای IP دستگاههای متصل به سرور ممکن است به شما کمک کند تا تهدیدات احتمالی را شناسایی کنید. دستور netstat ابزاری است که مروری بر فعالیتهای شبکه ارائه میدهد و اطلاعاتی در مورد اتصالات نمایش میدهد.
دستور زیر با استفاده از netstat به همراه گزینههای -n، -t و -u خروجیای تولید میکند که شامل آدرسهای عددی اتصالات TCP و UDP است. سپس خروجی با استفاده از دستورات awk، cut و sort فرمتبندی میشود:
netstat -ntu|awk ‘{print $5}’|cut -d: -f1 -s|sort|uniq -c|sort -nk1 -r

در سرورهای پرمشغله، لیست ممکن است بسیار طولانی و خواندن آن دشوار باشد. شما میتوانید خروجی را فیلتر کنید تا تمام اتصالات در یک زیرشبکه در یک خط نمایش داده شوند. مثال زیر آدرسهای IP در همان ماسک زیرشبکه 255.255.0.0 را ترکیب میکند:
netstat -ntu|awk ‘{print $5}’|cut -d: -f1 -s |cut -f1,2 -d’.’|sed ‘s/$/.0.0/’|sort|uniq -c|sort -nk1 -r
اکنون خروجی تنها یک خط نشان میدهد. عدد ۳ قبل از 10.240.0.0 نشان میدهد که سه اتصال از آن آدرس IP آمده است .

چگونه حمله DDoS را روی سرور لینوکس کاهش دهیم؟
پس از تایید اینکه سرور تحت حمله DDoS قرار دارد، اقداماتی سریع میتواند به کاهش آسیبها کمک کند.
توجه: سرورهایی که محافظت نشدهاند، سریعاً به قربانی حملات DDoS تبدیل میشوند. یک سرور اختصاصی با محافظت DDoS آماده است تا بدون اختلال در دسترسی، به کار خود ادامه دهد.
برای مسدود کردن آدرس IP مهاجم از دستور route استفاده کنید:
sudo route add [ip-address] reject
توجه: دستور route بخشی از پکیج net-tools است. برای نصب آن روی Ubuntu، دستور زیر را وارد کنید:
sudo apt install net-tools
استفاده از فایروال iptables:
- برای مسدود کردن دسترسی به یک آدرس IP، دستور زیر را وارد کنید:
iptables -A INPUT 1 -s [ip-address] -j DROP/REJECT
- سرویس iptables را ریستارت کنید:
service iptables restart
- قانون جدید را ذخیره کنید:
service iptables save
- سرویسهای وب خود را ریستارت کنید. به عنوان مثال، اگر از Apache استفاده میکنید، دستور زیر را وارد کنید:
sudo systemctl restart apache2
سیستم اکنون به گونهای تنظیم شده است که ترافیک آدرس IP مشکوک را رد کند.
نتیجهگیری :
این مقاله شما را با حملات DDoS آشنا کرد و روشهایی برای شناسایی آنها ارائه داد. همچنین نکات سریع برای مقابله با حملات جاری را معرفی کرد. ایمنسازی صحیح یک سرور، احتمال حملات DDoS آسیبزا را کاهش میدهد.




