فایروال CSF چیست و چگونه نصب و پیکربندی می شود؟
سرویس فایروال CSF مخفف Configserver Security & Firewall نوعی دیواره آتش است که بر روی سرورهای لینوکس دارای توزیع RHEL و اکثر کنترلپنلها از قبیل cPanel و دایرکِتاَدمین نصب میشود و نوعی سیستم برای مقابله با حمله هکرها به سیستمعامل سرور است و همچنین محدودیتهای خوبی میتواند بر روی سرورهای خدمات میزبانی وب اعمال نماید. یکی از وظیفههای این فایروال جلوگیری از نفوذ به سرور مجازی یا سرور اختصاصی شماست و همچنین امنیت پکیجهای سرورهای لینوکس است. در این مقاله قصد داریم به صورت کامل نصب و کانفیگ فایروال CSF را به صورت قدم به قدم آموزش دهیم.
در ابتدا می بایست سیستم عامل های پشتیبانی شده و مجازی سازهای پشتیبانی شده توسط CSF را بررسی نماییم که آیا نسخه سیستم عامل سرور ما سازگاری با CSF را دارد یا خیر؟! البته گاها ممکن است روی نسخه های پایین تر سیستم عامل های درج شده در پاسخ زیر نیز سازگاری داشته باشد اما قطعا بروزرسانی هایی که توسط CSF انجام می شود، صرفا لیست زیر را شامل خواهد شد و تست و بررسی جهت سازگاری با این سیستم عامل ها میگردد.
سیستمعاملهای پشتیبانی شده توسط فایروال CSF
- RedHat Enterprise نسخههای ۷ تا ۹
- CentOS نسخههای ۷ تا ۹
- RockyLinux نسخههای ۸ تا ۹
- CloudLinux نسخههای ۷ تا ۹
- AlmaLinux نسخههای ۸ تا ۹
- Fedora نسخه ۳۰
- openSUSE نسخههای ۱۰، ۱۱ و ۱۲
- Debian نسخههای ۸ تا ۱۱
- Ubuntu نسخههای ۱۸ تا ۲۲
- Slackware نسخه ۱۲
مجازیسازهای پشتیبانی شده توسط فایروال CSF
- VMware
- Xen
- VirtualBox
- Microsoft Virtual Server
- KVM
برخی از قابلیتهای سرویس فایروال CSF
- اسکریپت فایروال و SPI مستقیم و اعمال در iptables
- امکان محدود کردن تعداد اتصال به پورت مشخص
- امکان محدود کردن تعداد ورود هر IP در لحظه و یا روز
- امکان تست سرور از نظر امنیت و راهنمایی لازم در پیکربندی
- امکان محدود کردن دسترسی IP بر اساس تنظیمات به صورت خودکار
- امکان نصب بر روی اکثر پنلهای معتبر از قبیل cPanel و دایرِکتاَدمین
- دارای رابط گرافیکی زیبا و کاربر پسند بر روی کنترلپنلها
- ارسال ایمیل در زمان تست نفوذ
- بستن IP نفوذگر در زمان نت اسکن و حملاتی از جمله DDOS
- اعلان ورود به محیط SSH
- اعلان ورود به سیستم SU
- مسدود کردن بی حد اتصال
- ارتقاء آسان نسخه CSF در پنل
- گزارش روند مشکوک و گزارش سوء استفاده بالقوه بر روی سرور
- گزارش فرآیندهای کاربر بیش از حد
- گزارش فایلهای مشکوک و گزارش بالقوه بهره برداری از فایلها
- گزارش ورود به سیستم از mod_security
سرویس LFD
سرویس LFD یک قسمت از پکیج مدیریت دیوار آتشین سرورهای لینوکس(CSF) است. این سرویس مخفف سه کلمه Login Failure Daemon است که با توجه به معنای لغوی باعث شناسایی حملههایی میشود که سعی دارند با امتحان کلمههای عبور مختلف به یکی از بخشهای سرور نفوذ کنند. این سرویس با زیر نظر گرفتن تمامی پروسسهای درحال اجرای سرور شما میزان استفاده از منابع سرورتان را بصورت لحظهای چک میکند.
در زمانی که یکی از کاربران، از حد تعیین شده بیشتر از منابع سرور استفاده کند، سرویس lfd با ارسال ایمیلی به مدیر سرور این موضوع را اطلاع میدهد.
نصب سرویس فایروال CSF در سیستمعامل لینوکس
سرویس CSF یا Configserver Security & Firewall یک سرویس فایروال در سیستمعامل لینوکس بوده که بر روی iptables سوار شده و آن را مدیریت میکند و همچنین ویژگیهای بهتری نسبت به خود iptables ارائه میدهد. برای نصب سرویس CSF در سیستمعامل لینوکس، باید به صورت زیر عمل کنید.
ابتدا به آدرس https://www.configserver.com/cp/csf.html رفته و از این آدرس فایل csf.tgz را دانلود کنید یا دستورات زیر را به ترتیب اجرا کنید:
wget -c https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
ls
csf.tgz csf
cd csf
more install.txt
با اجرای دستور بالا، این خروجی نمایش داده می شود که نحوه نصب CSF را نشان می دهد
Installation
============
Installation is quite straightforward:
cd /usr/src
rm -fv csf.tgz**
wget https://download.configserver.com/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.sh
هم اکنون توسط اسکریپت install.sh سرویس CSF نصب میشود.
sh install.sh
در مرحله بعد باید با استفاده از فرمان زیر در مسیر دایرکتوری اِکسترکتشدهی CSF بررسی کنید که آیا ماژولهای مورد نیاز iptables در ماشین لینوکسی نصب هستند یا خیر.perl
/usr/local/csf/bin/csftest.pl
خروجی دستور فوق، در صورت صحت عملکرد تمام بخش های CSF به شکل زیر خواهد بود
Testing ip_tables/iptable_filter...OK
Testing ipt_LOG...OK
Testing ipt_multiport/xt_multiport...OK
Testing ipt_REJECT...OK
Testing ipt_state/xt_state...OK
Testing ipt_limit/xt_limit...OK
Testing ipt_recent...OK
Testing xt_connlimit...OK
Testing ipt_owner/xt_owner...OK
Testing iptable_nat/ipt_REDIRECT...OK
Testing iptable_nat/ipt_DNAT...OK
RESULT: csf should function on this server
پس از دریافت پیغام آخر، مشکلی در اجرای صحیح سرویس CSF در ماشین لینوکسی وجود ندارد و شما میتوانید سرویس CSF را پیکربندی کنید.
در مرحله بعد باید به مسیر etc/csf.conf/ رفته و فایل مورد نظر را با استفاده از یک ویرایشگر متنی باز کنید:
vi /etc/csf/csf.conf
درون این فایل یک مؤلفهای با نام TESTING=”1″ تعریف شده است:
####################################################################
# SECTION:Initial Settings
####################################################################
# Testing flag - enables a CRON job that clears iptables incase of
# configuration problems when you start csf. This should be enabled until you
# are sure that the firewall works - i.e. incase you get locked out of your
# server! Then do remember to set it to 0 and restart csf when you're sure
# everything is OK. Stopping csf will remove the line from /etc/crontab
#
# lfd will not start while this is enabled
TESTING = "1"
همانطور که در توضیحات این قسمت مشاهده میکنید، این مؤلفه برای فعالسازی ماژول LFD در سرویس فایروال CSF است.
ماژول LFD مخفف عبارت Login Failure Daemon بوده و عملکرد این ماژول به صورتی است که همیشه آخرین فایلهای لاگ و گزارش ورود به سیستم و ماشین لینوکسی را بررسی میکند. این بررسی برای بدست آوردن تلاشهای ناموفق ورودی، در یک بازه زمانی کوتاه بوده که در نهایت میتواند از این طریق از حملاتی از جمله Brute Force جلوگیری کند. به این صورت آدرس IP مورد نظر(هکر) توسط این ماژول بلاک میشود.
مقدار ۱ در اینجا برای این است که تنظیمات و پیکربندیهای سرویس CSF انجام نشده است. ممکن است که در حین تنظیمات، به صورت سهوی سرویس CSF آدرس IP شما را بلاک کند و به این صورت به سرور مورد نظر خود دیگر دسترسی نخواهید داشت. برای این موضوع این ویژگی در سرویس CSF قرار داده شده تا شما پس از آنکه سرویس CSF را پیکربندی کردید و از تمامی تنظیمات مطمئن بودید، باید مقدار این مؤلفه را برابر ۰ کرده تا ماژول LFD فعال شود و در نهایت سرویس CSF را برای اعمال تنظیمات ریستارت کنید.
همچنین در این فایل، میتوانید تمامی پورتهای فعال بر روی سرور را کنترل کنید:
# Allow incoming TCP ports
TCP_IN = "3131,53,80,443,465,587,993,995,10050,10051"
# Allow outgoing TCP ports
TCP_OUT = "3131,53,80,443,587,993,995,10050,10051"
# Allow incoming UDP ports
UDP_IN = "3131,53,10050,10051"
# Allow outgoing UDP ports
# To allow outgoing traceroute add 33434:33523 to this list
UDP_OUT = "3131,53,113,123,10050,10051"
در صورتی که میخواهید تا شماره پورتی فعال یا غیر فعال شود، باید در این قسمت پورت مورد نظر را تغییر داده و در نهایت با استفاده از فرمان زیر فایل پیکربندی سرویس csf را reload کنید:
csf -r
در مرحله بعد باید فایل csf.pignore را با استفاده از یک ویرایشگر متنی باز کرده و محتویات آن را تغییر دهید:
vi csf.pignore
توسط این فایل میتوانید سرویس فایروال CSF را طوری پیکربندی کرده تا با مواردی که شما تعیین میکنید و در ماشین لینوکسی خود دارید، کاری نداشته باشد. این موارد میتوانند یک برنامه قابل اجراء(executable) و یا حتی یک کاربر ایجاد شده در ماشین لینوکس باشد:
# The following is a list of executables (exe) command lines (cmd) and
# usernames (user) that lfd process tracking will ignore.
#
# You must use the following format:
#
# exe:/full/path/to/file
# user:username
# cmd:command line
پس از تغییر و اضافه کردن تنظیمات خود به این فایل، باید سرویس lfd را یکبار ریستارت کنید:
service lfd restart
در صورتی که خطای زیر را پس از نصب پکیج، دریافت کردید:
*WARNING* Binary location for [HOST] [/usr/bin/host] in /etc/csf/csf.conf is either incorrect, is not installed or is not executable
پکیج زیر را نصب کنید:
yum -y install bind-utils
دستورات سرویس فایروال CSF و موارد مرتبط با آن
برای مشاهده دلیل بلاکشدن یک آدرس IP باید فایلهای گزارش زیر را در سرور لینوکسی خود بررسی کنید:
cat /var/log/exim/mainlog | grep 1.2.3.4
cat /var/log/exim_mainlog | grep 1.2.3.4
cat /var/log/lfd.log | grep 1.2.3.4
cat /var/log/exim_rejectlog | grep 1.2.3.4
همچنین فایل زیر گزارشی از پروتکل IMAP و کاربرانی که در استفاده از این پروتکل رمز عبور را اشتباه وارد کردهاند به شما میدهد:
cat /var/log/maillog | grep 1.2.3.4
برای مشاهده بلاک بودن یک آدرس IP از خط فرمان SSH باید از دستور زیر استفاده کنید:
csf -g 1.2.3.4
برای حذف رکورد آدرس IP بلاک شده و خارج کردن آدرس IP از وضعیت مسدودی از فرمان زیر استفاده کنید:
csf -dr 1.2.3.4
در فایل پیکربندی فایروال CSF با نام csf.conf مؤلفهای وجود دارد که با استفاده از آن میتوانید حداکثر تلاشهای ناموفق برای ورود را تغییر دهید:
vi /etc/csf/csf.conf
UI_RETRY = "5"
این فرمان با فایل etc/csf/csf.deny در ارتباط است.
سوئیچهای مهم ابزار csf به صورت زیر است:
- restart CSF and lfd
csf -r - disable CSF on server
csf -x - enable CSF on server
csf -e - flush all tables on server
csf -f - block and Deny specific ip address
csf -d 1.2.3.4
در این بخش، با مهمترین دستورات CSF آشنا میشوید که میتوانید از آنها برای مدیریت امنیت سرور خود استفاده کنید. این دستورات همراه با توضیحات و مثالهای متنوع آورده شدهاند:
دستور | توضیحات | مثال |
---|---|---|
csf -e |
فعالسازی فایروال CSF پس از غیرفعال بودن آن | csf -e |
csf -x |
غیرفعالسازی کامل فایروال CSF | csf -x |
csf -s |
شروع به کار قوانین فایروال (در صورت تغییرات جدید) | csf -s |
csf -f |
پاک کردن تمام قوانین موجود در فایروال | csf -f |
csf -r |
ریستارت فایروال برای بارگذاری مجدد تنظیمات | csf -r |
csf -a [IP] |
اضافه کردن یک آدرس IP به لیست مجاز (Allow) | csf -a 192.168.1.1 "My Home IP" |
csf -td [IP] |
قرار دادن موقت یک آدرس IP در لیست مسدود شده (با توضیح دلخواه) | csf -td 203.0.113.50 Suspicious Activity |
csf -tr [IP] |
حذف یک آدرس IP از لیست موقت مسدود شده | csf -tr 203.0.113.50 |
csf -tf |
حذف تمامی آدرسهای IP از لیست موقت | csf -tf |
csf -d [IP] |
مسدود کردن دائمی یک آدرس IP و اضافه کردن آن به لیست Deny | csf -d 203.0.113.75 Brute Force Attack |
csf -dr [IP] |
حذف یک آدرس IP از لیست مسدود شده دائمی | csf -dr 203.0.113.75 |
csf -df |
حذف تمام ورودیهای موجود در لیست مسدود شده (deny) | csf -df |
csf -g [IP] |
جستجو در قوانین فایروال برای یافتن اطلاعات مرتبط با یک آدرس IP، شبکه (CIDR) یا شماره پورت | csf -g 192.168.1.10 |
csf -t |
نمایش لیست آدرسهای IP که به صورت موقت مسدود یا مجاز شدهاند به همراه زمان باقیمانده و توضیحات | csf -t |
- لیست مجاز یا Allow: آدرسهایی که در این لیست قرار دارند، به طور کامل به منابع سرور دسترسی خواهند داشت.
- لیست مسدود یا Deny: آدرسهایی که در این لیست هستند، هیچ دسترسیای به سرور نخواهند داشت.
- لیست موقت: مسدود یا مجاز کردن موقت IPها معمولاً برای بررسی فعالیتهای مشکوک استفاده میشود.
امیداوریم آموزش فایروال CSF چیست و چگونه نصب و پیکربندی می شود برای شما مفید باشد. در صورت هرگونه سوال می توانید در بخش نظرات همین مقاله آموزشی با ما مطرح فرمایید.