آشنایی با حملات DDOS و راههای مقابله با آنها

مطمئنا اگر مدیر سرور بودید و هستید بسیار پیش آمده که با این حملات روبرو بودید و هستید اما آیا تا بحال بطور علمی و اصولی دنبال کرده اید؟

این این آموزش خلاصه ای از تعریف این نو حملات رو واستون آماده کردم + راههای مقابله نرم افزاری با آن ها

مروری کوتاه بر حملات DDos
یک حمله Denial Of Service یا به طور اختصاری، DOS رویدادی است که در آن یک کاربر یا سازمان را از دریافت خدمات از یک منبع محروم می سازد. که در شرایط عادی انتظار آن خدمات را دارد.
نوعاً فقدان این نوع از خدمات به عنوان کاستی در ارائه خدمات شبکه می باشد. همچون سرویس Email که سرویسی فعال بوده و چنانچه این سرویس دچار وقفه ای هر چند کوتاه گردد تمام اتصالات شبکه را که از این سرویس سود می برند مختل خواهد کرد.
در این مقاله نگاهی خواهیم داشت به حملات DOS و DDOS با عنوان Distributed Denial Of Service که این حملات از طرف میزبانهای متعدد برای دستیابی به اهداف خاص صورت می پذیرند.

حملات DOS
برای درک بیشتر حملات DOS و پیامدهای آن ابتدا باید شناختی بنیادین از انواع این حملات داشته باشیم.
اگر چه ارتقاء شناخت ما از سطح حملات DOS به DDOS مقدماتی و متداول می باشد ولی تفاوت میان این دو بسیار مهم است.
در ادامه مطلبی که در بالا گفته شد باید بیان کرد که نباید از حملاتی که در چهارچوب اهداف حملات DOS متوجه ما می باشد غافل بود بلکه مراقبت از زیرساختهای خدماتی و محاسباتی شبکه معمولاً در برخی از موارد ما را از پیامدهای منفی این نوع حملات نفس گیر در امان می دارد.
عموماً این نوع از حملات در اکثر موارد باعث توقف و از کار افتادن System قربانی نمی شود بلکه معمولاً حملات موفق DOS به منظور کاستن هر چه بیشتر کیفیت خدمات ارائه شده توسط سرویس دهنده ها شکل می گیرند. این حملات با درجات مختلفی از تخریب انجام می شوند که در اغلب موارد سرویس دهنده ای که مورد هدف این نوع از حملات قرار می گیرد دیگر قادر به ارائه خدمات نخواهد بود.
هدف این نوع از حملات یک برداشت سطحی از این نوع حملات، حمله به منظور تسخیر Server می باشد که در اکثر موارد تعبیری نادرست و غیر واقعی به نظر می رسد اما هدف بنیادین از حملات DOS ایجاد وقفه در ارائه خدمات از جانب سرویس دهنده به سرویس گیرنده می باشد. خواه این خدمات مربوط به میزبانی با یک سرویس دهنده باشد یا خواه مربوط به شبکه ای عظیم و بی نقص.
این حملات بار بسیار زیادی (بالاتر از ظرفیت و توان شبکه) بر شبکه تحمیل می کند که همین امر باعث ترافیک بالای شبکه شده و سرویس دهنده هائی که مشغول ارائه خدمات به سرویس گیرنده می باشند را دچار وقفه هائی گاه طولانی مدت می کند.
شکل های بسیار متفاوتی از حملات DOS وجود دارند که کشف این حملات و یا منحرف ساختن آنها ممکن است کمی دشوار باشد. طی روزها و هفته ها که از کشف جدیدترین حمله می گذرد ممکن است شخص با هوش دیگری این نوع از حمله را با شکلی دیگر و از جائی دیگر شبیه سازی و اجرا کند. بنابر این نباید فقط به مقابله با یک حمله خاص پرداخت بلکه باید در برابر تمام اشکال مختلف این نوع از حملات پایداری و مقاومت کرد.
بیشتر حملات DOS انجام شده روی یک شبکه با جستجوئی ترکیبی برای یافتن نقاط ضعف در ساختار امنیتی موجود در پروتکل اینترنت (IP) نسخه چهارم شروع می شود. هکرها می دانند که این مشکلات امنیتی به برنامه های کاربردی و پروتکل های سطوح بالاتر نیز منتقل شده اند که وجود این نقاط ضعف باعث به وجود آمدن پروتکل اینترنت (IPv6) شد.
توجه به منبع بسته ها و بررسی صحت و درستی آنها با استفاده از Header های احراز هویت در پروتکل IPv6 انجام می گیرد. هر چند اصلاح ساختار این پروتکل در چنین شرایطی امری است ضروری ولی باید متذکر شد که پروتکل IPv6 نیز هیچ مشکلی را برای ما حل نخواهد کرد زیرا که هنوز به صورت عمومی و کلی مورد استفاده قرار نگرفته است.
حملات DOS فقط از جانب سیستمهای Remote سرچشمه نمی گیرند، بلکه گاهی اوقات از جانب ماشینهای Local یا محلی نیز صورت می پذیرند.
به طور کلی شناسائی و مقابله با حملات محلی ساده تر می باشد زیرا پارامترهای به وجود آورنده مشکل، به سادگی قابل تشخیص می باشند. مثال عمومی از این نوع حملات بمب های خوشه ای هستند که بصورت مکرر باعث تحلیل منابع سیستمهای ما می شوند.

