قربانی شدن در حمله DDOS به سرور «از کاراندازی توزیعشده سرویس» (Distributed Denial of Service) میتواند فاجعه بار باشد. به نقل از شرکت امنیتی کِلودفِلِر (Cloudflare, Inc.)، میانگین زیان یک سازمان در یک حمله موفق DDoS حدود ۱۰۰ هزار دلار به ازای هر ساعت حمله است.
البته هزینههای بلندمدتی همچون خدشه وارد شدن به اعتبار برند و از دست دادن مشتریان نیز وجود دارد، که همگی منجر به شکست کسبوکار میشوند.
به همین دلیل ضروری است به جای تمرکز بر نحوه متوقف سازی یک حمله DDoS، منابع لازم را برای جلوگیری از این نوع حملات یا حداقل کاهش آثار سوء حملات DDoS تخصیص دهید.
ddos چیست؟
یکی از مرسومترین حملات سمت سرور از نوع ddos میباشد، در این نوع از نفوذ، هکرها به دلیل نداشتن دسترسی مستقیم به سرور جهت نفوذ و دیفیس وبسایتهای روی سرور از حملات distributed denial of service استفاده میکنند.
در این روش هکر با ارسال پکت های بسیار زیاد در زمان بسیار کوتاه سعی در اشغال منابع سرور و درگیری کامل آن کرده، به طوری که وبسایتهای میزبانی شده تماماً از دسترس خارج خواهند شد.
از اتصال به سرور لینوکس بیشتر بدانید….
انواع حملات ddos
حملات دداس دارای انواع مختلفی است که میتوان به SYN flood, Smurf attack, Ping Flood و یا Teardrop attacks نام برد که هر کدام دارای قدرتهای متفاوت و روشهای مختلفی برای اجرا هستند.
این روش از حمله با تکنیکهای متفاوتی پیادهسازی میشود، برای مثال هکر با نوشتن قطعه کد مخربی و پخش کردن آن در بستر اینترنت سیستمهای بسیاری را آلوده کرده و با هماهنگسازی تمامی زامبیها در یک زمان مشخص دستور حمله به سرور و یا سایت را صادر میکند.
شدت گستردگی این حملات با توجه به تعداد زامبیها متفاوت خواهد بود و حتی به چندین گیگ خواهد رسید.
به طوری که در یک حمله گسترده سرور مذکور با داشتن تمامی تدابیر امنیتی و پهنای باند زیاد و سختافزارهای قدرتمند باز قادر به پاسخگویی به این سطح از درخواست ها نبوده و به طور حتم از دسترس خارج شده و یا اصطلاحاً Down میشود.
امنیت سرور چقدر برای شما مهم است؟
حمله ddos چه زمانی به پایان خواهد رسید؟
جواب این سؤال در یک جمله کوتاه خواهد بود و آن هم تا زمانی که حمله پایان یابد و یا هکر دستور پایان را صادر کند و یا شما به عنوان مدیر سرور بتوانید اوضاع را کاملاً در اختیار گرفته و حملات را توسط راهحلهایی که در ادامه برای شما توضیح خواهم داد دفع کنید.
شناسایی و جلوگیری از حمله ddos
علائمی که باعث میشوند شما به زیر بار بودن سرور، تحت حملات ddos مشکوک شوید کند شدن شدید سرور و دریافت ارورهای عدم اتصال به پایگاه داده و یا too many connection و حتی Internal Server Error اشاره کرد.
در اولین لحظات شروع حمله یک مدیر سرور حرفهای باید تعداد کانکشن های متصل به سرور و همچنین آیپیهای متصل را پیدا کرده و با توجه به درخواستهای زیاد هر Ip آنها را یافته و آی پی مذکور را توسط فایروال مسدود کند.
البته این روش فقط برای جلوگیری از حمله ddos بر روی لایهی ۷ یا همان لایه نرمافزاری کاربرد دارد و برای حملات لایههای ۳ و ۴ شما دیگر به عنوان یک مدیر سرور کاری نمیتوانید بکنید.
قبل از خرید سرور باید از دیتاسنترهایی سرور خود را تهیه کنید که به فایروالهای سختافزاری بر روی لایههای ۳ و ۴ مجهز باشند تا بدین صورت و با انجام تمهیدات امنیتی در لایه نرمافزاری توسط شما تا حد زیادی از بروز این حملات بر روی سرور جلوگیری شود.
ما فرض را بر این میگیریم که سرور شما زیر حملات دداس قرار گرفته و به شدت کند شده و ممکن است در ساعات آتی از دسترس خارج گردد برای شروع شناسایی و جلوگیری از حمله ddos توسط دستورات زیر تعداد connection های متصل شده و آی پی ها را پیدا میکنیم
netstat -n | grep :80 |wc –l
ابتدا توسط دسترسی روت و با اتصال به ssh دستور بالا را در محیط command line وارد نمایید تا تعداد کانکشن های متصل شده به سرور برای شما نمایش داده شود.
خوب اگر در خروجی بالا عدد زیادی را مشاهده کردید باید مطمئن شوید که آیا این تعداد از رکوئست ها حقیقی هستند یا خیر برای این منظور دستور زیر را جهت نمایش تعداد کانکشن های هر آی پی وارد میکنیم.
netstat -anp |grep 'tcp\|udp' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort –n
اگر خروجی نمایش داده شده توسط دستور بالا برای شما عددی غیرمنطقی برای هر آی پی مثلاً عددی در حدود ۳۰۰ تا ۵۰۰ کانکشن را نمایش داد باید آی پی مذکور را یادداشت کرده و برای جلوگیری از حمله ddos توسط فایروال سرور خود آن را مسدود نمایید.
جلوگیری از حمله ddos توسط فایروال csf
چنانچه میخواهید آی پی موردنظر خود را توسط فایروال csf مسدود کنید توسط دستور زیر فایل مربوط به قطع دسترسی فایروال csf را باز کرده و در انتهای فایل آی پی فرد مهاجم را قرار دهید تا دسترسی آن برای همیشه به سرور مسدود گردد.
nano /etc/csf/csf.deny
توصیه میکنیم که حتماً توسط وبسایت زیر آی پی فرد مهاجم را بررسی کرده و کشور مبدأ را کلاً توسط سرور مسدود نمایید.
www.ip2location.com
همانطور که در بالا برای شما شرح دادیم شما به عنوان مدیر سایت و یا مدیر سرور نمیتوانید حملات لایههای ۳ و ۴ را کنترل کنید و یا برای جلوگیری از حمله ddos کاری صورت دهید، پس از راهکارهایی که در ادامه برای شما شرح خواهیم داد بر اساس لایهی ۷ یا لایهی نرمافزاری استفاده نمایید.
یکی از بهترین روشهای موجود برای کانفیگ سرور و جلوگیری از حمله ddos کانفیگ منحصراً مربوط به وب سرور میباشد.
برای این کار چنانچه وب سرور شما از نوع Apache است استفاده از ماژول mod_evasive به هنگام کامپایل وب سرور راه حل مناسبی خواهد بود.
توسط آن میتوانید تعریف کنید که اگر تعداد اتصال هر آی پی بیشتر از یک تعداد مشخصی شد ای پی فرد مهاجم را اتوماتیک مسدود کند تا شما نیاز نداشته باشید که به صورت دستی سرور خود را مدیریت کنید.
و یا میتوانید به عنوان یک مدیر سرور خبره با نوشتن Rule های امنیتی پیشرفته برای ماژول mod_security تا حد بسیار زیادی جلوی این حملات را بگیرید.
یکی دیگر از راهکارهای قدرتمند و بلامنازع برای جلوگیری از حمله ddos به سمت سرور استفاده از cdn ها میباشد.
در این روش سرور شما با استفاده از آدرس Dnsهای سرورهای cdn به درخواستها پاسخ داده و آی پی سرور شما نیز از دسترس و مشاهده شدن توسط هکرها به دور خواهد ماند.
به طوری که اگر هکر در نظر داشته باشد به سرور شما حمله کند ابتدا باید به دنبال آدرس Ip سرور شما باشد و به دلیل آن که آی پی نمایش داده شده آی پی سرورهای cdn است حملات هکر به در بسته خورده و هیچگونه آسیبی به سایتهای میزبانی شما نخواهد رسید.