SHET23

۷ راه جلوگیری از حملات DDoS در وردپرس

۷ راه جلوگیری از حملات DDoS در وردپرس

وردپرس هسته امنی داره، ولی این موضوع به‌تنهایی جلوی حملات DDoS رو نمی‌گیره. در این مقاله می‌بینیم حمله DDoS چطور سایت رو از دسترس خارج می‌کنه، چه فرقی با Brute Force داره و برای کم‌کردن اثرش باید چه کارهایی انجام بدید.

راه‌حل اصلی، دفاع چندلایه هست: سطح حمله وردپرس رو کمتر می‌کنید، ترافیک مشکوک رو پیش از رسیدن به سرور فیلتر می‌کنید، وضعیت سایت رو زیر نظر می‌گیرید و از هاستی کمک می‌گیرید که محافظت زیرساختی DDoS داشته باشه.

حمله DDoS می‌تونه سرعت سایتتون رو به‌شدت پایین بیاره یا سایت رو کاملاً از دسترس کاربران خارج کنه. البته هیچ راهکاری تضمین نمی‌کنه که سایت برای همیشه در برابر همه حمله‌ها مصون بمونه، ولی با تنظیم درست سرویس‌ها می‌تونید احتمال اختلال و شدت آسیب رو خیلی کمتر کنید.

در ادامه، روش‌های کاربردی جلوگیری از حملات DDoS در وردپرس و کارهایی رو مرور می‌کنیم که هنگام شروع حمله باید سریع انجام بدید.

حمله DDoS چیست

قبل از اینکه سراغ راه‌های مقابله بریم، بهتره خود حمله رو ساده بشناسید. وقتی بدونید چه اتفاقی برای سایت می‌افته، تشخیص نشونه‌ها و انتخاب راه‌حل مناسب هم راحت‌تر می‌شه.

DDoS کوتاه‌شده عبارت Distributed Denial of Service و به معنی «از دسترس خارج‌کردن توزیع‌شده سرویس» هست. در این حمله، تعداد زیادی دستگاه یا منبع به‌طور هم‌زمان درخواست‌هایی رو به سایت یا سرور می‌فرستن تا منابع اون اشغال بشه.

حجم بالای این درخواست‌ها می‌تونه پهنای باند، پردازنده، حافظه یا ظرفیت پاسخ‌گویی سرور رو پر کنه. نتیجه معمولاً کندشدن شدید سایت، نمایش خطا یا از دسترس خارج‌شدن کامل اون هست.

اندازه سایت هم تضمینی برای در امان موندن نیست. سایت‌های کوچک و بزرگ ممکنه هدف قرار بگیرن، پس بهتره قبل از وقوع حمله، لایه‌های دفاعی لازم رو آماده کنید.

انگیزه مهاجم‌ها یکسان نیست. اخاذی، رقابت ناسالم، اعتراض یا حتی ایجاد اختلال بدون هدف مالی می‌تونه پشت چنین حمله‌ای باشه. از روی اختلال سایت هم معمولاً نمی‌شه انگیزه مهاجم رو تشخیص داد.

DDoS در وردپرس چه مشکلاتی ایجاد می‌کنه؟

اگه سایتتون از دسترس خارج بشه، کاربران نمی‌تونن محتوا رو ببینن، فرم بفرستن یا خریدشون رو کامل کنن. برای یک فروشگاه اینترنتی، حتی یک اختلال کوتاه هم ممکنه باعث ازدست‌رفتن سفارش و تماس‌های بیشتر با پشتیبانی بشه.

بررسی لاگ‌ها، هماهنگی با شرکت هاست و فعال‌کردن سرویس‌های دفاعی هم زمان و هزینه می‌خواد. اگه حمله ادامه پیدا کنه، ممکنه مجبور بشید منابع سرور یا سرویس محافظتی قوی‌تری تهیه کنید.

