تغییرات اخیر

در اینجا اطلاعیه‌ها، نسخه‌ها و تغییرات جدید لیارا فهرست می‌شوند.

راهنمای نصب و پیکربندی فایروال CSF در اوبونتو


۱۷ اسفند ۱۴۰۳

مقدمه

فایروال Config Server Firewall (CSF) یک فایروال قدرتمند برای سرورهای مجازی لینوکسی است که علاوه بر فیلتر کردن ترافیک شبکه، با شناسایی ورودهای غیرمجاز، تشخیص حملات سایبری و جلوگیری از حملات سیل‌آسا (Flood) از سرور محافظت می‌کند.

لیست کامل سیستم‌عامل‌های پشتیبانی شده توسط این فایروال و دیگر قابلیت‌های آن‌را در وب‌سایت ConfigServer می‌توانید ببینید. امنیت در سرور مجازی لینوکس یکی از مسائل مهمی است که کاربران با آن روبه‌رو هستند، به همین دلیل در این مقاله از لیارا قصد داریم نحوه نصب فایروال CSF را به‌صورت مرحله‌به‌مرحله برای سیستم عامل لینوکس توضیح دهیم. پس تا پایان با ما همراه باشید.

راهنمای نصب و پیکربندی فایروال CSF در اوبونتو

پیش‌نیاز

در این آموزش ما مراحل نصب را روی یک سرور مجازی اوبونتو نسخه 22.04 بررسی خواهیم کرد، اما می‌توانید این مراحل را روی هر توزیع دیگری از لینوکس، دنبال کنید. برای راه‌اندازی یک سرور مجازی اوبونتو جهت اجرای این آموزش، می‌توانید از راهنمای نحوه راه‌اندازی اولیه سرور مجازی با اوبونتو Ubuntu استفاده کنید. 

در این مقاله می‌خوانید:

  • نصب فایروال ConfigServer
  • پیکربندی اولیه
  • مسدود کردن و اجازه دادن به آدرس‌های IP
  • جمع بندی

نصب فایروال ConfigServer

گام اول: دانلود فایروال

فایروال ConfigServer در حال‌حاضر در مخازن دبیان یا اوبونتو موجود نیست و باید از وب‌سایت ConfigServer دانلود کنید. برای دانلود فایروال، دستور زیر را اجرا کنید:

wget http://download.configserver.com/csf.tgz

حالا با دستور wget فایروال CSF در دایرکتوری جاری شما دانلود می‌شود.

گام دوم: استخراج فایل دانلود شده

بعد از دانلود با دستور tar فایل را از حالت فشرده خارج کنید:

tar -xzf csf.tgz

گام سوم: نصب فایروال

اگر از اسکریپت‌های پیکربندی فایروال دیگری مانند UFW استفاده می‌کنید، باید قبل از ادامه، آن را غیرفعال کنید. قوانین iptables به طور خودکار حذف خواهند شد.

در این مرحله برای غیرفعال کردن UFW دستور زیر را اجرا کنید:

ufw disable

حالا باید اسکریپت نصب کننده CSF که در گام دوم استخراج کرده بودید را اجرا کنید:

برای این کار وارد دایرکتوری CSF شوید:

cd csf
sh install.sh

اکنون، فایروال نصب شده است، اما باید بررسی کنید که ماژول‌های مورد نیاز iptable در سیستم شما وجود دارد یا خیر! چون برای عملکرد صحیح فایروال ConfigServer، لازم است که ماژول‌های iptables به درستی بارگذاری شده باشند.

perl /usr/local/csf/bin/csftest.pl

در آخر، پس از اجرای دستور بالا اگر خطایی رخ ندهد، فایروال به درستی کار خواهد کرد.

شاید به دنبال این مطلب باشید: آشنایی با قوانین و دستورات رایج فایروال (UFW)

توجه: آدرس IP شما به لیست سفید اضافه شده و پورت SSH به طور خودکار باز شده است، حتی اگر از پورت سفارشی استفاده کنید. فایروال به طور پیش‌فرض در حالت آزمایشی قرار دارد، یعنی پنج دقیقه پس از راه‌اندازی CSF، قوانین iptables به طور خودکار حذف می‌شوند.

راهنمای نصب و پیکربندی فایروال CSF در اوبونتو

پیکربندی اولیه

برای پیکربندی CSF کافیست فایل پیکربندی آن به نام csf.conf را در مسیر /etc/csf با nano ویرایش کنید.

nano /etc/csf/csf.conf

بعد از اعمال تغییرات روی فایل فوق، از دستور زیر برای ری‌استارت پیکربندی CSF استفاده کنید:

csf -r

با اجرای این دستور، تغییرات اعمال شده در فایل پیکربندی csf.conf به‌طور خودکار اعمال و فایروال را مجدداً راه‌اندازی می‌کنید.

گام اول: تنظیم پورت‌ها

هرچه دسترسی به سرور 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: دایرکتوری هم‌نشینی URL برای SSM (سیسکو)
  • پورت 587: ارسال پیام ایمیل (SMTP)
  • پورت 993: پروتکل دسترسی به پیام اینترنتی از طریق SSL (IMAPS)

