آموزش جلوگیری از حملات ddos بر روی APache با استفاده از csf
ارسال شده در ۱۳ اسفند ۱۳۹۳ دسته بندی : دستهبندی نشده
رود به همگی . امروز حملات بالای بر روی یکی از سرور های ما انجام شد که حملات با استفاده از سیستم های آلوده از کشور های مختلف در حال انجام بود که عمده آنها از کشور چین بود . حملات باعث اختلال در سرویس apache شده و از آنجای که سرویس آپاچی در جلوی حملات DDOS ضعیف عمل میکند سایت های سرور با سرعت خیلی کمی بارگزاری میشدند .
———————————————-
خوب دوستان گلم . در این مواقع شما میتوانید در سرور های لینوکس با استفاده از دستور زیر لیست IP های متصل به سرور و تعداد کانکشن های آنهارا مشاهده کنید :
کد:
netstat -atun | awk '{print $5}' | cut -d: -f1 | sed -e '/^$/d' |sort | uniq -c | sort -n
( حمله ای که بر روی سرور ما بود 2642 ای پی از کشور های مختلف و با تعداد کنکشن های مختلف بودن . )
کارهای که شما باید انجام بدید در صورت امکان وارد کانفیگ CSF خود شوید و PORT 80 را از لیست
TCP_IN و TCP_OUT پاک کنید
با اینکار شما پورت 80 را بر روی سرور خود مسدود میکنید و با خیال راحت میتوانید به مرحله بعد بروید . در صورتی که نمیخواهید سایت ها از دسترس خارج شوند میتوانید این کار را انجام ندهید .
پس از بستن PORT 80 ابتدا وارد
ConfigServer Firewal شوید و تغیرات زیر را انجام دهید .
———————————————————————————
تنظیمات مربوط به فایل csf.conf را بصورت زیر تنظیم نمایید:
حفاظت از سیل حملات DOS وSYN
کد:
CT_LIMIT = “80” CT_INTERVAL = “50” CT_PERMANENT = “1” CT_BLOCK_TIME = “1800” CT_INTERVAL = “60” CT_SKIP_TIME_WAIT = “1” SYNFLOOD = “1” |
در حال حاضر سرور شما از DOS و حملات SYN محافظت می شود، و از طریق ایمیل زمانی که یک IP مسدود شده است، مطلع خواهید شد. همچنین:
تعداد کانکشن های همزمان مجاز برای پورت 22 مقدار 5 وبرای پورت 80 مقدار 20 کانکشن
کد:
PORTFLOOD = “80;tcp;20;300” |
این تنظیم به این معنا می باشد که تمام درخواست به پورت 80 از نوع TCP از 20 درخواست درثانیه را
در بازه زمانی 300 ثانیه را قبل از آزاد شدن کانکشن محدود میکند.
حفاظت از SPAM هرزنامه
کد:
LF_DSHIELD = “86400” LF_SPAMHAUS = “86400” LF_BOGON = “86400” |
این تنظیم اختیاری است و پیشنهاد نمی شود زیرا سرور شما از یک لیست بزرگ از IP های بد شناخته شده محافظت می شود،
که همیشه در حال رشد است. سایر تنظیمات مفید شما می توانید دسترسی IP کشورهای مخصوصی را ببندید
شما می توانید lfd را برای تشخیص دایرکتوری های مشکوک تنظیم نمایید:
خوب نکته مهم
شما وقتی دستور :
کد:
netstat -atun | awk '{print $5}' | cut -d: -f1 | sed -e '/^$/d' |sort | uniq -c | sort -n
را در سرور خود وارد میکنید لیست IP های متصل به سرور شما + تعداد کانکشن نمایش داده میشود ، IP های نمایش داده شده را در سایت زیر وارد کنید :
کد:
http://geoip.flagfox.net/?ip=
و بعد از نمایش مشخصات در قسمت Country Code مخفف نام کشور ( برای مثال Iran = IR ) را برای شما نمایش میدهد . بجز IP کشور های مهم مثل : آلمان ، آمریکا ، ایران و … تمامی IP های نمایش داده شده را ابتدا Country Code آنهارا به دست بیاورید و سپس مثل آموزش بالا وارد ConfigServer Firewall شوید و آن ها را در لیست CC_DENY قرار داده و ذخیره کنید ، سرویس CSF و LFD را ریستارت دهید و سپس سرور خود را reboot دهید . و بعد PORT 80 را در سرور خود باز کنید .
اما بنظر من پیشگیری بهتر از درمان است . مشتریان شما یا از ایران هستن یا خارج و یا اینکه از قند شکن استفاده میکنند . شما مخاطبی در کشور چین و یا افریقای و سایر کشور های غریبه ندارید . من در سرورم لیست کشور های زیر را مسدود کردم . شما میتوانید با توجه به درخواست های خود و نوع حملات آن هارا تغیر دهید .
GB,CN,TR,VE,SE,BR,CL,IN,AE,MX,ID,VN,TH,LK,NG,KE,AR ,EC,PA,PK,MY,RU,IQ,EU,CO,PS,UA,NL,KH,HK,CZ,BD,RO,P H,KR,TW
.
دوستان لطفا توجه داشته باشید که این آموزش برای حملات بر روی سطح 7 شبکه میباشد ( سطح نرم افزار) که سرویس APache را مورد حمله قرار داده بودن . در حملات بر روی شبکه و یا …. شما از هیچ نرم افزاری بجز firewall سخت افزاری و یا استفاده از میکروتیک نمیتوانید جلویه حملات را بگیرید . دلیل هم عدم دسترسی و مدیریت نرم افزار ها به سایر لایه های شبکه میباشد .
با تشکر .