کاربری که چند بار با سایت کند یا قطع روبه‌رو می‌شه، احتمالاً اعتماد کمتری به اون پیدا می‌کنه. ارتباط شفاف با کاربران و برگردوندن سریع سرویس کمک می‌کنه اثر این تجربه بد روی اعتبار برندتون کمتر بشه.

آموزش جلوگیری از DDoS در وردپرس

هیچ تنظیم وردپرسی به‌تنهایی جلوی همه حملات DDoS رو نمی‌گیره. روش‌های این بخش سطح حمله رو کمتر می‌کنن و در کنار فایروال لبه شبکه، پایش سایت و محافظت هاست نتیجه بهتری می‌دن. هر تغییر رو هم اول روی نسخه آزمایشی بررسی کنید تا بخش‌های ضروری سایتتون از کار نیفتن.

XML-RPC رو در وردپرس غیرفعال کنید

XML-RPC یکی از راه‌های ارتباط برنامه‌های بیرونی با وردپرس هست. بعضی برنامه‌ها و سرویس‌ها برای انتشار محتوا یا مدیریت از راه دور به فایل xmlrpc.php نیاز دارن، پس قبل از بستن اون مطمئن بشید هیچ ابزار ضروری سایتتون از این قابلیت استفاده نمی‌کنه.

اگه از برنامه‌هایی که به XML-RPC وابسته هستن استفاده نمی‌کنید، بستن این مسیر می‌تونه یکی از ورودی‌های غیرضروری سایت رو حذف کنه. یادتون باشه این کار فقط سطح حمله رو کمتر می‌کنه و راه‌حل کامل DDoS نیست.

روی سرور Apache 2.4 می‌تونید قطعه کد زیر رو در فایل .htaccess سایت قرار بدید. قبل از تغییر فایل، حتماً یک نسخه پشتیبان بگیرید. اگه سرورتون Nginx یا مدیریت‌شده هست، این کد کار نمی‌کنه و باید از پشتیبانی هاست بخواید قانون مناسب همون سرور رو تنظیم کنه:

# Block WordPress xmlrpc.php requests
<Files "xmlrpc.php">
    Require all denied
</Files>

دسترسی REST API رو درست مدیریت کنید

REST API رابطی هست که بخش‌های مختلف وردپرس و بعضی افزونه‌ها از راه اون با سایت ارتباط می‌گیرن. ویرایشگر بلوکی و تعدادی از قابلیت‌های مدیریتی هم به این رابط وابسته هستن، پس غیرفعال‌کردن کامل اون برای همه سایت‌ها انتخاب مناسبی نیست.

اطلاعات عمومی REST API معمولاً همون داده‌های عمومی سایت هستن. محتوای خصوصی و بخش‌های حساس بدون مجوز مناسب در دسترس قرار نمی‌گیرن. برای امنیت بیشتر، بهتره افزونه‌ها رو به‌روز نگه دارید، مسیرهای غیرضروری رو محدود کنید و روی درخواست‌های پرتکرار Rate Limiting بذارید؛ Rate Limiting یعنی تعداد درخواست‌های مجاز هر کاربر یا IP رو در یک بازه زمانی محدود کنید.

محدودکردن REST API با افزونه

اگه بعد از بررسی دقیق مطمئن شدید کاربران مهمان و افزونه‌های سایتتون به REST API نیاز ندارن، افزونه Disable WP REST API می‌تونه دسترسی کاربران واردنشده رو ببنده. این محدودیت ممکنه فرم‌ها یا قابلیت‌های بعضی افزونه‌ها رو مختل کنه، پس حتماً بعد از فعال‌سازی، بخش‌های مختلف سایت رو آزمایش کنید.

افزونه Disable WP REST API
افزونه Disable WP REST API

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

مخزن وردپرس
مخزن وردپرس

فایروال سایت رو فعال کنید

برای مقابله با حملات جدی، بهتره ترافیک مشکوک قبل از رسیدن به سرور اصلی فیلتر بشه. فایروال برنامه وب یا WAF درخواست‌ها رو بر اساس قانون‌های امنیتی بررسی می‌کنه و می‌تونه بخشی از ترافیک مخرب رو مسدود یا محدود کنه.

