فایروال کانفیگ سرور یا آنطور که معروف‌تر است CSF، اسکریپت پیکربندی فایروال است که برای امنیت بیشتر سرورهای لینوکس ابداع شده و برای کاربر، رابط کاربری ساده و پیشرفته‌ای فراهم می‌کند تا تنظیمات فایروال را بهتر مدیریت کند. فایروال کانفیگ سرور با سرویس دیگری به نام Login Failure Daemon یا LFD همراه است.

پیش‌نیازهای نصب CSF در لینوکس CentOS 8

  • CentOS 8 (البته CentOS 7 هم جواب می‌دهد)
  • اجازه روت به سرور CentOS

 

نصب، راه‌اندازی و تنظیم CSF در CentOS 8

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

قدم اول: نصب توابع CSF در CentOS 8

از آن جایی که CSF بر مبنای زبان پرل نوشته شده، باید مطمئن شوید که توابع درستی دارید تا نصب بدون ایراد انجام شود.

شما نیاز به پکیج wget دارید تا بتوانید CSF اینستالر را دانلود کنید، همینطور برای اینکه بتوانید فایل کانفیگ CSF را ویرایش کنید، به ویرایشگر vim (یا هر ویرایشگر دیگری) احتیاج خواهید داشت. برای دانلود این پکیج‌ها از دستور yum استفاده کنید:

yum install wget vim perl-libwww-perl.noarch perl-Time-HiRes

 

قدم دوم: نصب CSF در CentOS 8

برای شروع نصب CSF بر روی CentOS 8 به دایرکتوری “/usr/src/” بروید و CSF را با دستور Wget دانلود کنید. می‌توانید این کار را با دستور زیر انجام دهید:

cd /usr/src/wget https://download.configserver.com/csf.tgz

 

فایل tar.gz را از حالت فشرده خارج کنید و به دایرکتوری CSF بروید و بعد از آن نصبش کنید:

tar -xzf csf.tgzcd csfsh install.sh

 

در آخر، باید مطمئن شوید که CSF به طور کامل نصب شده باشد.

بعد از آن باید چک کنید که CSF بر روی سرور کار می کند یا نه. به دایرکتوری  “/usr/local/csf/bin/” بروید و  “csftest.pl” راجرا کنید:

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

 

اگر نتیجه زیر نشان داده شد، CSF به درستی نصب شده و بدون مشکل بر روی سرور اجرا می‌شود:

RESULT: csf should function on this server

 

تمام! CSF روی سرور CentOS 8 نصب شده و آماده کانفیگ شدن است.

 

قدم سوم: پیکربندی CSF در CentOS 8

قبل از ورود به مرحله کانفیگ کردن CSF لینوکس CentOS 8 باید برنامه فایروال پیش فرض (firewalld) را متوقف و حذف کرد.

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

systemctl stop firewalld

و برای غیرفعال کردن و حذف آن:

systemctl disable firewalld

در مرحله بعدی برای پیکربندی CSF به دایرکتوری “/etc/csf/” بروید و با استفاده از ویرایشگر vim فایل “csf.conf” را تغییر دهید:

cd /etc/csf/

vim csf.conf

برای تکمیل پیکربندی CSF این تغییر را اعمال کنید:

TESTING = “0”

توجه داشته باشید که CSF به طور پیش فرض ترافیک ورودی و خروجی را برای استاندارد SSH پورت 22 فعال می‌کند. اگر پورت جایگزینی دارید، باید پورت‌تان را برای پیکربندی در خط “TCP_IN” اضافه کنید.

در ادامه با دستور زیر CSF و LFD را شروع کنید:

systemctl start csf

systemctl start lfd

با دستورهای زیر سرویس های csf و lfd را تنظیم کنید تا در زمان بوت شروع شوند:

systemctl enable csf

systemctl enable lfd

و حالا با این دستور، قوانین پیش فرض لیست CSF را می‌بینید:

csf -l

 

قدم چهارم: دستورات اصلی CSF در CentOS 8

  1. فعال کردن قوانین فایروال CSF:

csf -s

  1. توقف/حذف قوانین فایروال:

csf -f

  1. بارگذاری مجدد قوانین فایروال:

csf -r

  1. اجازه داد به IP و اضافه کردن آن به allow:

csf -a 192.168.1.109

