آموزش نصب و راه اندازی فایروال CSF
Config Server Firewall یا به طور مخفف CSF یک فایروال رایگان و پیشرفته برای اکثر توزیع های لینوکس و VPS مبتنی بر لینوکس است. علاوه بر عملکرد اصلی یک فایروال و فیلتر کردن پکت ها، CSF شامل سایر ویژگی های امنیتی مانند login، intrusion و flood detection است. از طرفی CSF قادر به تشخیص بسیاری از حملات، مانند اسکن پورت، SYN floods، و حملات brute force است. این فایروال به گونه ای پیکربندی شده است که به طور موقت کلاینت هایی را که تشخیص داده می شود به سرور حمله می کنند مسدود کند. بنابراین اگر قصد نصب فایروال CSF را روی سرور لینوکس خود داریدتا انتها همراه ما باشید.
فهرست مطالب
- فایروال CSF چیست؟
- مزایای استفاده از فایروال
- ویژگی ها و امکانات فاروال CSF
- پیش نیازهای نصب فایروال CSF
- مراحل نصب فایروال CSF
- پیکربندی فایل csf.conf فایروال CSF
- پیکربندی فایروال CSF با WHM
- غیر فعال کردن حالت تست CSF
- سخن پایانی
فایروال CSF چیست؟
ConfigServer Security and Firewall یک مجموعه برنامه کاربردی فایروال رایگان و اسکریپت پیکربندی است که یک رابط مدیریت فایروال پیشرفته برای login، intrusion، flood detection و کنترل دسترسی به خدمات عمومی مانند Secure Shell (SSH)، Pop3، IMAP، SMTP، و غیره را دارد. CSF به پیکربندی فایروال سرور لینوکس شما کمک می کند در حالی که از ویژگی های امنیتی اضافی برای قفل کردن یا اجازه دسترسی خاص به سرور خود استفاده می کند. این فایروال از طریق خط فرمان یا ویژگی های ادغام UI با cPanel، DirectAdmin یا Webmin برای سرورهای لینوکس قابل استفاده است.
فایروال CSF شامل سرویس Login Failure Daemon (LFD) میباشد که مشکلات ورود بیش از حد کاربر را که در طول حملات brute force رایج است، بررسی میکند. اگر بسیاری از این خرابی ها را از همان آدرس IP شناسایی کند، به طور موقت آن ها را از همه سرویس های سرور لینوکس مسدود می کند.
مزایای استفاده از فایروال
استفاده از فایروال مزایای بسیاری دارد، از جمله:
- استفاده از قوانین فایروال در نظارت بر ترافیک
- مسدود کردن آدرس های IP از منابع مخرب
- اجازه دادن به آدرس های IP از منابع قابل اعتماد
- کنترل نقاط ورودی سرور برای جلوگیری از حملات مخرب
فایروال به عنوان اولین خط دفاعی بین محیط سرور شما و ترافیک مخربی که سعی در دسترسی به آن دارند عمل می کند. با نظارت بر ترافیک ورودی و خروجی و مسدود کردن آن هایی که با قوانین فایروال مشخص شده شما مطابقت ندارند، از دسترسی غیرمجاز جلوگیری می کند.
میتوانید قوانین فایروال را طوری پیکربندی کنید که آدرسهای IP یا دامنهها را مسدود کند یا آدرسهای IP را از منابع مطمئن مجاز کنید. مسدود کردن یا اجازه دادن به آدرس های IP به کاهش خطر حملات سایبری کمک می کند و دسترسی به شبکه و داده های حساس را ایمن نگه می دارد.
فایروال ها همچنین برای ایمن سازی اتصالات SSH مورد استفاده قرار می گیرند. علاوه بر تغییر پورت SSH از حالت پیش فرض، استفاده از فایروال پیکربندی شده CSF برای نظارت بر ترافیک روی SSH از تهدیدات احتمالی قبل از وقوع جلوگیری می کند.
این فایروال تنها یکی از فایروال های موجود برای افزایش امنیت سرور است. همانطور که دیدید در پست قبل ما با آموزش پیکربندی و نصب فایروال UFW همراه شما بودیم. اما در این آموزش با پیکربندی و نصب فایروال CSF همراه شما هستیم.
ویژگی ها و امکانات فاروال CSF
فایروال CSF طیف گسترده ای از امکانات امنیتی را برای VPS شما ارائه می دهد که شامل موارد زیر هستند:
1. گزارش های لاگین نا موفق
CSF گزارشها را برای تلاشهای ناموفق برای ورود به سیستم در بازه زمانی منظم بررسی میکند و میتواند اکثر تلاشهای غیرمجاز برای دسترسی به سرور را تشخیص دهد.
برنامه های زیر توسط این ویژگی پشتیبانی می شوند:
- 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
2. ردیابی فرآیند
CSF را می توان برای ردیابی فرآیندها به منظور شناسایی فرآیندهای مشکوک یا باز کردن پورت های شبکه پیکربندی کرد و در صورت شناسایی، یک ایمیل برای مدیر سیستم ارسال کرد. این ممکن است به شما کمک کند تا سوء استفاده احتمالی در VPS خود را شناسایی و متوقف کنید.
3. مشاهده دایرکتوری
مشاهده دایرکتوری /temp و سایر پوشههای مربوطه را برای اسکریپتهای مخرب نظارت میکند و در صورت شناسایی یک ایمیل برای مدیر سیستم ارسال میکند.
4. Port flood protection
این تنظیم محافظت در برابر حملات flood پورت، مانند حملات DoS را فراهم می کند. می توانید تعداد اتصالات مجاز در هر پورت را در بازه زمانی دلخواه خود مشخص کنید. فعال کردن این ویژگی توصیه میشود، زیرا ممکن است مانع از بین بردن سرویسهای شما توسط مهاجم شود. باید به محدودیتهایی که تعیین میکنید توجه کنید، زیرا تنظیمات بیش از حد محدود، اتصالات کلاینت عادی را دچار مشکل میکند.
5. Port knocking
Port knocking به کلاینت ها این امکان را می دهد تا با سروری بدون پورت باز ارتباط برقرار کنند. سرور به کلاینتها اجازه میدهد فقط پس از یک توالی شکست موفق پورت، به پورتهای اصلی متصل شوند. اگر خدماتی را ارائه دهید که فقط برای مخاطبان محدودی در دسترس باشد، می تواند برای شما مفید باشد.
6. Connection limit protection
از این ویژگی می توان برای محدود کردن تعداد اتصالات فعال همزمان از یک آدرس IP به هر پورت استفاده کرد. هنگامی که به درستی پیکربندی شود، ممکن است از سوء استفاده های روی سرور مانند حملات DoS جلوگیری کند.
7. تغییر مسیر پورت یا IP
CSF را می توان به گونه ای پیکربندی کرد که اتصالات به یک IP یا پورت را به IP یا پورت دیگری هدایت کند. توجه داشته باشید که پس از تغییر مسیر، آدرس سورس کلاینت، آدرس IP سرور خواهد بود. البته این معادل ترجمه آدرس شبکه (NAT) نیست.
8. ادغام رابط کاربری
علاوه بر رابط خط فرمان، CSF همچنین یکپارچه سازی UI را برای cPanel و Webmin نیز ارائه می دهد. اگر با خط فرمان لینوکس آشنایی ندارید، این ویژگی می تواند برای شما مفید باشد.
9. لیست IP های مسدود شده
این ویژگی به CSF اجازه می دهد تا لیست آدرس های IP مسدود شده را به طور خودکار از منابعی که شما تعریف کرده اید دانلود کند.
پیش نیازهای نصب فایروال CSF
پیش از نصب و پیکربندی فایروال CSF به موارد زیر نیاز داریم:
- سروری که لینوکس را اجرا می کند.
- دسترسی root برای سرور لینوکس شما
- یک کلاینت SSH نصب شده
مراحل نصب فایروال CSF
در این آموزش کار را با WHM را با پیش می بریم. به طور کلی نصب فایروال CSF کارچندان پیچیده و دشواری نیست برای این کار تنها کافیست مراحل زیر را با دقت دنبال کنید:
مرحله 1: به عنوان کاربر root وارد شوید
به عنوان کاربر root وارد سرور لینوکس خود شوید. پس از وارد شدن به سرور ترمینال سرور لینوکس خود را از قسمت Server Configuration باز کنید.
مرحله 2: به دایرکتوری root بروید
دستور زیر را از ترمینال اجرا کنید تا مطمئن شوید که در دایرکتوری root قرار دارید. اگر از قبل در دایرکتوری root هستید، سیستم دستور اصلی را نشان می دهد.
cd /root
بعد از وارد کردن دستور فوق خروجی به صورت زیر است:
مرحله 3: فایروال CSF را دانلود کنید
فایروال CSF در حال حاضر در repository دبیان یا اوبونتو موجود نیست و باید از وب سایت ConfigServer دانلود شود. با اجرای دستور زیر در خط فرمان اوبونتو فایروال CSF دانلود می شود:
wget https://download.configserver.com/csf.tgz
بعد از وارد کردن دستور فوق خروجی به صورت زیر است:
مرحله 4: خارج کردن فایل از حالت فشرده
فایل دانلود شده یک بسته فشرده شده از نوع tar است و قبل از استفاده باید از حالت فشرده خارج و استخراج شود. با دستور زیر فایل را از حالت فشرده خارج کنید:
tar -xzf csf.tgz
اجرای این دستور شما را به خط اصلی باز می گرداند.
مرحله 5: غیر فعال کردن فایروال های دیگر
اگر پیش از این اقدام به نصب فایروال دیگری کرده اید و از اسکریپت های پیکربندی فایروال دیگری استفاده می کنید، باید قبل از ادامه آن را غیرفعال کنید. با این کار قوانین Iptables به طور خودکار حذف می شوند. برای غیر فعال کردن UFW می توانیددستور زیررا اجرا کنید:
ufw disable
مرحله 6: به دایرکتوری CSF بروید
برای جابجایی به دایرکتوری CSF از دستور زیر استفاده کنید:
cd csf
مرحله 7: فایروال CSF را نصب کنید
اکنون زمان اجرای اسکریپت نصب فایروال CSF است که برا این کار کافی است دستور زیر را اجرا کنید.
sh install.sh
با اجرای دستور فوق یک خروجی طولانی به صورت زیر ظاهر می شود:
فایروال اکنون نصب شده است، اما باید بررسی کنید که آیا ماژول های مورد نیاز iptables در دسترس هستند یا خیر. برای این کار کافی است تنها دستور زیر را اجرا کنید:
perl /usr/local/csf/bin/csftest.pl
اکنون اگر هیچ خطایی گزارش نشود فایروال کار خواهد کرد.
پیکربندی فایل csf.conf فایروال CSF
CSF را می توان با ویرایش فایل پیکربندی csf.conf در مسیر /etc/csf پیکربندی کرد که برای دسترسی به این فایل کافی است تنها دستور زیر را اجرا کنید:
nano /etc/csf/csf.conf
تغییرات را می توان با دستور زیر در این فایل اعمال کنید:
csf -r
1. پیکربندی پورت ها
هرچه دسترسی کمتری به VPS شما وجود داشته باشد، سرور شما از امنیت بیشتری برخوردار است. با این حال، همه پورت ها را نمی توان بست زیرا کلاینت ها باید بتوانند از خدمات شما استفاده کنند. پورت های باز شده به صورت پیش فرض به شرح زیر است:
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
- پورت 21: کنترل FTP
- پورت 22: پوسته ایمن (SSH)
- پورت 25: پروتکل انتقال نامه ساده (SMTP)
- پورت 53: سیستم نام دامنه (DNS)
- پورت 80: پروتکل انتقال ابرمتن (HTTP)
- پورت 110: پروتکل دفتر پست نسخه 3 (POP3)
- پورت 113: سرویس احراز هویت/پروتکل شناسایی
- پورت 123: پروتکل زمان شبکه (NTP)
- پورت 143: پروتکل دسترسی به پیام اینترنتی (IMAP)
- پورت 443: پروتکل انتقال ابرمتن از طریق SSL/TLS (HTTPS)
- پورت 465: فهرست راهنماهای اینترنتی برای SSM (سیسکو)
- پورت 587: ارسال پیام الکترونیکی (SMTP)
- پورت 993: پروتکل دسترسی به پیام اینترنتی از طریق SSL (IMAPS)
- پورت 995: پروتکل اداره پست 3 از طریق 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
شما می توانید لیست جامعی از پورت های TCP و UDP را در وبسایت های معتبر بیابید. همچنین توجه داشته باشید که شما باید پورت های تمام سرویس هایی را که استفاده می کنید باز کنید.
2. مسدود کردن و اجازه دادن به آدرس های IP
یکی از اساسی ترین ویژگی های فایروال، توانایی مسدود کردن آدرس های IP خاص است. شما می توانید با ویرایش فایل های پیکربندی csf.deny، csf.allow و csf.ignore آدرس های IP را در لیست سیاه یا لیست سفید قرار دهید یا آن ها را نادیده بگیرید.
مسدود کردن آدرس های IP
اگر میخواهید یک آدرس IP را مسدود کنید، با وارد کردن دستور زیر فایل csf.deny را باز کنید.
nano /etc/csf/csf.deny
آدرسها یا محدودههای IP مسدود شده همه یک خط در فایل csf.deny ذخیره میکنند. اگر می خواهید آدرس IP 1.2.3.4 و همچنین محدوده IPهای 2.3.0.0 را مسدود کنید، باید خطوط زیر را به فایل اضافه کنید:
1.2.3.4 2.3.0.0/16
محدوده IP با استفاده از نماد CIDR نشان داده می شود.
اجازه دادن به آدرس های IP
اگر میخواهید به یک آدرس IP یا محدوده از IP ها اجازه دهید میتوانید آن ها را به فایل csf.allow اضافه کنید. لطفاً توجه داشته باشید که آدرسهای IP مجاز حتی اگر به صراحت در فایل csf.deny مسدود شده باشند با این کار مجاز هستند.
اجازه دادن به آدرس های IP مانند مسدود کردن آن ها است با این تفاوت که شما باید /etc/csf/csf.allow را به جای csf.deny ویرایش کنید.
nano /etc/csf/csf.allow
نادیده گرفتن آدرس های IP
CSF همچنین توانایی حذف آدرس های IP از فیلترهای فایروال را ارائه می دهد. آدرسهای IP در csf.ignore فیلترهای فایروال را دور میزنند و فقط در صورتی میتوانند مسدود شوند که در فایل csf.deny فهرست شده باشند. بنابراین برای این کار دستور زیر را وارد کنید و وارد فایل csf.ignore شوید.
nano /etc/csf/csf.ignore
برای اعمال تغییرات، باید CSF را پس از ویرایش هر یک از فایل های توضیح داده شده در بالا با دستور زیر، مجدداً راه اندازی کنید:
csf -r
3. تنظیمات اضافی
فایروال CSF تعداد زیادی از گزینه های مختلف را در فایل های پیکربندی خود ارائه می دهد. برخی از متداول ترین تنظیمات مورد استفاده در زیر توضیح داده شده است.
- ICMP_IN: تنظیم ICMP_IN روی مقدار 1، اجازه می دهد تا به سرور شما پینگ شود. اگر میزبان هر سرویس عمومی هستید، توصیه می شود درخواست های ICMP را مجاز کنید، زیرا می توان از آن ها برای تعیین اینکه آیا سرویس شما در دسترس است یا خیر استفاده کرد.
- ICMP_IN_LIMIT: این تنظیمات تعداد درخواست های ICMP (پینگ) مجاز از یک آدرس IP را در مدت زمان مشخصی تنظیم می کند و معمولاً نیازی به تغییر مقدار پیش فرض (1/s) نیست.
- DENY_IP_LIMIT: این تنظیمات تعداد آدرسهای IP مسدود شدهای که CSF آن ها را ردیابی میکند را تنظیم میکند. توصیه میشود تعداد آدرسهای IP رد شده را محدود کنید زیرا وجود تعداد زیادی از آن هاممکن است عملکرد سرور را کاهش دهد.
- DENY_TEMP_IP_LIMIT: این تنطیمات نیز مثل تنظیمات قبل می باشد، اما برای بلوکهای آدرس IP موقت.
- PACKET_FILTER: این تنظیمات بسته های نامعتبر، ناخواسته و غیرقانونی را فیلتر می کند.
- SYNFLOOD، SUNFLOOD_RATE و SYNFLOOD_BURST: این تنظیمات محافظت در برابر حملات SYN flood را ارائه می دهد. این امر سرعت دهی اولیه هر اتصال را کند می کند، بنابراین فقط در صورتی باید آن را فعال کنید که بدانید سرور شما مورد حمله قرار گرفته است.
- CONNLIMIT: این تنظیمات تعداد اتصالات فعال همزمان در پورت را محدود می کند.
- PORTFLOOD: تعداد اتصالات را در هر بازه زمانی که می توان اتصالات جدید به پورت های خاص ایجاد کرد، محدود می کند.
4. اعمال تغییرات
هر زمان که تنظیمات را در فایل csf.conf تغییر می دهید، فایل ها را ذخیره کرده و CSF را مجددا راه اندازی کنید تا تغییرات اعمال شوند. هنگامی که پیکربندی را آماده کردید، فایل را با فشار دادن کلید های Ctrl + X ببندید. وقتی از شما پرسیده شد که آیا تغییرات را ذخیره کنید یا خیر، کلید Y را فشار دهید تا تغییرات ذخیره شوند.
پس از این، باید تغییرات را با راه اندازی مجدد CSF با دستور زیر اعمال کنید:
csf -r
اگر همه چیز طبق برنامه پیش رفت و همچنان می توانید به سرور دسترسی داشته باشید، یک بار دیگر فایل پیکربندی را با دستور زیر باز کنید:
nano /etc/csf/csf.conf
و تنظیمات TESTING در ابتدای فایل پیکربندی را مطابق دستور زیر به 0 تغییر دهید:
TESTING = "0"
فایل را ذخیره کنید و تغییرات را با اجرا دستور زیر اعمال کنید:
csf -r
پیکربندی فایروال CSF با WHM
1. با رفتن به به مسیر WHM » Home » Plugins » ConfigServer Security & Firewall می توانید از رابط ConfigServer Security & Firewall در WHM استفاده کنید.
2. در حالی که اسکریپت نصب باید پورت های صحیح را در CSF فعال کند، بهترین کار این است که آن رارا در سرور لینوکس خود تأیید کنید. علاوه بر تنظیم یک پیکربندی فایروال CSF سفارشی، میتوانید پروفایلهای csf.conf از پیش پیکربندیشده را اعمال کنید و از پروفایلهای csf.conf که ایجاد میکنید پشتیبانگیری و بازیابی کنید. برای اعمال یک پروفایل CSF از پیش پیکربندی شده، به قسمت csf-ConfigServer فایروال بروید و روی Firewall Profiles کلیک کنید.
3. از اینجا دکمه رادیویی را در کنار پروفایلی که می خواهید پیکربندی کنید انتخاب کنید و روی Apply Profile کلیک کنید.
4.پس از به روز رسانی فایل پیکربندی CSF، باید سرویس CSF را مجددا راه اندازی کنید. برای این کار روی دکمه Restart csf+lfd کلیک کنید.
پس از راه اندازی مجدد CSF، روی Return کلیک کنید تا به صفحه اصلی ConfigServer Security & Firewall برگردید.
غیر فعال کردن حالت تست CSF
پس از پیکربندی CSF باید حالت تست را غیرفعال کنید. برای انجام آن، این مراحل را دنبال کند:
1.روی تب csf کلیک کنید.
2. در قسمت csf – ConfigServer Firewall، روی Firewall Configuration کلیک کنید.
3. روی Off کلیک کنید.
4. به انتهای صفحه بروید و روی Change کلیک کنید.
5. روی Restart csf+lfd کلیک کنید. ممکن است کمی طول بکشد، اما اجازه دهید فرآیند اجرا شود. اگر صفحه بعد از چند دقیقه دوباره بارگیری نشد، روی Return کلیک کنید تا به صفحه ConfigServer Security & Firewall برگردید.
اگر فرایند به درستی پیش برود یک پیام سبز نمایش داده می شود که می گوید فایروال CSF فعال و در حال اجرا است.
سخن پایانی
در این مقاله در ابتدا شما را با فایروال CSF، ویژگی ها و امکانات آن آشنا کردیم و در ادامه پس از ارائه مراحل نصب فایروال CSF به پیکربندی این فایروال پرداختیم. به عنوان آخرین صحبت های ین مقاله باید یادآور شویم که نصب فایروال CSF برای ایمن سازی سرور شما در برابر تهدیدات بالقوه امنیت سایبری حیاتی است. همچنین در پایان به یاد داشته باشید که فایروال را به روز نگه دارید و به طور منظم قوانین فایروال را برای اطمینان از عدم نفوذ تست کنید.
منابع: namehero.com و digitalocean.com