برای این کار می‌تونید از کلودفلر استفاده کنید. وقتی DNS و تنظیمات پروکسی درست باشن، درخواست‌ها اول به شبکه کلودفلر می‌رسن و بعد ترافیک مجاز به سرور اصلی فرستاده می‌شه. برای نتیجه بهتر، IP سرور اصلی رو عمومی نکنید و دسترسی مستقیم به اون رو با کمک شرکت هاست محدود کنید.

شبکه گسترده کلودفلیر
شبکه گسترده کلودفلیر

برای راه‌اندازی، آموزش نصب Cloudflare روی سایت و انجام تنظیمات آن رو ببینید. محافظت استاندارد DDoS کلودفلر به‌صورت خودکار فعاله، ولی بهتره رویدادهای امنیتی، WAF، قانون‌های سفارشی و Rate Limiting رو هم متناسب با ترافیک واقعی سایت تنظیم کنید. Under Attack Mode رو فقط هنگام حمله لایه ۷ و برای مدت لازم فعال کنید، چون ممکنه روی API و بعضی کاربران واقعی هم اثر بذاره.

صفحه رسمی کلودفلر درباره محافظت خودکار در برابر حملات DDoS
صفحه رسمی کلودفلر درباره محافظت خودکار در برابر حملات DDoS

یک سرویس پایش یا مانیتورینگ هم می‌تونه قطع‌شدن سایت و بالا رفتن زمان پاسخ سرور رو بهتون خبر بده. هشدار زودهنگام فرصت می‌ده گزارش‌های کلودفلر، لاگ سرور و وضعیت هاست رو سریع‌تر بررسی کنید. واکنش سریع‌تر هم معمولاً اثر اختلال روی کاربران و سئو رو کمتر می‌کنه.

تفاوت حمله Brute Force و DDoS

هدف حمله DDoS اینه که با ایجاد بار غیرعادی، سرویس رو کند یا از دسترس خارج کنه. این بار می‌تونه شبکه، سرور یا خود برنامه سایت رو درگیر کنه.

Brute Force یا حمله جست‌وجوی فراگیر، روش متفاوتی داره. مهاجم در این روش ترکیب‌های زیادی از نام کاربری و رمز عبور رو امتحان می‌کنه تا وارد حساب بشه. برای کم‌کردن خطر اون می‌تونید مقاله ۸ روش برای جلوگیری از حملات Brute Force در سایت وردپرسی رو بخونید.

تشخیص نوع حمله به سایت

کندشدن یا قطع سایت به‌تنهایی ثابت نمی‌کنه که با DDoS روبه‌رو هستید. خطای افزونه، کمبود منابع هاست، مشکل دیتابیس یا افزایش عادی بازدید هم ممکنه نشونه‌های مشابهی بسازه. برای تشخیص، باید چند منبع اطلاعاتی رو کنار هم ببینید.

تعداد درخواست‌ها، مصرف پهنای باند، کدهای خطای سرور، IPهای پرتکرار و مسیرهای هدف رو در Access Log بررسی کنید. Access Log همون گزارشی هست که جزئیات درخواست‌های رسیده به سرور رو ثبت می‌کنه. گزارش شرکت هاست و Security Events کلودفلر هم برای تشخیص الگوی حمله کمک‌کننده هستن.

افزونه‌های All-In-One Security (AIOS) – Security and Firewall و Sucuri Security می‌تونن بعضی رویدادهای امنیتی و تلاش‌های ورود رو ثبت کنن. بااین‌حال، تعداد زیاد ورود ناموفق بیشتر نشونه Brute Force هست و به‌تنهایی وقوع DDoS رو ثابت نمی‌کنه.

 All In One WP Security
All In One WP Security

برای آشنایی بیشتر با AIOS می‌تونید مقاله بهترین افزونه امنیتی وردپرس – All In One WP Security رو ببینید.

