باسلام، ابتدا باید با پروتکل TCP و یک سری مفاهیم آن آشنا شوید.
در پروتکل TCP برای برقراری ارتباط ابتدا باید درستی و صحت ارتباط تایید شود، که این فرآیند توسط یک فرآیند سه مرحله ای به نام Three Way Handshake انجام می شود، به طور مثال فرض کنید میخوایم به پورت 21 یک سرور اتصال TCP برقرار کنیم :
1- کلاینت درخواست برقراری ارتباط خودش را به آدرس مقصد ارسال می کند، این درخواست را بسته اطلاعاتی SYN گفته می شود (Synchronization Packet بسته همگام سازی)
2- سرور بسته SYN را دریافت کرده و با استفاده از یک بسته SYN/ACK به کلاینت پاسخ می دهد که آماده برقراری ارتباط است (Synchronization Acknowledge تایید همگام سازی)
3- و در آخر کلاینت یک بسته اطلاعاتی ACK به سرور ارسال کرده و اعلام می کند آماده برقراری ارتباط است.
در TCP حمله ای با نام TCP SYN Flood وجود دارد که اتکر با آیپی های جعلی درخواست SYN به سرور ارسال می کنید (مرحله 1 فرآیند سه مرحله ای) سپس سرور یک بسته SYN/ACK (مرحله 2 فرآیند سه مرحله ای) به آیپی ارسال میکند اما آیپی پاسخ نمی دهد در نتیجه کانکشن نیمه باز می ماند و اگر محدودیتی مشخص نشده باشد، کانکشن های سرور فول می شود و در آخر هیچکس دیگر نمیتواند با سرور ارتباط برقرار کند.
حالا با توجه به اطلاعات بالا پارامتر های شما به شکل زیر تعریف می شود و در صورتی که کلاینت مقادیر زیر را رد کند آیپی کلاینت مسدود خواهد شد :
SYNFLOOD_RATE = 100/s : هر آیپی فقط مجاز به ارسال 100 پکت در ثانیه می باشد.
SYNFLOOD_BURST = 150 : هی آیپی فقط مجاز به ایجاد 150 کانکشن می باشد.