البته ممکن است، شما از تمامی این سرویس‌ها استفاده نکنید، بنابراین می‌توانید پورت‌هایی که استفاده نمی‌کنید را ببنیدید.

در کد زیر، مجموعه پورت‌هایی که باید در صورت اجرای هر سرویس مورد نیاز، باز شوند، آورده‌ایم:

TCP_IN: 22,53 TCP_OUT: 22,53,80,113,443 UPD_IN: 53 UPD_OUT: 53,113,123

روی سرور Apache:

TCP_IN: 80,443

روی FTP سرور:

TCP_IN: 20,21 TCP_OUT: 20,21 UPD_IN: 20,21 UPD_OUT:20,21

روی Mail سرور:

TCP_IN: 25,110,143,587,993,995 TCP_OUT: 25,110

روی MySQL سرور:

TCP_IN: 3306 TCP_OUT: 3306

نکته: اگر از IPv6 برای سرویس‌های خود استفاده می‌کنید، باید پیکربندی‌های TCP6_IN ,TCP6_OUT ,UDP6_IN و UDP6_OUT را به‌صورت مشابه با پیکربندی پورت‌های IPv4، تنظیم کنید.

گام دوم: تنظیمات اضافی

CSF گزینه‌های مختلف زیادی در فایل‌های پیکربندی خود دارد. در این مرحله به برخی از تنظیمات پرکاربرد اشاره می‌کنیم:

  • ICMP_IN
    با تنظیم مقدار ICMP_IN به 1، اجازه می‌دهید که پینگ به سرور شما ارسال شود. اگر مقدار آن را به 0 تغییر دهید، درخواست‌های پینگ رد خواهند شد. اگر خدمات عمومی ارائه می‌دهید، بهتر است درخواست‌های ICMP را مجاز کنید، زیرا این درخواست‌ها به دیگران این امکان را می‌دهند که بررسی کنند آیا سرویس شما در دسترس است یا نه.
  • ICMP_IN_LIMIT
    این تنظیم مشخص می‌کند که از یک آدرس IP، چه تعداد پینگ ICMP در یک بازه زمانی مشخص مجاز است. معمولاً نیازی به تغییر مقدار پیش‌فرض وجود ندارد.
  • DENY_IP_LIMIT
    این تنظیم، تعداد آدرس‌های IP مسدود شده‌ای را که CSF پیگیری می‌کند، تعیین می‌کند. بهتر است تعداد آدرس‌های مسدود شده را محدود کنید، زیرا مسدود کردن تعداد زیاد IP ممکن است باعث کاهش عملکرد سرور شود.
    DENY_TEMP_IP_LIMIT
    این گزینه شبیه گزینه قبلی است، اما برای مسدودیت‌های موقت آدرس‌های IP کاربرد دارد.
  • PACKET_FILTER
    این گزینه برای فیلتر کردن بسته‌های نامعتبر، ناخواسته و غیرقانونی استفاده می‌شود.
  • SYNFLOOD، SYNFLOOD_RATE و SYNFLOOD_BURST
    این تنظیمات از سرور شما در برابر حملات SYN flood محافظت می‌کنند. با فعال‌سازی این گزینه‌ها، فرآیند شروع هر اتصال کندتر می‌شود. بنابراین، باید تنها زمانی این تنظیمات را فعال کنید که از حمله به سرور خود مطمئن باشید.
  • CONNLIMIT
    این تنظیم تعداد اتصالات همزمان فعال را بر روی یک پورت خاص محدود می‌کند.

مقدار:

22;5;443;20

در تنظیم CONNLIMIT، مقدار 22;5;443;20 می‌گوید: روی پورت 22 حداکثر 5 اتصال همزمان مجاز است و روی پورت 443 حداکثر 20 اتصال همزمان مجاز است.

تنظیم PORTFLOOD تعداد اتصالات مجاز در یک بازه زمانی مشخص برای پورت‌های خاص را محدود می‌کند.

مقدار:

22;tcp;5;250

این مقدار به این معناست که اگر بیش از 5 اتصال روی پورت 22 با پروتکل TCP در مدت 250 ثانیه برقرار شود، آدرس IP که این اتصالات را ایجاد کرده مسدود خواهد شد. این مسدود بودن بعد از 250 ثانیه از آخرین بسته ارسالی توسط کلاینت به این پورت، برداشته می‌شود. شما مانند دستور زیر می‌توانید پورت‌های بیشتری را با استفاده از ویرگول به همین روش اضافه کنید.

port1;protocol1;connection_count1;time1,port2;protocol2;connection_count2;time2

CSF تنظیمات زیادی دارد که از حوصله این مقاله خارج است. مقادیر پیش‌فرض معمولاً مناسب هستند و می‌توانند روی اکثر سرورها تنظیم شوند. این تنظیمات به‌گونه‌ای پیکربندی شده‌اند که از بیشتر حملات، اسکن پورت‌ها و تلاش‌های دسترسی غیرمجاز جلوگیری کنند.