بررسی رویدادها در افزونه Sucuri Security

بعد از نصب و فعال‌سازی Sucuri Security، منوی افزونه به پیشخوان وردپرس اضافه می‌شه. از گزارش‌های افزونه می‌تونید برای دیدن ورودهای اخیر و بعضی رویدادهای امنیتی استفاده کنید.

لایگن‌های ناموفق در افزونه Sucuri Security
لایگن‌های ناموفق در افزونه Sucuri Security

بخش Last Logins ورودهای ثبت‌شده رو نشون می‌ده. جای دقیق گزینه‌ها ممکنه با نسخه افزونه فرق داشته باشه، پس عنوان بخش‌ها رو در رابط فعلی سایتتون بررسی کنید.

در گزارش Failed Logins می‌تونید تلاش‌های ورود ناموفق رو ببینید. تعداد غیرعادی این تلاش‌ها ممکنه نشونه حمله Brute Force باشه، ولی برای تشخیص DDoS باید گزارش ترافیک شبکه، لاگ سرور و رویدادهای سرویس لبه شبکه رو هم بررسی کنید.

بررسی ورودها در افزونه AIOS

بعد از نصب و فعال‌سازی AIOS، وارد بخش گزارش‌های ورود کاربران بشید. نام و جای منوها ممکنه در نسخه‌های مختلف تغییر کنه، ولی باید دنبال بخشی باشید که تلاش‌های ورود ناموفق رو نمایش می‌ده.

این گزارش بهتون کمک می‌کنه IP، زمان و تعداد تلاش‌های ناموفق رو بررسی کنید:

اگه تعداد زیادی تلاش ناموفق در فاصله کوتاه می‌بینید، احتمال Brute Force بیشتره. برای بررسی دقیق‌تر، زمان این تلاش‌ها رو با Access Log و گزارش‌های هاست مقایسه کنید تا مشخص بشه هم‌زمان حجم کلی درخواست‌ها هم بالا رفته یا نه.

وقتی DDoS اتفاق افتاد چه کاری کنیم؟

حتی با تنظیم درست لایه‌های امنیتی، باز هم ممکنه سایتتون هدف حمله قرار بگیره. وقتی افزایش غیرعادی ترافیک یا اختلال گسترده رو دیدید، بهتره سریع و مرحله‌به‌مرحله واکنش نشون بدید.

اول تیم فنی و پشتیبانی رو در جریان بذارید و زمان شروع اختلال، خطاهای دیده‌شده و بخش‌های درگیر رو ثبت کنید. اگه سایت فروشگاهی هست، یک راه ارتباطی جایگزین در اختیار مشتری‌ها بذارید تا وضعیت سفارش یا پرداختشون رو پیگیری کنن.

اگه کانال ارتباطی دیگه‌ای مثل شبکه اجتماعی یا صفحه وضعیت دارید، مشکل رو کوتاه و شفاف توضیح بدید. اطلاعات فنی حساس یا IP سرور رو منتشر نکنید و فقط وضعیت سرویس و زمان اطلاع‌رسانی بعدی رو بگید.

هم‌زمان با پشتیبانی هاست تماس بگیرید. زمان شروع حمله، IPها یا مسیرهای پرتکرار و نمونه خطاها رو براشون بفرستید. شرکت هاست می‌تونه مصرف منابع و ترافیک شبکه رو بررسی کنه و در صورت پشتیبانی زیرساخت، فیلترهای لازم رو قبل از رسیدن درخواست‌ها به وردپرس فعال کنه.

اگه از کلودفلر یا یک WAF دیگه استفاده می‌کنید، Security Events رو بررسی کنید و برای الگوی مشخص حمله، قانون محدودکننده بسازید. Under Attack Mode فقط برای حمله لایه ۷ و به‌صورت موقت مناسبه. تنظیم‌های فایروال Sucuri هم به سرویس و حساب WAF فعال نیاز دارن، پس گزینه‌ای رو که در نسخه یا پلن فعلی‌تون تأیید نشده حدس نزنید.

