در آموزش قبل به شما شیوه نصب و راه اندازی فایروال csf یا ConfigServer Firewall & Security را آموختیم. امروز و در این آموزش قصد داریم به معرفی بیشتر و جزئی تر این فایروال قدرتمند و محبوب بپردازیم. در این آموزش شما با فایل های کانفیگ csf و آشنا خواهید شد و توانایی کار با این سرویس را پیدا خواهید کرد.
بیشتر بخوانید:
فایل کانفیگ CSF
CSF دارای یک فایل کانفیگ می باشد که تنظیمات اصلی در آن قرار میگیرد. با یک ویرایشگر متن آن را باز میکنیم:
1 |
[root@arshatech ~]# vim /etc/csf/csf.conf |
اگر قبلا فایروال خود را کانفیگ نکرده اید حتما می بایست آن را از حالت TESTING یا آزمایشی خارج نمائید. برای این کار در مسیر گفته شده مقدار TESTING را از یک به صفر تغییر دهید:
1 |
TESTING = "0" |
همچنین شما قادر خواهید بود در این مسیر تنظیمات پیشرفته تری را انجام دهید که در ادامه به آن ها میپردازیم.
تنظیمات پورت های سرور
شما در فایل csf.conf قادر به باز کردن یا بستن پورت های مورد نظر خود می باشید. پس بهتر است با یک سیاست گذاری صحیح به اعمال محدویت روی پورت های خود بپردازید:
برای باز کردن ترافیک ورودی (TCP) به پورت های خود میتوانید شماره پورت مورد نظر خود را وارد کنید:
1 2 |
# Allow incoming TCP ports TCP_IN = "20,21,22,25,53,80,110,143,443,465,587,993,995" |
همچنین در بخش زیر میتوانید شماره پورت های مورد نظر خود را برای دادن مجوز ترافیک خروجی (TCP) از سرور خود وارد نمائید:
1 2 |
# Allow outgoing TCP ports TCP_OUT = "20,21,22,25,53,80,110,113,443,587,993,995" |
همچنین برای باز کردن ترافیک ورودی (UDP) به پورت های مورد نظر سرور خود میتوانید شماره پورت های لازم را وارد کنید:
1 2 |
# Allow incoming UDP ports UDP_IN = "20,21,53" |
و برای باز کردن ترافیک خروجی (UDP) از سرور نیز میتوانید شماره پورت های مورد نظر خود را وارد کنید:
1 2 3 |
# Allow outgoing UDP ports # To allow outgoing traceroute add 33434:33523 to this list UDP_OUT = "20,21,53,113,123" |
در نظر داشته باشید که برای اعمال تغییرات حتما می بایست سرویس csf را ری استارت کنید که در ادامه توضیح داده خواهد شد.
تنظیمات پینگ سرور
شما میتوانید پینگ سرور خود با تغییر مقادیر ICMP_IN از یک به صفر و بالعکس تنظیم نمائید. اگر مقدار آن ۱ باشد پینگ سرور شما باز خواهد بود و اگر این مقدار برابر صفر باشد پینگ سرور به طور کامل بسته میشود.
اگر شما در حال ارائه خدمات آنلاین هستید توصیه میشود پینگ سرور خود را باز نگه دارید تا بتوانید همواره آپتایم سرور خود را بررسی نمائید:
1 2 3 |
# Allow incoming PING. Disabling PING will likely break external uptime # monitoring ICMP_IN = "1" |
همچنین عبارت دیگری تحت عنوان ICMP_OUT وجود دارد که بهتر است مقدار آن نیز یک باشد. چرا که در صورت صفر شدن آن پینگ سرور از درون بسته خواهد شد و عملا سرور دچار اختلال میشود:
1 2 3 4 5 |
# Allow outgoing PING # # Unless there is a specific reason, this option should NOT be disabled as it # could break OS functionality ICMP_OUT = "1" |
محدود کردن تعداد آی پی های بلاک شده
با مقداردهی به عبارت DENY_IP_LIMIT حداکثر آی پی هایی که میتوانند در لیست سیاه csf قرار میگیرند را مشخص میکنید. این مقدار به صورت پیش فرض برابر ۲۰۰ است.
1 |
DENY_IP_LIMIT = "200" |
همچنین شما میتوانید برای محدود کردن آی پی ها به صورت موقت نیز اقدام نمائید. این کار با مقداردهی به عبارت DENY_TEMP_IP_LIMIT ممکن خواهد بود. این مقدار به صورت پیش فرض برابر ۱۰۰ می باشد.
1 2 3 4 5 |
# Limit the number of IP's kept in the temprary IP ban list. If the limit is # reached the oldest IP's in the ban list will be removed and allowed # regardless of the amount of time remaining for the block # Set to 0 to disable limiting DENY_TEMP_IP_LIMIT = "100" |
توجه داشته باشید که در صورت دادن مقادیر بالا به این بخش ها (محدودیت دائم و موقت) عملکرد فایروال سرور شما کند خواهد شد.
محدود کردن بسته های غیرقانونی
برای جلوگیری از بسته های اشتباه، غیرقانونی و بدون کاربرد روی سرور خود نیز میتوانید به صورت زیر عمل کرده و مقدار PACKET_FILTER را برابر یک قرار دهید:
1 2 3 |
# Drop out of order packets and packets in an INVALID state in iptables # connection tracking PACKET_FILTER = "1" |
کنترل حملات SYNFLOOD
این ابزار به شما این امکان را میدهد تا بتوانید حملات SYNFLOOD را نیز روی سرور خود کنترل نمائید. گرچه با فعال سازی این بخش برقراری اتصال های جدید به سرور شما با کندی روبه رو خواهد شد اما امری ضروری به نظر می رسد. برای جلوگیری از کندی سرور میتوانید هنگام بروز حملات SYNFLOOD این بخش را فعال نمائید. پس به صورت پیش فرض میتواند غیر فعال باشد:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
############################################################################### # SECTION:Port Flood Settings ############################################################################### # Enable SYN Flood Protection. This option configures iptables to offer some # protection from tcp SYN packet DOS attempts. You should set the RATE so that # false-positives are kept to a minimum otherwise visitors may see connection # issues (check /var/log/messages for *SYNFLOOD Blocked*). See the iptables # man page for the correct --limit rate syntax # # Note: This option should ONLY be enabled if you know you are under a SYN # flood attack as it will slow down all new connections from any IP address to # the server if triggered SYNFLOOD = "0" SYNFLOOD_RATE = "100/s" SYNFLOOD_BURST = "150" |
کنترل حملات DOS
یکی دیگر از ویژگی های برجسته csf توانایی مدیریت کانکشن ها برای مدیریت و جلوگیری از حملات DOS می باشد. این کار با مقداردهی به پارامتر CONNLIMIT صورت میگیرد:
1 |
CONNLIMIT = "22;3,80;20" |
به طور مثال در بالا ذکر شده است که تعداد کانکشن های همزمان مجاز برای هر آی پی روی پورت ۲۲ حد اکثر ۳ کانکشن و روی پورت ۸۰ حد اکثر ۲۰ کانکشن باشد. در صورت درخواست برای برقراری کانکشن های همزمان بیشتر توسط فایروال ممانعت به عمل خواهد آمد.
کنترل حملات PORTFLOODING
یکی دیگر از امکانات بسیار کاربردی csf کنترل کانکشن ها روی پورتی خاص می باشد. که میتواند از حملات DDOS یا تکذیب سرویس نیز جلوگیری نماید.
1 |
PORTFLOOD = "80;tcp;20;300, 22;tcp;3;300" |
برای درک بهتر این قابلیت مثال بالا را شرح میدهیم. در مثال بالا آورده شده است که اگر از یک آی پی خاص بیش از ۲۰ درخواست در یک ثانیه به پورت ۸۰ زده شد آی پی مورد نظر برای ۳۰۰ ثانیه به صورت موقت مسدود خوهد شد. همچنین اگر بیش از ۳ کانکشن به پورت ۲۲ زده شود آی پی مورد نظر برای ۳۰۰ ثانیه بلاک خواهد شد. در ادامه به شما خواهیم گفت که این آی پی ها در چه فایلی ذخیره میشوند.
محدود کردن آی پی کشورهای خاص
یکی دیگر از امکاناتی که میتوانید در csf از آن استفاده کنید اعمال محدودیت بر روی آی پی های مربوط به کشوری خاص است. به طور مثال اگر شما میخواهید همه آی پی های مربوط به کشورهای چین و هند را بلاک کنید به صورت زیر عمل نمائید:
1 |
CC_DENY = "CN, IN" |
و اگر شما به ارائه سرویسی میپردازید که میخواهید فقط آی پی های مربوط به ایران در دسترس باشند میتوانید به صورت زیر عمل کنید:
1 |
CC_ALLOW = "IR" |
معرفی دیگر فایل های csf
بعد از شرح و بررسی فایل مربوط به تنظیمات csf نوبت به معرفی فایل های مهم دیگری میرسد که برای این فایروال وجود دارد. در ادامه به معرفی آن ها میپردازیم:
- csf.allow: این فایل محل قرارگیری آدرس های آی پی مجاز بوده و به اصلاح لیست سفید نام دارد.
- csf.deny: آی پی های غیر مجاز در این فایل قرار میگیرند. به عبارت دیگر لیست سیاه فایروال می باشد.
- csf.ignore: لیست آی پی هایی را شامل میشود که تحت هیچ شرایطی توسط فایروال بلاک نخواهند شد.
- csf.*ignore: این فایل شامل لیستی از آی پی ها، یوزرها و دایرکتوری هایی است که تحت هیچ شرایطی توسط فایروال مسدود نخواهند شد.
اعمال مجاز بر روی سرویس CSF
این سرویس نیز مانند سرویس های دیگر لینوکسی قابلیت توقف، شروع، ری استارت و بررسی وضعیت سرویس را دارد که در ادامه آورده میشوند:
برای استارت سرویس دستور زیر مورد استفاده قرار میگیرد:
1 |
[root@arshatech ~]# service csf start |
اگر میخواهید آن را متوقف نمائید از عبارت stop استفاده کنید:
1 |
[root@arshatech ~]# service csf stop |
همچنین برای ری استارت این سرویس دستور زیر را بکار ببرید:
1 |
[root@arshatech ~]# service csf restart |
و اگر میخواهید وضعیت آن را مورد بررسی قرار دهید از دستور زیر استفاده کنید:
1 |
[root@arshatech ~]# service csf status |
اگر شما بر روی تنظیمات csf تغییراتی داده اید می بایست برای اعمال آن تغییرات csf را ری استارت کنید. برای این کار از دستور زیر استفاده نمائید:
1 |
[root@arshatech ~]# csf -r |
1 دیدگاه
تینا
ممنون ولی میتونست کامل تر باشه.