CSF چیست و چطور آن را فعال و غیرفعال کنیم؟
در این مقاله میخوانید
فایروال کانفیگ سرور (Config Server Firewall) که با نام CSF نیز شناخته میشود، اسکریپت پیکربندی فایروالی است که برای حفظ امنیت روی سرورهای لینوکس نصب میشود. CSF رابط کاربری پیشرفتهای برای مدیریت کامل فایروال در cPanel ،DirectAdmin ،Webmin و… دراختیارتان قرار میدهد. همچنین، ازجمله امکانات CSF میتوان به جلوگیری از دسترسی عمومی به سرویسها و اجازه اتصال فقط ازطریق FTP و سیستم LFD اشاره کرد. اگر میخواهید امنیت سرورتان را افزایش دهید و از امکانات بینظیر CSF استفاده کنید، تا پایان مقاله با ما همراه باشید.
CSF چیست؟
Config Server Firewall (بهاختصار CSF) فایروالی رایگان و پیشرفته برای اکثر سیستمهای لینوکسی و VPSهای مبتنیبر این سیستمعامل است. CSF میتواند بسیاری از حملهها مانند اسکن پورت SYN Floods و Login Brute Force Attacks را تشخیص دهد.
امکانات CSF
فایروال Config Server امکانات بسیار زیادی را برای محافظت از سرور در اختیارتان قرار میدهد.
1. سیستم Login Failure Daemon (بهاختصار LFD)
فایروال Config Server از سرویسی به نام Login Failure Daemon (بهاختصار LFD) برخوردار است که تلاش زیاد کاربران برای ورود و حملههایی مشابه Brute Force را تشخیص میدهد. اگر تعداد زیادی تلاش ناموفق برای ورود از یک آدرس IP مشاهده شود، کاربر موقتاً در همه سرویسها مسدود میشود. ناگفته نماند این سیستم فهرست سیاه و سفیدی دارد که میتوانید IPهای خود را درون آنها وارد کنید تا کاربران را برای همیشه مسدود یا از فهرست مسدودیها حذف کنید. برنامههای زیر میتوانند از قابلیت مذکور استفاده کنند:
- Courier imap, Dovecot, uw-imap, Kerio
- openSSH
- cPanel, WHM, Webmail (cPanel servers only)
- Pure-ftpd, vsftpd, Proftpd
- Password protected web pages (htpasswd)
- Mod_security failures (v1 and v2)
- Suhosin failures
- Exim SMTP AUTH
همچنین، میتوانید RegExهای مخصوص خود را بنویسید و از قوانین جدید خود برای مسدودکردن کاربران استفاده کنید.
2. ردیابی فرایندها (Process Tracking)
CSF میتواند فرایندهای سیستم را برای شناسایی فعالیتهای مشکوک ردیابی کند. با استفاده از این قابلیت، میتوانید بازبودن پورتهای شبکه، عملیات مشکوک و… را شناسایی و درصورت نیاز، با ایمیل یا راههای دیگر مدیر سیستم را باخبر و از بروز حملهها در VPS جلوگیری کنید.
3. زیرنظرگرفتن پوشهها (Directory Watching)
در تنظیمات این سرویس فایلی وجود دارد که عموما در این مسیر است :
/etc/csf/csf.dirwatch
در این فایل، مسیرهایی از سرور که قصد داریم بررسی شود، وارد میکنیم. درصورتیکه فایلی در آن مسیرها تغییر کند، به ادمین ایمیل ارسال میشود. اگر دایرکتوریهای حساسی داریم، کافی است مسیر آن ها را در این قسمت وارد کنیم.
4. سرویس پیامرسانی (Messenger Service)
درصورتیکه این سرویس کاربری را مسدود کند، وی پیغامی دراینباره مشاهده میکند. با فعالسازی این سرویس، میتوانید زمان مسدودکردن پیامهای ایمیل ارسالی را شخصیسازی کنید تا کاربر از نحوه مسدودسازی یا سرویسی که باعث مسدودشدن آن شده، اطلاع پیدا کند. ازنظر امنیتی توصیه میکنیم حتماً این کار را انجام دهید.
این ایمیلها میتوانند به مشتریان نیز ارسال شوند. ویژگی یادشده مزایا و معایب خاص خود را دارد. از یک طرف، فعالکردن آن باعث میشود مشتری آگاه شود و ساعاتی دیگر مراجعه کند و از طرف دیگر، اطلاعات بیشتری دراختیار وی قرار میدهد و ممکن است شما را در خطر حمله VPS قرار دهد.
راهنمای کامل سرویس فایروال وب یا وف را در مقاله زیر بخوانید.
5. محافظت از انواع حملههای پورت (Port Flood Protection)
این فایروال از پورتهای فعالی که استفاده میکنید، دربرابر حملههای مانند DoS محافظت میکند. با قابلیتها و امکانات فراوان مدیریت پورتها، میتوانید بهترین راه را برای مقابله و جلوگیری از این حملهها بیابید. افزونبراین، تعداد اتصالات مجاز در پورت در هر بازه زمانی را میتوانید مشخص کنید.
ما فعالکردن این قابلیت را توصیه میکنیم؛ زیرا تأثیر بسزایی بر جلوگیری از بسیاری از حملهها میگذارد. شایان ذکر است به محدودیتهای تعیینشده نیز باید توجه کنید؛ زیرا تنظیمات نادرست ممکن است باعث جلوگیری از بازدید مشتریان شود یا اتصالات بیشازحد ممکن است باعث بروز حمله شود.
Port Knocking .6
Port Knocking به مشتریان امکان میدهد تا پورتها را پس از چند ریکوئست (سه یا بیشتر) باز کنند. یعنی با سه درخواست اول پورت بسته بهنظر میرسد؛ اما با درخواست چهارم پورت باز میشود و سرور به کلاینتها اجازه میدهد به پورتهای اصلی متصل شوند. با این سرویس میتوانید خدماتی به مشتریان مخصوصتان ارائه دهید.
7. محافظت از اتصالات (Connection Limit Protection)
از این ویژگی برای محدودکردن مصرف منابع سرویسی خاص استفاده میشود. همچنین، تعداد اتصالات جدید همزمان را میتوان محدود کرد. اگر این بخش بهدرستی پیکربندی شود، میتواند از حملههایی مانند DoS جلوگیری کند.
8. تغییر مسیر آدرس پورت یا آیپی
CSF را میتوانید بهگونهای پیکربندی کنید که اتصالات به یک IP یا پورت را به IP یا پورت دیگری هدایت کند. توجه کنید پس از تغییر مسیر، آدرس IP مشتری آدرس سرور شما خواهد بود. این مدل با Network Address Translation (بهاختصار NAT) تفاوت دارد.
9. مسدودکردن IP
با استفاده از این ویژگی، بهراحتی میتوانید تعدادی از آیپیها را مسدود کنید تا از سرور شما نتوانند استفاده کنند. اگر با خط فرمان لینوکس آشنا نیستید، از CSF در محیط گرافیکی میتوانید استفاده کنید و پیکربندیهای لازم را انجام دهید.
10. رابط کاربری گرافیکی
علاوهبر رابط خط فرمان، CSF امکان یکپارچهسازی UI را برای cPanel و Webmin فراهم میکند که میتوانید از طریق آن عملیاتهای زیادی را انجام دهید.
11. بررسی امنیت سرور (Check Server Security)
قابلیت Check Server Security امنیت سرور را بررسی میکند. CSF میتواند امنیت سرور شما را با بررسی عواملی مانند فعالبودن فایروال و بررسی توابع خطرناک PHP بررسی کند. بخشهایی که این سیستم بررسی میکند، عبارتاند از:
- بررسی توابع خطرناک PHP
- فایروال
- فعالبودن Swap File
- SSH Password
- Mail Check
- Apache Check
- PHP Check
- DirectAdmin Setting Check
- Server Service Check
آموزش نصب فایروال Config Server در اوبونتو
مرحله اول: دانلود
درحالحاضر، فایروال Config Server در مخازن دبیان یا اوبونتو موجود نیست و باید از وبسایت Config Server به نشانی wget http://download.configserver.com/ دانلود شود.
مرحله دوم: استخراج
فایل دانلودشده بستهای فشرده از tar است و قبل از استفاده، باید از حالت فشرده خارج و استخراج شود:
tar -xzf csf.tgz
مرحله سوم: نصب
اگر از اسکریپتهای پیکربندی فایروال دیگری مانند UFW استفاده میکنید، قبل از ادامه، باید آن را غیرفعال کنید. قوانین iptables بهطورخودکار حذف میشوند.
آموزش راهاندازی Port Knocking برای امنیت سرویس SSH را در مقاله زیر بخوانید.
UFW را میتوانید با اجرای دستور زیر غیرفعال کنید:
ufw disable
و با دستورهای زیر CSF را نصب کنید:
cd csf
sh install.sh
اکنون فایروال نصب شده است؛ اما باید بررسی کنید که آیا ماژولهای موردنیاز iptables دردسترس هستند یا خیر:
perl /usr/local/csf/bin/csftest.pl
اگر هیچ خطایی دریافت نکردید، بهمعنای نصب موفق ماژول است.
پیکربندی فایروال CSF
با ویرایش csf.conf در /etc/csf، میتوانید پیکربندیهای لازم را انجام دهید:
nano /etc/csf/csf.conf
درنهایت، میتوانید با دستور زیر آن را ذخیره کنید:
csf -r
مرحله اول: پیکربندی پورتها
هرچه دسترسی به سرور مجازی شما کمتر باشد، سرور امنیت بیشتری دارد. برای قطع دسترسی و بستن پورتها، میتوانید تنظیمات پورت CSF را شخصیسازی و درصورت نیاز پورت بیاستفاده را حذف کنید.
پورتهای باز پیشفرض CSF ازاینقرار است:
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" UDP_IN = "20,21,53" UDP_OUT = "20,21,53,113,123"
توضیحات:
- پورت 20: FTP data transfer
- پورت 21: FTP control
- پورت 22: Secure shell (SSH)
- پورت 25: Simple mail transfer protocol (SMTP)
- پورت 53: Domain name system (DNS)
- پورت 80: Hypertext transfer protocol (HTTP)
- پورت 110: Post office protocol v3 (POP3)
- پورت 113: Authentication service/identification protocol
- پورت 123: Network time protocol (NTP)
- پورت 143: Internet message access protocol (IMAP)
- پورت 443: Hypertext transfer protocol over SSL/TLS (HTTPS)
- پورت 465: URL Rendezvous Directory for SSM (Cisco)
- پورت 587: E-mail message submission (SMTP)
- پورت 993: Internet message access protocol over SSL (IMAPS)
- پورت 995: Post office protocol 3 over TLS/SSL (POP3S)
همانطورکه گفتیم، هرکدام از پورتهایی که نیاز ندارید، میتوانید ببندید. برای بستن پورت باید شماره پورت را از فهرست حذف کنید. پیشنهاد میکنیم تمامی پورتها را ببندید (فهرست را خالی کنید) و پورت موردنیازتان را باز کنید. برخی از سرویسها نیازمند پورتهای دیگر هستند تا بتوانند بهدرستی اجرا شوند. پورتهای یادشده در سرورهای گوناگون ازاینقرارند:
در هر سرور:
TCP_IN: 22,53 TCP_OUT: 22,53,80,113,443 UPD_IN: 53 UPD_OUT: 53,113,123
آپاچی:
TCP_IN: 80,443
سرور FTP:
TCP_IN: 20,21 TCP_OUT: 20,21 UPD_IN: 20,21 UPD_OUT:20,21
سرور پست الکترونیکی:
TCP_IN: 25,110,143,587,993,995 TCP_OUT: 25,110
سرور MySQL (در صورت نیاز به دسترسی ریموت):
TCP_IN: 3306 TCP_OUT: 3306
توجه: اگر از IPv6 برای سرویسهای خود استفاده میکنید، باید TCP6_IN، TCP6_OUT، UPD6_IN، و UPD6_OUT را نیز مانند نحوه پیکربندی پورتهای IPv4 قبلی پیکربندی کنید.
روشهای مختلف افزایش امنیت سرور مجازی را در مقاله زیر بخوانید.
مرحله دوم: تنظیمات دیگر
CSF گزینههای زیادی برای پیکربندی دارد. برخی از تنظیمات متداول بدینشرحاند:
- ICMP_IN اجازه پینگ گرفتن از سرور شما را میدهد. اگر آن را روی یک تنظیم کنید، سرور شما پینگ میشود و اگر روی صفر تنظیم کنید، درخواستها رد میشوند. اگر میزبان سرویس عمومی هستید، توصیه میکنیم درخواستهای ICMP را مجاز کنید؛ زیرا کاربران نیاز دارند از وضعیت سرور شما مطلع باشند.
- ICMP_IN_LIMIT تعداد درخواستهای ICMP (پینگ) مجاز از یک آدرس IP را در مدتزمان مشخصی تنظیم میکند. گفتنی است معمولاً به تغییر مقدار پیشفرض (1/s) نیازی نیست.
- DENY_IP_LIMIT تعداد آدرسهای IP مسدودشده را که در CSF بررسی میشود، ذخیره میکند. توصیه میکنیم تعداد آدرس آیپیهای مسدودشده را محدود کنید؛ زیرا تعداد زیاد IPهای بلاکشده ممکن است سرعت عملکرد سرور را کاهش دهد.
- DENY_TEMP_IP_LIMIT نیز مانند گزینه بالا، یعنی DENY_IP_LIMIT، عمل میکند، با این تفاوت که تعداد آدرسهای آیپی بلاکشده موقت را ذخیره میکند.
- PACKET_FILTER بستههای نامعتبر و ناخواسته و غیرقانونی را فیلتر میکند.
- SYNFLOOD و SUNFLOOD_RATE و SYNFLOOD_BURST گزینههایی برای محافظت دربرابر حملههای SYN هستند. این سیستم زمانی بهکار برده میشود که به سرور شما حمله شود و با کاهش سرعت اولیه اتصال، با این حملهها مقابله میکند.
- CONNLIMIT تعداد اتصالات فعال همزمان در پورت را محدود میکند.
برای تنظیم CONNLIMIT، به مثال زیر توجه کنید:
22;5;443;20
این مقدار امکان ۵ اتصال همزمان در پورت ۲۲ و ۲۰ و اتصال همزمان در پورت ۴۴۳ را فراهم میکند.
- PORTFLOOD تعداد اتصالات در هر بازه زمانی را که میتوان اتصالات جدید به پورتهای خاص ایجاد کرد، محدود میکند.
مقدار ورودی:
22;tcp;5;250
با تنظیم این مقدار، به سیستم میگویید اگر بیش از ۵ اتصال در پورت ۲۲ با استفاده از پروتکل TCP در عرض ۲۵۰ ثانیه ایجاد شود، آدرس IP را محدود کند. پس از گذشت ۲۵۰ ثانیه از آخرین پکیج ارسالی مشتری به این پورت، آدرس آیپی مسدود و حذف میشود. همچنین، میتوانید پورتهای بیشتری را مطابق فرمول زیر تنظیم کنید:
port1;protocol1;connection_count1;time1,port2;protocol2;connection_count2;time2
CSF تنظیمات بسیار زیادی را در این فایل ارائه میدهد که میتوانید آنها را ویرایش کنید. مقادیر پیشفرض تنظیمشده معمولاً مناسب هستند و تقریباً روی هر سروری میتوان از آنها استفاده کرد. تنظیمات پیشفرض برای جلوگیری از حملههای Flood Attacks و Port Scans و Unauthorized Access Attempts پیکربندی شدهاند.
مرحله سوم: اعمال تغییرات
اگر از کنترل پنل برای ثبت تغییرات استفاده کردهاید، میتوانید به راحتی مقادیر را تغییر دهید و ذخیره کنید؛ اما اگر به کنترلپنل دسترسی ندارید، باید ازطریق فایلها این تغییرات را اعمال کنید. هرزمان که تنظیمات و پیکربندیها را در csf.conf تغییر میدهید، باید فایلها را ذخیره و CSF را مجدداً راهاندازی کنید تا تغییرات اِعمال شوند. درنهایت با این دستور، سرویس csf را ریاستارت کنید تا تغییرات اعمال شود:
csf -r
اگر همهچیز بهدرستی انجام شد و به سرور دسترسی داشتید، باردیگر فایل پیکربندی را باز کنید. برای تغییر در فایل کانفیگ، این فایل را با ادیتور متن (مثل Nano) باز و تغییرات مدنظر را اِعمال کنید:
nano /etc/csf/csf.conf
پسازآن، تنظیمات TESTING در ابتدای فایل پیکربندی را مطابق شکل زیر به صفر تغییر دهید:
TESTING = "0"
فایل را ذخیره و تغییرات را با دستور زیر اعمال کنید:
csf -r
مسدودکردن و اجازهدادن به آدرسهای IP در CSF
یکی از قابلیتهای مفید این فایروال، قابلیت مسدودکردن آدرسهای IP است. شما میتوانید با ویرایش فایلهای پیکربندی csf.deny و csf.allow و csf.ignore، آدرسهای IP خاصی را مسدود کنید (فهرست سیاه) یا به آنها اجازه عبور بدهید (فهرست سفید) یا نادیدهشان بگیرید.
مسدودکردن آدرسهای IP
اگر میخواهید آدرس IP یا محدوده خاصی را مسدود کنید، باید IP مدنظر را وارد کنید.
برای انجام این کار، مراحل زیر را دنبال کنید:
- وارد WHM(cPanel) یا (Directadmin) شوید.
- در قسمت Plugins، روی Config Server Security & Firewall کلیک کنید.
- بخش Quick Deny را انتخاب کنید.
- در کادر متنی آدرس IP مدنظر را تایپ کنید.
- روی Quick Deny کلیک کنید.
همچنین، میتوانید این کار را ازطریق CLI انجام دهید. با دستور زیر csf.deny را باز کنید:
nano /etc/csf/csf.deny
در این فایل، هر خط یک آدرس IP یا یک محدوده را مسدود میکند. اگر میخواهید آدرس IP 1.2.3.4 و محدوده IP 2.3.*.* را مسدود کنید، باید خطوط زیر را به فایل بیفزایید:
1.2.3.4 2.3.0.0/16
محدوده IP با استفاده از نماد CIDR نشان داده میشود.
اجازه دسترسی به آدرسهای IP
اگر میخواهید یک آدرس IP یا محدودهای از IP از تمامی بلاکها و فیلترها حذف شود، باید از این ویژگی استفاده کنید.
برای این منظور، کارهای زیر را انجام دهید:
- وارد WHM(cPanel) یا (Directadmin) شوید.
- در قسمت Plugins، روی Config Server Security & Firewall کلیک کنید.
- بخش Quick Allow را انتخاب کنید.
- در کادر متنی آدرس IP را تایپ کنید.
- روی Quick Allow کلیک کنید.
آموزش نحوه راهاندازی فایروال با UFW در سرور اوبونتو و دبیان را در مقاله زیر بخوانید.
همچنین، میتوانید این کار را ازطریق CLI انجام دهید. برای انجام این کار، باید IP مدنظر را به فایل csf.allow اضافه کنید. توجه کنید که اگر آدرس آیپی بهصورت همزمان هم در csf.allow و هم در csf.deny قرار بگیرد، اجازه دسترسی خواهد داشت.
عملیات اجازه دسترسی به IPها نیز مانند مسدودکردن IP است و در هر خط باید یک آدرس IP یا محدوده را مشخص کنید. برای انجام این کار، فایل csf.deny را از مسیر /etc/csf/csf.allow باز و ویرایش کنید:
nano /etc/csf/csf.allow
نادیدهگرفتن آدرسهای IP
شما میتوانید برخی از IPها یا محدودهای از IPها را مشخص کنید تا از دید فایروال و فیلترهای آن مخفی شوند و در نظر گرفته نشوند.
برای انجام این کار، مراحل زیر را دنبال کنید:
- وارد WHM(سی پنل) یا (دایرکت ادمین) شوید.
- در قسمت Plugins، روی Config Server Security & Firewall کلیک کنید.
- بخش Quick Ignore را انتخاب کنید.
- در کادر متنی آدرس IP را تایپ کنید.
- روی Quick Ignore کلیک کنید.
این کار را میتوانید ازطریق CLI نیز انجام دهید. آدرسهای IP ثبتشده در csf.ignore فیلترهای فایروال را دور میزنند و فقط درصورتی میتوانند مسدود شوند که در فایل csf.deny ثبت شده باشند:
nano /etc/csf/csf.ignore
برای اعمال تغییرات نهایی، باید CSF را مجدداً راهاندازی کنید:
csf -r
جمعبندی
Config Server Firewall یا CSF ابزاری امنیتی (فایروال) است که میتواند به محافظت از سرور شما دربرابر حملهها و بهبود ایمنی سرور کمک کند. این فایروال امکانات و قابلیتهای بسیار زیادی دارد. سیستم SPI، تشخیص نفوذ، LFD و… ازجمله قابلیتهای این ابزار بهشمار میروند. CSF کاملاً رایگان برای سرورهای لینوکس دردسترس قرار دارد. همچنین، رابط گرافیکی آن میتواند به افراد تازهکار برای مدیریت بهتر این ابزار کمک کند. CSF را میتوانید بهراحتی مطابق توضیحات ارائهشده در مقاله حاضر، نصب و پیکربندی کنید.
سؤالات متداول
1. فایروال ConfigServer یا CSF چیست؟
Config Server Firewall (یا CSF) یک فایروال رایگان و پیشرفته برای اکثر سیستمهای لینوکس و VPS مبتنیبر لینوکس است. علاوهبر عملکرد اصلی یک فایروال و فیلتر کردن پورتها، CSF شامل سایر ویژگیهای امنیتی مانند LFD ، تشخیص حمله و نفوذ و … است.
CSF .2 و LFD چیست؟
CSF فایروالی عالی با امکانات شناسایی ورود و تشخیص نفوذ و برنامهای امنیتی برای سرورهای لینوکس محسوب میشود که آن را Config Server ارائه داده است. درمقابل، LFD فرایند تشخیص ورود است که روی آن دسته از سرورهایی اجرا میشود که از CSF برای امنیت سرور استفاده میکنند.
3. آیا فایروال CSF خوب است؟
CSF به عنوان یکی از بهترین اسکریپتهای پیکربندی فایروال، به جلوگیری از حملات DDoS کمک میکند، تمام محوطه سرور ما را پوشش میدهد و متجاوزان و برنامههای مخرب را به روشی غیر قابل نفوذ شناسایی میکند. همچنین، نظارت بر تمامی بازدیدکنندگان وبسایت را نیز بر عهده خواهد داشت.
4. چگونه یک IP در CSF را در لیست سفید قرار دهم؟
- وارد WHM شوید.
- در نوار کناری سمت چپ، در قسمت Plugins، روی ConfigServer Security & Firewall کلیک کنید:
- در قسمت csf – Quick Actions، قسمت Quick Allow را پیدا کنید.
- در کادر متنی Allow IP address آدرس IP را تایپ کنید.
- روی Quick Allow کلیک کنید.
5. چگونه فایروال CSF را خاموش کنم؟
- وارد WHM شوید.
- به ConfigServer Security & Firewall بروید.
- روی “Dissable firewall” کلیک کنید