اهمیت انتخاب هاستینگ‌های دارای محافظت اختصاصی DDoS

در حملات بزرگ لایه ۳ و ۴، افزونه وردپرس نمی‌تونه جلوی پرشدن پهنای باند سرور رو بگیره، چون ترافیک باید قبل از رسیدن به وردپرس فیلتر بشه. موقع خرید هاست یا سرور، از شرکت ارائه‌دهنده بپرسید محافظت DDoS در چه لایه‌هایی ارائه می‌شه، ظرفیت مقابله چقدره و هنگام حمله چه پشتیبانی‌ای دریافت می‌کنید. سرویس‌های مجهز به Scrubbing، یعنی پاک‌سازی ترافیک، درخواست‌های مخرب رو در شبکه بررسی می‌کنن و ترافیک سالم رو به سمت سرور می‌فرستن.

نتیجه‌گیری

برای جلوگیری از حملات DDoS در وردپرس نباید فقط به یک افزونه تکیه کنید. بستن مسیرهای واقعاً غیرضروری، استفاده از کلودفلر یا WAF مناسب، پایش مداوم، بررسی لاگ‌ها و انتخاب هاست دارای محافظت زیرساختی در کنار هم دفاع مؤثرتری می‌سازن.

قبل از هر تغییر، نیازهای سایتتون رو بررسی کنید و از تنظیم‌هایی که ممکنه REST API، فرم‌ها یا برنامه‌های متصل رو از کار بندازن کورکورانه استفاده نکنید. اگه حمله شروع شد، سریع با هاست هماهنگ بشید، گزارش‌های ترافیک رو بررسی کنید و محدودیت‌ها رو بر اساس الگوی واقعی حمله تنظیم کنید.

موفق و پیروز باشید. 🙂

نظر شما در این مورد چیه؟

  1. U328675۱۴ مهر ۱۴۰۲

    سلام و عرض ادب
    اگه شرکت هاستینگ قابلیت آنتی DDos داشته باشه سایت ما صد در صد از این حملات حفظ میشه ؟

  2. U312742۱۳ مرداد ۱۴۰۱

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

    خیلی خوبه حتی در اشتراک رایگان

    با تشکر

  3. U314470۱۴ خرداد ۱۴۰۱

    برای جلوگیری از دیداس پیشنهاد میدید از کلودفلیر استفاده کنم؟ هاست من در ایران است و خیلی هم قوی نیست. با چند نفر مشورت کردم هر کسی جواب متفاوتی داره. میخام بدونم استفاده از کلود فلیر مشکلی در سرعت و سئو سایت من ایجاد میکنه یا نه.
    سپاس از مطالب خوبتون

    • رضا راد۱۶ خرداد ۱۴۰۱

      سلام چون هاست شما داخل ایران هست پیشنهاد میشه در صورتی که دی داس مشاهده کردید روی سایتتون بعد بصورت موقت از کلودفلیر استفاده کنید.

  4. U31379۱۴ آبان ۱۳۹۹

    من هیچکدوم از این کار هارو انجام نداده بودم و یک سایت تازه فروشگاهی درست کردکم که دیداس شدک راه حلی هست؟؟؟

    • تیم پشتیبانیتیم پشتیبانی۱۴ آبان ۱۳۹۹

      با سلام
      باید از هاست مناسبی استفاده کنید که آنتی DDOS فعال باشد

  5. کاربر مهمان۲۸ آذر ۱۳۹۸

    بسیار عالی

پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
تیم میهن وردپرس
پشتیبانپشتیبانپشتیبانپشتیبانپشتیبان
تیم میهن وردپرسخارج از ساعات کاری هستیم؛ دستیار هوش مصنوعی پاسخگوی شماست.هوش مصنوعی

در حال بارگذاری...

هر سوالی دارید بپرسید.پاسخگوی شما هستیم.