روش های مقابله:

شاید به جراًت بتوان گفت که مهم ترین دغدغه ی یک مدیر سرور مقابله با حملات DDOS/DOS است. در این پست قصد داریم چندین روش برای مقابله با این نوع حملات به شما ارائه دهیم. البته ناگفته نماند که هیچگاه نمیتوان به طور ۱۰۰% جلوی اینگونه از حملات را گرفت.

تمام عملیات های این پست به صورت نرم افزاری است.

۱- نصب و راه اندازی Dos_Deflate

این ابزار این قابلیت را به شما میدهد که بوسیله آن بتوانید یک سری اطلاعات از IP هایی که به سرور متصل هستند بدست بیاورید. که هر IP چند Connection دارد و این که هر IP چندتا Connectrion بتواند داشته باشد. همینطور شما میتوانید در تنظیمات این ابزار تعیین کنید که گزارش را به ایمیل شما ارسال کند.

دانلود کنید:

کد:

عملیات نصب را آغاز میکنیم:

کد:

برای اجرا دستور زیر استفاده میکنیم:

کد:

تنظیم DOS_Deflate :

فایل پیکربندی را با یک ویرایشگر باز میکنیم:

کد:

مقدار زیر را قرار پیدا و به صورت زیر ویرایش کرده:

 

بجای your_email@domain.com ایمیل خود را بنویسید، در این موقع، هر IP که Banned بشود به شما اخطار میدهد.

هر IP چه مقداردر دقیقه کانکشن داشته باشد:

۳ تا ۵ بهترین مقدار برای این پارامتر هست.

بیشترین connection که هر IP میتواند داشته باشد را مشخص کنید:

مقدار بین ۱۰۰ تا ۲۰۰ میتواند بهترین مقدار باشد.

در Dos_Deflate توسط APF بن کنید:

اگر فایروال APF نصب دارید میتوانید این مقدار را برابر با یک قرار دهید. اگر نه توسط CSF یا … عملیات Ban کردن را انجام میدهید برابر با صفر قرار دهید.

اگر میخواهید IP مورد نظر توسط DOS_Deflate بن شود مقدار زیر را برابر با یک قرار دهید در غیر این صورت صفر بگذارید

IP Address های متخلف چه مقدار در حالت معلق باقی بمانند؟

 

بهترین مقدار ۳۰۰ تا ۱۱۰۰ است.

۲- بهینه سازی وب سرور Apache :

البته پیشنهاد ما این است که شما از وب سرور های قدرتمند دیگری همچون Litespeed یا nginx استفاده کنید.

