فایروال CSF چیست و چطور نصب و پیکربندی می‌شود؟

CSF یا Config Server Firewall ابزار قدرتمندی است که با ارائه فایروال Stateful Packet Inspection (SPI) بر اساس IPtables و Perl، امنیت سرور را افزایش می‌دهد. این نه تنها سرویس‌ها را برای خرابی‌های احراز هویت مانیتور می‌کند، بلکه با اکنترل پنل‌های محبوب مبتنی بر وب مانند Webmin، cPanel و DirectAdmin ادغام می‌شود. در این راهنما، شما را با فرآیند گام به گام نصب و پیکربندی CSF در سرور Debian 12 آشنا خواهیم کرد.


CSF چیست؟

CSF یک فایروال قدرتمند و Stateful است که به طور خاص برای سرورهای لینوکس طراحی شده است. یک رابط کاربری آسان و ویژگی‌‎های امنیتی جامع را ارائه می‌دهد که آن را به یک انتخاب محبوب در بین مدیران سیستم تبدیل می‌کند.
CSF نه تنها یک فایروال بلکه یک سیستم تشخیص نفوذ است که فعالیت‌های مخرب را مانیتور و مسدود می‌نماید.


چرا CSF را انتخاب کنید؟

دلایل مختلفی برای انتخاب CSF نسبت به سایر راهکارهای فایروال برای سرور لینوکس وجود دارد:

  • نصب و راه اندازی آسان
  • به روز رسانی منظم و پشتیبانی فعال کامیونیتی
  • سازگاری با اکثر توزیع‌ها و کنترل پنل‌های لینوکس
  • ویژگی‌های امنیتی جامع، از جمله تشخیص نفوذ و ردیابی خرابی ورود به سیستم
  • گزینه‌های پیکربندی قابل تنظیم


پیش نیازها

قبل از شروع، مطمئن شوید که موارد زیر را دارید:

  • یک سرور Debian 12
  • یک کاربر غیر root با امتیازات مدیر

مرحله 1: آماده سازی سیستم

قبل از نصب CSF، باید اطمینان حاصل کنیم که تمام وابستگی‌های لازم روی سرور Debian 12 نصب شده است. با به روز رسانی مخزن سرور با استفاده از دستور زیر شروع کنید:


sudo apt update

پس از به روز رسانی مخزن، وابستگی‌های مورد نیاز برای CSF را با استفاده از دستور زیر نصب کنید:


sudo apt install libio-socket-inet6-perl libsocket6-perl sendmail dnsutils unzip libio-socket-ssl-perl libcrypt-ssleay-perl git perl iptables libnet-libidn-perl libwww-perl liblwp-protocol-https-perl libgd-graph-perl


مرحله 2: دانلود و نصب CSF

در این مرحله CSF را به صورت دستی از منبع دانلود و نصب می کنیم. دستورالعمل های زیر را دنبال کنید:
 کد منبع CSF را با اجرای دستور زیر دانلود کنید:

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

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

sudo tar -xvzf csf.tgz

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

cd csf

 برای شروع نصب، اسکریپت نصب را اجرا کنید:

sudo sh install.sh

 پس از اتمام، نصب را با اجرای دستور زیر تایید کنید:

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


مرحله 3: پیکربندی CSF

پس از نصب موفقیت آمیز CSF، زمان آن است که آن را مطابق با نیازهای سرور خود پیکربندی کنید. فایل پیکربندی اصلی CSF در /etc/csf/csf.conf قرار دارد. فایل را با استفاده از ویرایشگر متن دلخواه خود باز کنید:

sudo nano /etc/csf/csf.conf

اجازه دادن به ترافیک از طریق CSF

برای اجازه دادن به ترافیک ورودی و خروجی از طریق پورت‌های خاص، گزینه های TCP_* و UDP_* را در فایل پیکربندی پیدا کرده و پورت‌های مورد نظر را اضافه نمائید. مثال:

TCP_IN = "20,21,22,25,53,853,80,110,143,443,465,587,993,995"
TCP_OUT = "20,21,22,25,53,853,80,110,113,443,587,993,995"
UDP_IN = "20,21,53,853,80,443"
UDP_OUT = "20,21,53,853,113,123"

درخواست‌های پینگ یا ICMP را مجاز/رد کنید

برای فعال یا غیرفعال کردن درخواست‌های Ping یا ICMP، گزینه‌های ICMP_IN و ICMP_OUT را در فایل پیکربندی پیدا کنید. آنها را روی 1 قرار دهید تا Ping فعال و 0 غیرفعال شود. مثال:

ICMP_IN = "1"
ICMP_OUT = "1"

Synflood Protection

اگر می خواهید محافظت SYN Flood را برای محافظت از سرور خود در برابر حملات Denial of Service (DoS) فعال کنید، گزینه SYNFLOOD را در فایل پیکربندی پیدا و آن را روی 1 تنظیم کنید. به عنوان مثال:

SYNFLOOD = "1"

محدود کردن اتصالات همزمان

برای محدود کردن تعداد اتصالات همزمان مجاز برای پورت‌های خاص، از گزینه CONNLIMIT در فایل پیکربندی استفاده کنید. پورت و حداکثر تعداد اتصالات که با نقطه ویرگول از هم جدا شده اند را مشخص کنید. مثال:

CONNLIMIT = "22;5,21;10"


غیرفعال کردن حالت تست و محدود کردن دسترسی به Syslog

به‌طور پیش‌فرض، CSF در حالت TESTING اجرا می‌شود، که به شما امکان می‌دهد پیکربندی را بدون مسدود کردن هیچ آدرس IP تایید کنید. هنگامی که CSF را پیکربندی کردید، گزینه TESTING را به 0 تغییر دهید تا حالت TESTING غیرفعال شود. علاوه بر این، با تنظیم RESTRICT_SYSLOG روی 3، دسترسی به سوکت های rsyslog را محدود کنید. به عنوان مثال:

TESTING = "0"
RESTRICT_SYSLOG = "3"

تغییرات را در فایل پیکربندی ذخیره کنید و از ویرایشگر متن خارج شوید.

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

مرحله 4: آزمایش و راه اندازی سرویس CSF

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

csf -v

اگر خطایی وجود ندارد، سرویس های CSF و lfd را با استفاده از دستور زیر راه اندازی کنید:

sudo systemctl start csf lfd

برای بررسی وضعیت هر دو سرویس، دستور زیر را اجرا کنید:

sudo systemctl status csf lfd

اگر سرویس‌ها بدون هیچ مشکلی اجرا می‌شوند، CSF را با موفقیت بر روی سرور Debian 12 خود نصب و پیکربندی کرده‌اید.


مرحله 5: مسدود کردن آدرس های IP از طریق CSF

یکی از ویژگی های کلیدی CSF امکان مسدود کردن آدرس های IP با استفاده از روش های مختلف است. در این مرحله به دو روش رایج می پردازیم: مسدود کردن آدرس های IP از طریق لیست‌های IP BLOCK و مسدود کردن آدرس های IP بر اساس موقعیت جغرافیایی آنها با استفاده از GeoIP.
مسدود کردن آدرس‌های IP از طریق لیست‌های IP BLOCK


CSF به شما امکان می دهد با استفاده از لیست‌های IP BLOCK آدرس‌های IP را مسدود کنید. فایل /etc/csf/csf.blocklists را با استفاده از ویرایشگر متن خود باز کنید:

sudo nano /etc/csf/csf.blocklists

برای مسدود کردن آدرس‌های IP از پایگاه داده Spamhaus، خطوط زیر را حذف کنید:

SPAMDROP|86400|0|http://www.spamhaus.org/drop/drop.txt
SPAMDROPV6|86400|0|https://www.spamhaus.org/drop/dropv6.txt
SPAMEDROP|86400|0|http://www.spamhaus.org/drop/edrop.txt

تغییرات را ذخیره کرده و از ویرایشگر متن خارج شوید.


مسدود کردن آدرس های IP از طریق GeoIP


روش دیگر برای مسدود کردن آدرس‌های IP بر اساس موقعیت جغرافیایی آنها با استفاده از GeoIP است. فایل پیکربندی CSF را دوباره باز کنید:

sudo nano /etc/csf/csf.conf

برای مسدود کردن ترافیک ورودی از کشورهای خاص، گزینه‌های CC_DENY و CC_ALLOW را پیدا و آنها را بر اساس آن ویرایش کنید. مثال:

CC_DENY = "RU,CN"
CC_ALLOW = "US,GB,DE,NL,SG"

اگر ترجیح می دهید از پایگاه داده MaxMind GeoIP استفاده کنید، گزینه CC_SRC را به 1 تغییر دهید و کلید مجوز MaxMind خود را در قسمت MM_LICENSE_KEY وارد کنید.
تغییرات را ذخیره کرده و از ویرایشگر متن خارج شوید.

برای اعمال تنظیمات جدید، سرویس های CSF و lfd را مجددا راه اندازی کنید:

sudo csf -ra


مرحله 6: فعال کردن CSF Web UI

CSF یک رابط کاربری مناسب مبتنی بر وب (UI) برای نظارت و مدیریت تنظیمات فایروال شما فراهم می‌کند. برای فعال کردن رابط کاربری وب CSF، فایل پیکربندی CSF را باز کنید:


sudo nano /etc/csf/csf.conf

برای فعال کردن CSF Web UI، گزینه UI را روی ۱ قرار دهید:


UI = "1"

گزینه های UI_PORT، UI_IP، UI_USER و UI_PASS را به مقادیر دلخواه خود تنظیم کنید. مثال:


UI_PORT = "1048"
UI_IP = "127.0.0.1"
UI_USER = "shapehost"
UI_PASS = "passw0rd"

تغییرات را ذخیره کرده و از ویرایشگر متن خارج شوید.

تنظیمات فایروال CSF


برای دسترسی به رابط کاربری وب CSF، آدرس IP پابلیک خود را با افزودن آن به /etc/csf/csf.allow و /etc/csf/ui/ui.allow در لیست سفید قرار دهید:

sudo nano /etc/csf/csf.allow
sudo nano /etc/csf/ui/ui.allow


آدرس IP خود را به لیست سفید اضافه کنید:

# single ip
your_public_ip_address

فایل ها را ذخیره کنید و از ویرایشگر متن خارج شوید.
برای اعمال تغییرات، خدمات CSF و lfd را مجدد راه اندازی کنید:


sudo csf -ra

نتیجه

CSF یک ابزار ضروری برای افزایش امنیت سرور شما است و ادغام آن با ابزارهای محبوب مدیریت سرور آن را قدرتمندتر می کند. با CSF، می توانید خیالتان راحت باشد و بدانید که سرور شما از دسترسی های غیرمجاز و حملات مخرب محافظت می شود.
تبریک می گویم! شما با موفقیت CSF (Config Server Firewall) را روی سرور Debian 12 خود نصب و پیکربندی کرده اید. شما یاد گرفته اید که چگونه به ترافیک از طریق پورت‌های خاص اجازه دهید، درخواست‌های Ping را فعال یا غیرفعال کنید، محدودیت‌های اتصال را تنظیم و آدرس‌های IP را با استفاده از لیست های IP BLOCK و GeoIP مسدود کنید. علاوه بر این، شما CSF Web UI را برای مانیتور و مدیریت راحت تنظیمات فایروال خود فعال کرده اید.