محدودسازی نرخ دسترسی (Rate Limiting)

Calendar

انتشار:

1404/07/26
Update Calendar

به روز رسانی:

1404/07/26

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

محدودسازی نرخ دسترسی (Rate Limiting)

محدودسازی نرخ دسترسی یا Rate Limiting یکی از مهم‌ترین ابزارهای دفاعی در برابر سوءاستفاده‌های ترافیکی است. با فعال کردن این گزینه، شما تعیین می‌کنید هر IP در یک بازه‌ی زمانی مشخص چه تعداد درخواست می‌تواند به سایت ارسال کند. به عنوان مثال اگر مقدار مدت زمان را ۱۰ ثانیه و تعداد دسترسی را ۱۰۰ قرار دهید، هر کاربر تنها مجاز است در هر ۱۰ ثانیه، ۱۰۰ درخواست به سرور ارسال کند. در صورتی که از این مقدار عبور کند، فایروال وارد عمل شده و بسته به تنظیم شما یکی از دو حالت چالش (Challenge) یا مسدودسازی (Block) را اجرا می‌کند.

در حالت چالش، سیستم ابتدا بررسی می‌کند آیا درخواست از سمت مرورگر واقعی کاربر آمده یا از طرف ربات و نرم‌افزار خودکار است. این روش برای سایت‌های عمومی مانند فروشگاه‌ها و مجله‌های خبری مناسب است چون مانع از مسدود شدن کاربران واقعی می‌شود. اما اگر حالت مسدودسازی را انتخاب کنید، IP مورد نظر برای مدت زمانی که در فیلد زمان عملیات (دقیقه) مشخص کرده‌اید، به‌طور کامل از دسترسی به سایت منع می‌شود. این گزینه برای صفحات حساس مثل ناحیه مدیریت (admin panel) یا APIهای داخلی بسیار کاربردی است.

Rate Limiting

محدودسازی حملات

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

در تنظیمات، شما می‌توانید مدت زمان بررسی را به ثانیه و زمان واکنش را به دقیقه مشخص کنید. به طور مثال اگر بازه بررسی را روی ۶۰ ثانیه و زمان عملیات را روی ۳۰ دقیقه بگذارید، به این معنی است که اگر در هر ۶۰ ثانیه حجم غیرطبیعی از درخواست‌ها تشخیص داده شود، IP مورد نظر به مدت ۳۰ دقیقه مسدود خواهد شد یا وارد چالش امنیتی می‌شود. این روش برای جلوگیری از حملات Brute Force (تلاش مکرر برای حدس رمز عبور) یا DDoS سطح پایین بسیار مؤثر است.

نمای تنظیم محدودسازی حملات

محدودسازی بر اساس خطاهای HTTP

در این قسمت می‌توانید رفتار فایروال را در مواجهه با خطاهای HTTP مثل ۴۰۳، ۴۰۴ و ۴۰۵ کنترل کنید. این خطاها معمولاً زمانی رخ می‌دهند که کاربر یا ربات قصد دسترسی به مسیرهایی را دارد که وجود ندارند یا اجازه‌ی مشاهده‌ی آن‌ها را ندارد. تکرار زیاد این نوع خطاها معمولاً نشانه‌ای از فعالیت‌های مشکوک یا اسکن خودکار مسیرهای حساس سایت است.

با فعال کردن این گزینه و وارد کردن کد خطاهای موردنظر (برای مثال ۴۰۳، ۴۰۴، ۴۰۵) در بخش مربوطه، فایروال رفتار مشخصی را برای IPهایی که این خطاها را مکرراً ایجاد می‌کنند تعریف می‌کند. همانند سایر بخش‌ها می‌توانید نوع واکنش را بین چالش یا مسدودسازی انتخاب کنید. برای مثال، اگر IP خاصی در مدت کوتاهی چندین خطای ۴۰۴ ایجاد کند، سیستم به صورت خودکار آن را وارد چالش کرده یا برای مدت ۳۰ دقیقه مسدود می‌کند. این قابلیت به‌ویژه برای وب‌سایت‌هایی با محتوای زیاد یا مسیرهای خصوصی اهمیت بالایی دارد و از اسکن خودکار مسیرها جلوگیری می‌کند.

نمای محدودسازی بر اساس خطا

تفاوت بین حالت «چالش» و «مسدودسازی»

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

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

سناریوهای عملی برای سایت‌های پرترافیک

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

به عنوان یک نمونه‌ی عملی، می‌توانید مقدار محدودسازی نرخ دسترسی را طوری تنظیم کنید که هر کاربر در هر ۱۰ ثانیه، حداکثر ۱۰۰ درخواست ارسال کند. در صورت عبور از این حد، سیستم به مدت ۶۰ دقیقه آن IP را در حالت چالش قرار می‌دهد. برای بخش محدودسازی حملات، می‌توانید بازه بررسی را روی ۶۰ ثانیه و زمان مسدودسازی را روی ۳۰ دقیقه بگذارید تا در صورت مشاهده رفتارهای غیرعادی، واکنش سریع انجام شود. همچنین در بخش محدودسازی بر اساس خطا، بهتر است خطاهای ۴۰۳ و ۴۰۴ را هدف قرار دهید تا در صورت تکرار بیش از ۵۰ مورد از این خطاها، IP مربوطه برای مدتی مسدود شود.

ذخیره و بررسی نتایج

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


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

آیا توانستیم چالش شما را حل کنیم؟