در این مقاله به بررسی کانفیگ csf از حملات هکرها ، قابلیت اجرای آن روی پلتفرمهای مختلف و همچنین نصب آن پرداخته میشود.
در ابتدا نیاز است توجه کنید که راه اندازی و اجرای فایروال CSF، مستلزم سروری با سیستم عامل لینوکس می باشد. این فایروال روی ویندوز یا سایر سیستم عاملها قابل نصب نیست. لینوکس، سیستم عاملی متن باز و بر پایه UNIX است.
پیکربندی CSF یکی از اساسی ترین راه ها برای ایمن سازی سرور شما و محافظت از آن در برابر متداول ترین انواع حملات است.
گام به گام آموزش کانفیگ csf
ما فرض را بر این میگیریم که قبلاً شما با نصب فایروال csf این آموزش را پیگیری میکنید. اگر csf را نصب نکردهاید قبل از ادامه آموزش آن را نصب و سپس ادامه این مقاله را مطالعه کنید.
در این مقاله آموزش کانفیگ csf از حملات هکرها را کامل توضیح داده ایم.
برای کانفیگ csf ابتدا فایل مربوط به کانفیگ را با یک ویرایشگر باز کنید.
vi /etc/csf/csf.conf
سپس حالت تست را توسط گزینه زیر غیرفعال کنید.
"TESTING = "0
همیشه بهترین روش امن کردن سرور در مرحله اول غیرفعال کردن سرویسهای غیرضروری و بستن پورتهای باز روی سرور است.
توسط بخش زیر میتوانید فقط پورتهایی را که باید بر روی سرور باز باشند را اجازه فعالیت به آنها بدهید هر پورتی که در این بخش قرار نگیرد مسدود خواهد شد.
"TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995 "TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995
این بخش مربوط به دسته پورتهای TCP در حالات incoming و outgoing هستند.
توسط دو بخش زیر هم میتوانید پورتهای مربوط به پروتکل UDP را بر روی سرور کنترل کنید.
"UDP_IN = "20,21,53 "UDP_OUT = "20,21,53,113,123
البته فایل کانفیگ csf دارای بخشهای زیادی است که ما فقط بر روی مهمترین بخشهای آن کار خواهیم کرد و آنها را آموزش خواهیم داد.
البته برای هر بخش توضیحاتی به صورت comment نوشته شده که در صورت نیاز میتوانید آنها را نیز مطالعه کنید.
در صورتی که حملهای از نوع port flood بر روی سرور رخ دهد میتوانید توسط بخش زیر آن را کنترل و مسدود کنید.
"PORTFLOOD = "port;protocol;hit_count;interval_in_seconds
نحوه استفاده از این بخش بدین صورت است که باید به جای هر عبارت مقادیر مربوط به آن را قرار دهید. به طور مثال باید جای port شماره پورتی که میخواهید این حملات را روی آن کنترل کنید وارد کنید.
جای protocol هم باید نوع پروتکل که یا TCP و یا UDP است را قرار میدهید.
به جای hit_count تعداد درخواستهای مجاز به سمت پورت را مشخص میکنید و به جای interval_in_seconds مدت زمانبر حسب ثانیه که به آن پورت تعداد مشخصی درخواست ارسال میشود را وارد کنید.
یعنی شکل نهایی این بخش چیزی شبیه این کد “PORTFLOOD = “۸۰;tcp;50;10 خواهد بود.
برای واردکردن چند پورت همزمان نیز با علامت , میتوانید این کار را انجام دهید.
در بخش زیر نیز میتوانید دقیقاً مشخص کنید چند ارتباط همزمان به پورت موردنظر امکان اتصال خواهند داشت.
"CONNLIMIT = "ort;limit
در واقع بدین فرمت شما تعریف میکنید هر کاربری که درون سایت شما درخواستی را ارسال میکنید به پورت موردنظر که معمولاً اکثر حملات به سمت پورت ۸۰ است محدود شود.
توسط گزینه بعدی نیز بهطور کلی ارتباط همزمان هر کاربر به تمامی پورتها را مشخص میکنیم.
"CT_LIMIT = "100
در این حالت هر کاربر به صورت همزمان فقط مجاز به ایجاد ۱۰۰ ارتباط همزمان زنده است.
گزینه بعدی که وابسته به option قبلی است در صورتی که تعداد ارتباطات هر کاربر به سمت سرور بیشتر از ۱۰۰ شود IP فرد موردنظر مسدود خواهد شد.
"CT_PERMANENT = "1
برای جلوگیری از حملات SYNFLOOD در کانفیگ csf با ویرایش مقادیر زیر میتوانید آن را تحت کنترل داشته باشید.
"SYNFLOOD = "1" SYNFLOOD_RATE = "30/s" SYNFLOOD_BURST ="30
به صورت پیشفرض گزینه SYNFLOOD مقدار ۰ دارد که آن را غیرفعال میکند.
اگر ۳۰ ارتباط از هر کاربر برای ۳۰ بار تکرار شود دسترسی فرد مهاجم توسط فایروال csf مسدود خواهد شد.
گزینههای مهمی که برای کانفیگ csf باید آنها را میدانستید تماماً با مثال آموزش داده شد حالا باید جهت اعمال تغییرات، بعد از ذخیره فایل کانفیگ توسط دستور زیر یکبار سرویس csf را ریست کنید.
systemctl restart csf
یک مورد رو هم اضافه کنم برای مدیران سروری که مرتب سرور خودشان را مانیتور میکنند. اگر شک داشتید که سرور شما زیر حمله ddos قرار دارد توسط دستور زیر در لینوکس دقیقاً میتوانید متوجه شوید هر IP چه تعداد ارتباط با سرور شما ایجاد کرده است.
netstat -alpn | grep :80 | awk '{print $4}' |awk -F: '{print $(NF-1)}' |sort | uniq -c | sort -n
در صورت مشکوک بودن با مسدود کردن IP با دستور زیر سرور را از زیر لود نجات دهید.
csf –d IP
بهجای عبارت IP آدرس آی پی فرد مهاجم را قرار دهید و تمام.