متاسفانه ابزار های خیلی زیادی واسه دی داس کردن وجود داره که کار باهاشون راحته و هر کسی که یه خورده با لینوکس آشنا میشه یکی از اونا رو نصب میکنه و میافته به جون سرور.
ولی خوشبختانه واسه جلوگیری از دی داس های کوچیک راه حل نرم افزاری و مقرون به صرفه ای هم هست . این روش کاملا رایگانه و نیازی به سخت افزار فایروال یا خرید سرویس آنتی دی داس نیست , ولی نسبت به وسعت حملات دیداس , سی پی یو رو اشغال میکنه . به هر حال به قول معروف “کاچی بهتر از هیچی”
تو این آموزش قصد داریم آی پی هایی رو که بیشتر از 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
پیروز باشید .