منبع اصلی نوشتار زیر در این لینک قرار دارد

مقابله با حملات DDos به روش نرم افزاری با Iptables لینوکس

متاسفانه ابزار های خیلی زیادی واسه دی داس کردن  وجود داره که کار باهاشون راحته و هر کسی که یه خورده با لینوکس آشنا میشه یکی از اونا رو نصب میکنه و میافته به جون سرور.
ولی خوشبختانه  واسه جلوگیری از دی داس های کوچیک راه حل نرم افزاری و مقرون به صرفه ای هم هست . این روش کاملا رایگانه و نیازی به سخت افزار فایروال یا خرید سرویس آنتی دی داس نیست , ولی نسبت به وسعت حملات دیداس , سی پی یو رو اشغال میکنه . به هر حال به قول معروف “کاچی بهتر از هیچی” :)

تو این آموزش قصد داریم آی پی هایی رو که بیشتر از N تعداد درخواست در N ثانیه زمان به سرورمون ارسال میکنن رو بلوک کنیم (البته میتونیم ریجکت , ریپلای , دراپ و یا حتی لاگ رو ذخیره کنیم ولی واسه اینکه کمترین استفاده رو از سی پی یو داشته باشیم از ریجکت یا دراپ استفاده میکنیم )

دستور زیر باعث میشه  درخواست های هر آی پی که تو ۶۰ ثانیه اخیر بیشتر از ۱۰ بار به پورت ۸۰ شما (وب سرور)  ارسال شده رو نادیده بگیره

iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --set
iptables -I INPUT -p tcp --dport 80 -i eth0 -m state --state NEW -m recent --update --seconds 60 --hitcount 10 -j DROP
iptables-save >/etc/iptables.up.rules

eth0 هم اسم اینترفیس شبکتون هست که اگه چیز دیگه ای بود عوضش کنید .

 

برای اینکه ببینیم چه آی پی هایی دارن به سرورمون حمله میکنید از دستور زیر استفاده میکنیم :

netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n

خروجی به این صورت هست :‌

11 46.107.14.2
1 46.225.54.23
1 46.225.54.13
1 Address
1 servers)
132 208.109.117.123

هر سطر آی پی رو نشون میده که جلوش تعداد درخواست ها هم مشخصه

 

برای بلوک کردن یه آی پی از این دستور استفاده میکنیم :

iptables -A INPUT -s xxx.xxx.xxx.xxx -j DROP

که طبیعتا به جای xxx.xxx.xxx.xxx آدرس آی پی که میخواید بلوک بشه رو وارد میکنید

یادتون نره که بعد از هر تغییر تو iptables از دستور زیر واسه ذخیره تغییرات استفاده کنین

service iptables save

یا اگه میخواید به صورت اسکریپتی دستورات iptables اضافه بشه :

iptables-save >/etc/iptables.up.rules

 

پیروز باشید .

 



برچسب ها : , , ,