خروجی:

Adding 192.168.1.109 to csf.allow and iptables ACCEPT…

ACCEPT all opt — in !lo out * 192.168.1.109 -> 0.0.0.0/0

ACCEPT all opt — in * out !lo 0.0.0.0/0 -> 192.168.1.109

  1. حذف و پاک کردن IP از allow:

csf -ar 192.168.1.109

خروجی:

Removing rule…

ACCEPT all opt — in !lo out * 192.168.1.109 -> 0.0.0.0/0

ACCEPT all opt — in * out !lo 0.0.0.0/0 -> 192.168.1.109

  1. رد کردن IP و اضافه کردنش به deny:

csf -d 192.168.1.109

خروجی:

Adding 192.168.1.109 to csf.deny and iptables DROP…

DROP all opt — in !lo out * 192.168.1.109 -> 0.0.0.0/0

LOGDROPOUT all opt — in * out !lo 0.0.0.0/0 -> 192.168.1.109

  1. حذف و پاک کردن IP از deny:

csf -dr 192.168.1.109

خروجی:

Removing rule…

DROP all opt — in !lo out * 192.168.1.109 -> 0.0.0.0/0

LOGDROPOUT all opt — in * out !lo 0.0.0.0/0 -> 192.168.1.109

  1. حذف و آنبلاک کردن هر ورودی‌ای از deny:

csf -df

خروجی:

DROP all opt — in !lo out * 192.168.1.110 -> 0.0.0.0/0

LOGDROPOUT all opt — in * out !lo 0.0.0.0/0 -> 192.168.1.110

DROP all opt — in !lo out * 192.168.1.111 -> 0.0.0.0/0

LOGDROPOUT all opt — in * out !lo 0.0.0.0/0 -> 192.168.1.111

csf: all entries removed from csf.deny

  1. جستجوی الگوی منطبق بر iptables مثل (CIDR, IP, شماره پورت)

csf -g 192.168.1.110

 

قدم پنجم: پیکربندی پیشرفته CSF در CentOS 8

اگر می‌خواهید کانفیگ در سیستم عامل لینوکس CentOS 8 را مطابق خواست خود تغییر دهید، به دایرکتوری کانفیگ بروید و کانفیگ “csf.conf” را به این شکل تغییر دهید:

cd /etc/csf/

vim csf.conf

  1. غیرمسدود کردن آدرس های IP در فایل‌های “allow”:

LFD به صورت پیش فرض IPهایی که در “csf.allow” هستند را بلاک می کند. اگر می خواهید مطمئن شوید که IP مشخصی در این فایل هیچ وقت بلاک و مسدود نشود، این تغییر را ایجاد کنید:

IGNORE_ALLOW = “1”

  1. فعال کردن ورودی و خروجی ICMP:

برای ورودی ping/ICMP:

ICMP_IN = “1”

برای خروجی:

ICMP_OUT = “1”

  1. بلاک کردن کشورهای خاص:

CSF به شما این امکان را می‌دهد که با کد کشور، به کشورهای مشخص دسترسی بدهید یا ندهید

CC_DENY = “CN,UK,US”

CC_ALLOW = “ID,MY,DE”

  1. ارسال ایمیل ورود به سیستم SSH و Su:

کار جالب دیگری که می‌توانید انجام دهید، این است که یک آدرس بدهید تا LFD بتواند از آن برای ارسال ایمیل هشدار ورود به سیستم SSH و موقع‌هایی که کاربر دستور su را اجرا می‌کند، استفاده کند.

LF_SSH_EMAIL_ALERT = “1”

LF_SU_EMAIL_ALERT = “1”

ورودی آدرس ایمیل شما باید به این شکل باشد:

LF_ALERT_TO = “thismail@thisdomain.tld”

 

نتیجه‌گیری

CSF فایروال برنامه مبنای ارزشمندی است که برای سرورهای لینوکس است که امکانات زیادی در اختیار کاربر قرار می‌دهد. Plesk, cPanel/WHM, DirectAdmin and Webmin این فایروال را پشتیبانی می‌کنند.

خوشبختانه نصب و کانفیگ کردن CSF در CentOS 8 ساده است، خیلی راحت بر روی سرور اجرا می‌شود و مدیریت امنیتی را خیلی موثرتر می‌کند.