با این حال، اگر بخواهید تنظیمات را به‌طور دقیق‌تری تغییر دهید، می‌توانید نظرات داخل فایل /etc/csf/csf.conf را مطالعه کرده و آن‌ها را به دلخواه خود ویرایش کنید.

گام سوم: اعمال تغییرات

هر بار که تنظیمات فایل csf.conf را تغییر می‌دهید، باید فایل را ذخیره کرده و CSF را دوباره راه‌اندازی کنید تا تغییرات اعمال شوند.

زمانی که تنظیمات را تمام کردید، برای بستن فایل، کلیدهای Ctrl + X را فشار دهید. وقتی از شما خواسته شد که تغییرات را ذخیره کنید یا نه، برای ذخیره تغییرات کلید Y را فشار دهید.

پس از آن، باید تغییرات را با دستور زیر اعمال کنید و CSF را دوباره راه‌اندازی کنید:

csf -r

اگر همه‌چیز طبق برنامه پیش رفت و همچنان به سرور دسترسی دارید، دوباره فایل پیکربندی را باز کنید:

nano /etc/csf/csf.conf

همان‌طور که مشاهده می‌کنید، مقدار TESTING در ابتدای فایل پیکربندی را به 0 تغییر دهید:

TESTING = "0"

در نهایت، با اجرای دستور زیر، فایل را ذخیره کرده و تغییرات را اعمال کنید:

csf -r

مسدود کردن و اجازه دادن به آدرس‌های IP

یکی از ویژگی‌های اصلی فایروال، قابلیت مسدود کردن آدرس‌های IP خاص است. شما می‌توانید آدرس‌های IP را مسدود، مجاز یا نادیده بگیرید. برای این‌کار باید فایل‌های پیکربندی csf.deny، csf.allow و csf.ignore را ویرایش کنید.

مسدود کردن آدرس‌های IP

حالا اگر می‌خواهید یک آدرس IP یا یک رنج از آدرس‌های IP را مسدود کنید، فایل csf.deny را باز کنید:

nano /etc/csf/csf.deny

آدرس‌های IP یا رنج‌های مسدود شده هرکدام یک خط جداگانه در فایل csf.deny دارند. برای مسدود کردن آدرس 1.2.3.4 و همچنین رنج آدرس‌های 2.3..، باید خطوط زیر را به این فایل اضافه کنید:

1.2.3.4 2.3.0.0/16

دقت داشته باشید که در این آموزش رنج‌های IP با استفاده از نوتیشن CIDR نوشته می‌شوند.

اجازه دادن به آدرس‌های IP

در صورتی‌که می‌خواهید یک آدرس IP یا یک رنج از آدرس‌ها از تمام مسدودسازی‌ها و فیلترها خارج شود، می‌توانید آن‌ها را به فایل csf.allow اضافه کنید. توجه داشته باشید که آدرس‌های IP مجاز حتی اگر در فایل csf.denyمسدود شده باشند، همچنان دسترسی خواهند داشت.

فرآیند اجازه دادن به آدرس‌های IPشبیه به مسدود کردن آن‌هاست، با این تفاوت که باید فایل /etc/csf/csf.allow را به جای csf.deny ویرایش کنید.

اکنون، برای ویرایش فایل csf.allow از دستور زیر استفاده کنید:

nano /etc/csf/csf.allow

نادیده گرفتن آدرس‌های IP

CSF به شما این امکان را می‌دهد که آدرس‌های IP را از فیلترهای فایروال خارج کنید. آدرس‌های IP موجود در فایل csf.ignore از فیلترهای فایروال رد می‌شوند و تنها زمانی مسدود می‌شوند که در فایل csf.deny ذکر شده باشند.

برای ویرایش فایل، از دستور زیر استفاده کنید:

nano /etc/csf/csf.ignore

در نهایت، برای اینکه تغییرات اعمال شوند، پس از ویرایش هر یک از فایل‌های ذکر شده، باید CSF را با دستور زیر راه‌اندازی مجدد کنید:

csf -r

جمع بندی

تبریک! شما به پایان این آموزش درباره نصب و پیکربندی فایروال CSF رسیدید. این فایروال به شما کمک می‌کند تا سرور خود را در برابر تهدیدات مختلف مانند حملات سایبری محافظت کنید. شما مراحل زیر را انجام دادید:

  1. نصب فایروال CSF: شما با دانلود و نصب فایروال CSF از وب‌سایت ConfigServer آشنا شدید و یاد گرفتید چگونه پیکربندی‌های اولیه را تنظیم کنید.
  2. پیکربندی اولیه: در این بخش یاد گرفتید که چگونه فایل پیکربندی csf.conf را ویرایش کنید تا امنیت سرور خود را افزایش دهید.
  3. مدیریت آدرس‌های IP: آموزش‌هایی در مورد مسدود کردن، اجازه دادن و نادیده گرفتن آدرس‌های IP ارائه شد تا بتوانید دسترسی‌ها را به دقت کنترل کنید.
  4. اعمال تغییرات: شما یاد گرفتید که چگونه تغییرات را در فایل‌های پیکربندی ذخیره کرده و CSF را برای اعمال آن‌ها مجدداً راه‌اندازی کنید.