ابتدا با دستور زیر فایل پیکربندی آپاچی وب سرور را پیدا کنید:

 

مقدار Timeout را کمتر کنید:

توضیحات تمام این پارامتر ها در مقاله آموزش وب سرور فارسی (نوشته پیمان قربانی) داده شده است. اما در این پست به طور خلاصه توضیح میدهیم.

مقدار KeepAliveTime را کمتر کنید:

KeepAliveTime به معنای حداکثر انتظار وب سرور برای پاسخ به کاربر میباشد.

 

قابلیت KeepAlive را خاموش کنید:

KeepAlive Off اگریک Connection بیشتر از یک درخواست دارد به طور مدام به آن اجازه ندهد. در واقع KeepAlive وظیفه اش زنده نگه داشتن Connection است.

مقدار MaxClients را کمتر کنید:

MaxClients به معنای : بیشترین تعداد پروسس هایی که هر Client میتواند داشته باشد.

 

نصب و پیکربندی mod_evasive
یکی از راه های مقابله با حملات Dos استفاده از mod_evasive است. این ابزار یک ماژول تحت Apache و برای سرورهای لینوکس است که درخواست ها را کنترل می کند و از جاری شدن سیل عظیم آن (Flood) جلوگیری می کند. این کار بر اساس تعداد درخواست های مجاز تعیین شده در بخش تنظیمات صورت می گیرد. این ماژول آدرس IP که بیش از حد مجاز درخواست می فرستد را بصورت پیش فرض برای ۱۰ دقیقه مسدود (Block) می کند که این مقدار نیز قابل تغییر است.
mod_evasive نسخه به روز شده همان ماژول mod_dosevasive است که در تاریخ Feb 1 2005 بصورت استفاده عمومی ارائه شده است.
نکته: این ماژول مشکلاتی را با Frontpage Server Extensions دارد و احتمال از کار انداختن آن را ایجاد می کند.

در ضمن پیشنهاد میشود Frontpage بر روی سرور خود پاک و یا غیر فعال کنید.

کد:

در فایل پیکرندی وب سرور آپاچی httpd.conf مقادیر زیر را قرار دهید:

اگر نسخه آپاچی شما ۲٫۰٫x هست :

کد:

اگر نسخه آپاچی وب سرور شما ۱٫۰x هست:

کد:

سپس وب سرور خود را restart دهید.

کد:

۳- دیواره آتشین نصب کنید.

نصب دیوار آتشین CSF

نصب و تنظیم BFD

اگر از CSF استفاده میکنید ، میتوانید تنظیمات زیر را اعمال نمایید:

وارد تنظیمات فایروال شوید،

کد:

تعداد کانکشن هایی که هر کلاینت با هر IP میتواند داشته باشد را تعیین میکند.

کد:

هر چه مدت، چه مدت دیواره آتشین شما کانکشن ها و وضعیت را بررسی کند.

کد:

هر IP که بن میشود یا .. به شما گزارش بدهد یا خیر (از طریق ایمیل)

کد:

این مقدار را اگ برابر با صفر قراردهید هر IP نمیتواند به طور همیشه بن باشد. اگر یک قرار دهید . هر IP که بن میشود واسه همیشه بن خواهد شد.

کد:

IP که بن میشود چه مدت معلق بماند؟! مقدار ۱۸۰۰ یا ۵۰۰ مقداری خوبی است.

کد:

برابر با صفر باشد.

کد:

آمار از سرور به شما ارائه میدهد. اینکه هر IP چند کانکشن دارد و …

کد:

پورت ها را با , از هم جدا کنید. مثلا: ۸۰,۴۴۳,۲۵

۴- یافتن حملات و درخواست هایی از نوع sync

کد:

با دستور فوق تمام کانکشن هایی که به پورت ۸۰ وصل هستند را نمایش میدهد ، سپس دستور زیر را وارد میکنیم تا ببنیم کجا با SYN_RECV شروع شده است

کد:

تعداد کانکشن های آپاجی و تعداد کانکشن های SYN_RECV :

کد:

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

تلگرام