جلوگیری از حملات DDOS در وردپرس مسئلهای هست که کمتر به این موضوع پرداخته شده و توی این مقاله قصد دارم به معرفی کلیه اقدامات پس از حملات DDOS در وردپرس و راههایی که میتونید از این حملات جلوگیری کنید بپردازم.
در این آموزش از دانشنامه کیمیا هاست ابتدا به این موضوع میپردازیم که حملات DDOS چیست؟ بعد از اینکه یک آشنایی با این حملات پیدا کردیم، به همراه مثال عملی که شخصا برای خودم اتفاق افتاده و در حال حاضر هم درگیر همین ماجرا هستم کلیه روشهایی که بتونید از حملات دیداس وردپرس جلوگیری کنید رو معرفی خواهم کرد.
پس اگر شما هم با این حملات مواجه شدید تا انتهای این آموزش همراه باشید.
پیشنهاد ما: CDN وردپرس چیست؟
DDOS چیست؟ و چگونه کار میکند؟
حملات دیداس با استفاده از ابزار سخت افزاری انجام میگیره که هزینه تهیه و انجام این کار هم تا حدودی بالا خواهد بود. حالا اینکه از دسترس خارج شدن سایت شما برای شخص چه منفعتی داره که باعث میشه دست به همچین کار کثیفی بزنه، جای سوال داره. در حالتی که شما هیچ حملهای ندارید همه چیز به خوبی کار میکنه. یعنی منابع مصرفی cpu و رم در هاست، بازدیدهای سایت، نظراتی که در سایت ارسال میشه و… همگی در حالت عادی هستند. اما یکباره در یک زمان مشخص که میتونه به مدت چند دقیقه یا چندین ساعت باشه همه این چیزها از حالت طبیعی خارج خواهند شد.
در اولین مورد با کندی سایت رو به رو میشید، به هاست که مراجعه میکنید ببینید مشکل کجاست متوجه میشید که منابع مصرف cpu و رم هاست حتی ۱۰۰ درصد رو هم رد کرده، لاگ سی پنل رو که میبینید متوجه افزایش بازدید چندین هزارتایی در عرض یک ثانیه میشید و… که همگی این چیزها نشانی از حملات دیداس دارند. در نهایت وقتی این حالت رخ میده، بخاطر فشار بالا روی هاست سایت شما از دسترس خارج خواهد شد و تا زمانی که تحت حمله دیداس در وردپرس هستید، سایت شما نمایش داده نمیشه و اگر هم چیزی نشون داده بشه به هم ریخته است و هیچی سر جای خودش نیست. در این زمان میزبان هاست شما به دلیل جلوگیری از تاثیر روی سایتهای دیگه موقتا هاست شما را ساسپند خواهد کرد.
حالا ماجراهایی که از این به بعد رخ میده رو به صورت عملی که اتفاق افتاده و مرحله به مرحله به این موارد برخورد کردم در ادامه توضیح میدم.
آموزش اقدامات پس از حملات DDOS در وردپرس
خرداد ماه بود که متوجه شدم بخش کاربری و حتی پیشخوان وردپرس هم با کندی مواجه شده اما سایر چیزها درست بودند. برای اطمینان وارد هاست شدم و مصرف بالای ۶۰ درصدی cpu رو مشاهده کردم. برای همین فایل لاگ هاست رو نگاه کردم تا مطمئن بشم مشکلی از سمت افزونهها پیش نیومده که آخرین تغییرات این فایل مربوط به چند هفته قبل بود. برای همین اولین کاری که انجام دادم این بود که ورود در وردپرس رو محدود کنم.
گام اول: آگاهی از موضوع
برای اطمینان از اینکه چه اتفاقی در حال رخ دادن هست، طبق آموزش ایجاد محدودیت در ورود به مدیریت وردپرس این کار رو انجام دادم تا ورود در سایت رو برای جلوگیری از هک وردپرس محدود کنم. بعد از یک ساعت که جزییات رو دیدم با تصویر زیر مواجه شدم.
همونطور که میبینید شخصی در تلاش برای ورود در سایت بود. چند ماهی به این منوال گذشت و گاها حملات به صورت DDOS ارسال میشد. چون سایت رو به وبسایت uptimerobot متصل کرده بودم در هفته حداقل چند باری با ایمیل گزارشها برام ارسال میشد که نهایتا یک ساعتی در هر بار سایت از دسترس خارج میشد. در تصویر زیر نمونهای از این حالت رو مشاهده میکنید. گزینههای قرمز رنگ نشون از دسترس خارج شدن دارند.
پیشنهاد ما: آموزش نصب وردپرس
گام دوم: به کار بردن روشهای جلوگیری
تا اینجا از این موضوع مطمئن شده بودم که حملات مربوط به دیداس هستند و حالا باید کارهایی که برای جلوگیری هست رو استفاده میکردم. اما برای اینکه برخی کارها از قبل وجود داشتند در اینجا صرفا لیستی از اونها رو براتون ذکر میکنم.
- استفاده از هاست مناسب اولین راهکاری هست که میتونه از حملات جلوگیری بکنه. اگر هاستی داشته باشید که مجهز به سخت افزار برای جلوگیری از حملات DDOS باشه میتونه خیلی تو این راه بهتون کمک بکنه.
- در برخی موارد حملات مربوط به تلاش برای ورود در سایت هست که میتونید طبق توضیحات که دادم از افزونه برای این کار استفاده کنید.
- گاهی اوقات هم پیش میاد که فرمهایی مثل نظرات سایت رو مورد حمله قرار میدن. تو این حالت عملا فرمی دریافت نمیکنید، اما فقط دادهها رو درگیر میکنند که در این حالت میتونید با استفاده از کپچا وردپرس از این کار جلوگیری کنید. خوبی این کار اینه که امکان استفاده در فرم ورود رو هم دارید.
- یکی دیگه از روشها استفاده از XML-rpc هست که در تصویر بالا هم دیدید که یکی از تلاشها برای ورود از این طریق بوده که میتونید با استفاده از نحوه غیرفعال کردن xml-rpc وردپرس از این کار جلوگیری کنید.
- آپدیت هسته وردپرس، افزونههای وردپرس و قالب وردپرس
- استفاده از افزونههای امنیتی که در مقاله معرفی بهترین افزونه های امنیتی وردپرس برخی از بهترینها رو معرفی کردم.
- و…
۱. استفاده از کلودفلر در اقدامات پس از حملات DDOS در وردپرس
همون طور که در ابتدای مقاله هم گفتم برای حملات DDOS در وردپرس راهکار کاملا مطمئنی وجود نخواهد داشت. پس با استفاده از این روشها میتونید تا جای ممکن از این کار جلوگیری کرده و حمله کننده را محدود کنید که تا جای ممکن نتونه به این کارش ادامه بده. اولین کاری که من انجام دادم این بود که سایت رو به کلودفلر متصل کردم. برای این کار میتونید از مقاله آموزش تصویری از استفاده از Cloud Flare جهت بهبود سرعت و امنیت استفاده کنید.
کلودفلر این امکان رو به شما میده که اگر حملهای به سایت صورت گرفت تا حد بسیار زیادی از این کار جلوگیری میکنه و شخص حمله کننده هر حملهای که انجام بده در واقع به سرورهای کلودفلر میزنه که تاثیری روی سایت شما نخواهد داشت.
با رفتن به بخش Firewall کلودفلر میتونید از ۴ سطح امنیتی زیر استفاده کنید.
- Low: در این حالت سطح امنیتی در پایینترین حد ممکن قرار داره که اگه حملهای با شدت تقریبا پایین ارسال بشه میتونه روی سایت تاثیر بزاره.
- Medium: در این حالت سطح امنیتی در حالت متوسط هست که از حالت قبلی یکم بیشتر و اگه حملات هم بیشتر بشن میتونه روی سایت تاثیر بزاره.
- High: در این حالت سطح امنیتی در حالت بالا قرار داره که اگر حملاتی در سطح گسترده ارسال بشه ازشون جلوگیری خواهد کرد.
- I’m Under ttack: در این حالت سایت شما تحت حمله شدید هست و حملات هم به شکلی هست که در طول روز با فاصله زمانی خیلی کوتاه مدام تکرار خواهد شد. در این حالت کاری که باید انجام بدین اینه که این گزینه رو فعال کنید. توی این حالت وقتی کسی به سایت شما مراجعه بکنه در اولین بازدید با تصویر زیر رو به رو میشه که بعد از ۵ ثانیه ریدایرکت شده و میتونه محتوای سایت رو ببینه.
بعد از گذشت چند روز حملات به کلی از بین رفت. اما باز هم تاثیر گذار نبود. چرا که قبلا حملات فقط از چند کشور خاص مثل آمریکا و آلمان و کانادا انجام میگرفت. اما این بار در سطح گستردهتر از چندین کشور دیگه مثل چین، هند، روسیه، مالزی و حتی ایران و کشورهایی که اسمشون هم به گوشمون نخوره انجام میگرفت. این بار کاری که کردم این بود که از طریق کلودفلر یک مرحله برای ورود به سایت برای آیپی این کشورها انتخاب کردم. توی این حالت هر کشوری که انتخاب شده وقتی وارد سایت بشه یک صفحه کپچا بهش نشون داده میشه که باید مشخص کنه کاربر انسانی هست یا ماشینی. در این صورت اگر تونست از این مرحله عبور بکنه، میتونه سایت رو ببینه اما در غیر این صورت آیپی بلاک شده و دیگه با این آیپی نمیتونه هیچ کاری رو انجام بده.
برای این کار تو همین صفحه Firewall به بخش Access Rules مراجعه کنید و کشورهایی که مد نظرتون هست مثل نمونه زیر انتخاب کنید. بعد که گزینه Challenge رو انتخاب کنید کاربر رو به چالش پر کردن کپچا خواهید کشید. اگه موفق شد که این مرحله رو بگذرونه که گذشته، اما در غیر این صورت تا زمانی که در کلودفلر مشخص میکنید بلاک خواهد شد.
همون طور که تو تصویر میبینید اول نام کشور رو در باکس وارد کنید، اینجا من iran رو وارد کردم که لیست کشورها بر اساس کلماتی که تایپ میکنید نشون داده میشه و در نهایت میتونید انتخابشون کنید. بعدش حالت Challenge رو انتخاب کنید و حالت This Website رو هم کاری نداشته باشید. چون اگه چند سایت تو اکانت کلودفلر داشته باشید این حالت برای اون سایتها هم انتخاب میشه. تو قسمت Add a note هم میتونید یک یادداشت وارد کنید. مثلا مشخص کنید محدود کردن آیپی این کشور تو چه تاریخی شروع شده و در نهایت بعد از کلیک روی دکمه Add کشور مورد نظر در لیستی که پایین این بخش قرار داره اضافه خواهد شد. حالا هر کاربری که بخواد با آیپی این کشورها وارد سایت وردپرسی شما بشه صفحه زیر بهش نشون داده میشه.
هر آی پی بلاک شده در وردپرس که توسط کلودفلر به لیست اضافه شده باشه هم در صفحه firewall و در انتهای صفحه مشابه تصویر زیر با نام Firewall Events قابل دسترسی هست که با کلیک روی گزینه Details مقابل هر آیپی میتونید اونها رو مدیریت کنید.
پیشنهاد ما: ابزار های وردپرس
۲. محدود کردن آیپی کشورها در اقدامات پس از حملات DDOS در وردپرس
در روش محدود کردن کشورها در وردپرس با استفاده از کلودفلر امکانی هم وجود داره که بتونید به صورت کلی این کشورها رو بلاک کنید. اما متاسفانه این امکان برای اکانت رایگان فراهم نیست و باید حتما از اکانت پولی استفاده کنید. پس باید دنبال یک راهکار دومی بگردید که استفاده از افزونه میتونه انتخاب خوبی باشه. چند روز پیش در مقاله آموزش بستن آیپی کشورها در وردپرس به معرفی افزونهای برای این کار پرداختم. میتونید طبق آموزش این افزونه آیپی هر کشور رو مسدود کنید تا دسترسی به سایت نداشته باشه. در این صورت هر حملهای که با آیپی این کشورها انجام بگیره امکان پردازشی براش وجود نداره و اگه کاربر واقعی هم باشه با تصویر زیر رو به رو میشه.
حتی با انجام این کارها هم در هفته ممکنه چندین بار مورد حملات شدید قرار بگیرید که برخی از اینها در سطح گستردهای باشن. اما تفاوتی که داره اینه که دیگه در این زمان مثل قبل نیست و سریعا بعد از شناسایی آیپی حمله کننده بلاک شده و مجبور هست با ip مختلف این کار رو انجام بده. در تصویر زیر تعداد حملات به وبلاگ شخصی منو میبینید که مربوط به یک ماه(۴ شهریور تا ۴ مهر) قبل هست.
تعداد کلی که تو قسمت Total Threats درج شده روی ۲۸۷۸ قرار داره که همه اینها مربوط به دیداس نیست. برخی از این حملات برای چالشهای مرورگر و برخی هم برای چالشهای انسانی هستند. سایر کشورها هم در بخش Geo قابل مشاهده هستند که در اون میتونید تعداد رو بر اساس بیشترین کشورها و تعداد هر کدوم ببینید.
همونطور که میبینید بعد از ایران کشورهای آمریکا، آلمان، انگلیس و امارات متحده دارای بیشترین حملات به سایت بودند. هر چی در یک تاریخ خاص حملات در سطح گسترده انجام گرفته باشه تعداد کشورها هم مسلما بیشتر خواهد بود.
پس لازمه موقتا تا زمانی که فرد حمله کننده دست از سر سایتتون برداره با استفاده از کلودفلر محدودیت ایجاد کنید.