نصب و تنظیم CSF بر روی لینوکس

رضا فرخندگان ۱۴ بهمن ۱۳۹۷ ۰ دیدگاه

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

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

CSF چیست؟

CSF مخفف عبارت Config Server Firewall است. CSF در حقیقت یک فایروال رایگان و پیشرفته بوده که در بیشتر توزیع‌های لینوکس و سرورهای مجازی مبتنی بر لینوکس از آن استفاده می‌شود.

CSF چیست؟

علاوه بر قابلیت‌های اولیه‌ی فایروال و فیلتر کردن بسته‌ها، CSF حاوی ویژگی‌های امنیتی دیگری ازجمله تشخیص ورود و نفوذ به سیستم است. 

CSF قادر به تشخیص حملات بسیاری از قبیل port scans، SYN floods و brute force است. این برنامه به نحوی پیکربندی شده است که به‌صورت موقت کاربرانی که موردحمله قرار گرفته‌اند را بلاک می‌کند.  

CSF دارای UI منطبق با کنترل‌پنل‌های cPanel ،DirectAdmin و Webmin است. اما در این مقاله آموزش نصب به‌صورت دستوری آموزش داده خواهد شد.

نصب و تنظیم CSF بر روی لینوکس

نصب و تنظیم CSF بر روی لینوکس

پیش‌نیازها

پیش از شروع نصب CSF بر روی توزیع‌های لینوکس (RHEL، CentOS، openSUSE، Debian و Ubuntu) توجه داشته باشید که CSF به مخازن Perl و Libwww نیاز دارد. این مخازن اغلب به‌صورت پیش‌فرض در دسترس هستند، اما اگر در مراحل نصب با خطایی مواجه شدید، نیاز به سیستم مدیریت بسته‌ها دارید تا بتوانید آن‌ها را نصب کنید:

# yum install perl-libwww-perl

# apt install libwww-perl

مرحله اول: دانلود CSF

در اولین مرحله باید به‌وسیله‌ی فرمان زیر CSF را دانلود کنیم:

# cd /usr/src

# wget https://download.configserver.com/csf.tgz

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

پس از دانلود، باید فایل CSF را استخراج (Extract) کنیم:

# tar xzf csf.tgz

# cd csf

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

این بخش نصب تمام وابستگی‌ها را بررسی می‌کند، ساختار دایرکتوری لازم و فایل‌های مربوط به رابط وب را ایجاد کرده، پورت‌های باز را شناسایی کرده و به شما یادآوری می‌کند که پس از کار با پیکربندی اولیه، csf و lfd را ریستارت کنید:

# sh install.sh

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

خروجی فرمان بالا به‌صورت زیر خواهد بود:

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 را پیکربندی کنید:

# systemctl stop firewalld

# systemctl disable firewalld

عبارت  TESTING = “1”  را به  TESTING = “0”  تغییر دهید ( در غیر این صورت lfd راه‌اندازی نخواهد شد). سپس فهرست مجاز به پورت‌های ورودی و خروجی، به‌عنوان یک فهرست مجزا با ویرگول (TCP_IN و TCP_OUT) در etc/csf/csf.conf/ مانند زیر نمایش داده خواهند شد:

# 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 = “0”

# Allow incoming TCP ports

TCP_IN = “20,21,22,25,53,80,110,143,443,465,587,993,995” 

# Allow outgoing TCP ports

TCP_OUT = “20,21,22,25,53,80,110,113,443,587,993,995”

هنگامی‌که پیکربندی را تنظیم کردید، تغییرات را ذخیره کرده و به محیط فرمان برگردید.

مرحله پنجم: ریستارت و بررسی CSF

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

# systemctl restart {csf,lfd}

# systemctl enable {csf,lfd}

# systemctl is-active {csf,lfd}

# csf -v

در تصویر زیر خروجی این دستور را مشاهده می‌کنید:

نصب و تنظیم CSF بر روی لینوکس

اکنون آماده‌ایم تا تنظیمات فایروال و قوانین تشخیص نفوذ را شروع کنیم.

تنظیم CSF و قوانین تشخیص نفوذ

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

# csf -l

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

# csf -f

# csf -r

مراحلی که در بالا به آن‌ها اشاره کردیم را حتماً به ترتیب انجام دهید. چنانچه در هر قسمت با مشکل یا سؤالی مواجه شدید، با ما در میان بگذارید تا کارشناسان فنی سینداد شما را راهنمایی کنند.

 

آموزش کار با CSF

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

مثال ۱: صدور مجوز یا منع ارتباط IP آدرس

برای صدور مجوز ارتباطات ورودی از IP آدرس ۱۹۲.۱۶۸.۰.۱۰ می‌توانید از فرمان زیر استفاده کنید:

# csf -a 192.168.0.10

به همین ترتیب می‌توانید مانع ارتباطات ورودی از IP آدرس ۱۹۲.۱۶۸.۰.۱۱ شوید:

# csf -d 192.168.0.11   

البته شما می‌توانید به‌راحتی قوانین بالا را لغو کنید:

# csf -ar 192.168.0.10

# csf -dr 192.168.0.11

خروجی لغو قوانین مشابه تصویر زیر خواهد بود:

آموزش کار با CSF

مثال ۲: محدود کردن ارتباطات ورودی به منبع

بسته به نوع استفاده از سرور، شاید بخواهید ارتباطات ورودی را به یک عدد ایمن در یک پورت محدود کنید. بدین منظور، فایل etc/csf/csf.conf/ را باز کنید و عبارت CONNLIMIT را سرچ کنید. همچنین شما می‌توانید چند پورت را مشخص کنید:

CONNLIMIT = “22;2,80;10”

در مثال بالا، این فرمان در پورت‌های TCP شماره ۲۲ و ۸۰ فقط به ارتباطات شماره‌ ۲ و ۱۰ از یک منبع اجازه‌ی ورود می‌دهد.

مثال ۳: ارسال هشدار از طریق ایمیل

چند نوع هشدار وجود دارند که شما می‌توانید انتخاب کنید. در فایل etc/csf/csf.conf/ به دنبال تنظیمات EMAIL_ALERT بگردید و مطمئن شوید که عدد آن  “۱”  باشد. به‌عنوان‌مثال، دستور زیر را مشاهده کنید:

LF_SSH_EMAIL_ALERT = “1”

LF_SU_EMAIL_ALERT = “1”

این فرمان هر بار یک نفر از طریق SSH وارد سیستم شود یا با استفاده از دستور su وارد حساب کاربری دیگری شود، به آدرس مشخص شده در LF_ALERT_TO یک پیغام هشدار ارسال می‌کند.

تنظیمات پیکربندی CSF

تنظیماتی که به آن‌ها اشاره خواهیم کرد، برای تغییر و کنترل پیکربندی CSF مورد استفاده قرار می‌گیرند. تمام فایل‌های پیکربندی CSF در دایرکتوری etc/csf/ واقع شده‌اند. اگر هرکدام از فایل‌های زیر را تغییر دهید، باید CSF را ریستارت کنید تا تغییرات اعمال شوند.

تنظیمات پیکربندی CSF
  • csf.conf: فایل اصلی پیکربندی برای کنترل CSF.
  • csf.allow: فهرست IP ها و آدرس‌های CIDR مجاز در فایروال.
  • csf.deny: فهرست IP ها و آدرس‌های CIDR غیرمجاز در فایروال.
  • csf.ignore: فهرست IP ها و آدرس‌های CIDR نادیده گرفته شده در فایروال.
  • csf.*ignore: فهرست فایل‌های IP کاربران نادیده گرفته شده.

حذف فایروال CSF

چنانچه قصد دارید به‌طور کامل فایروال CSF را حذف کنید، کافی است تا اسکریپت زیر را در دایرکتوری etc/csf/uninstall.sh/ اجرا کنید:

# /etc/csf/uninstall.sh

فرمان بالا فایروال CSF را با تمام فایل‌ها و محتویاتش حذف خواهد کرد.

فناوران شبکه سینداد (آهنگ نوآوری)

سینداد یعنی هدیه‌ی سیمرغ، یا فرزند سیمرغ؛ به عبارتی یعنی خود سیمرغ، با همه ی شگفتی هایش، اما جوانتر و سرزنده تر. و این چیزی است که ما سعی می کنیم در سینداد باشیم. از سال ۱۳۸۵ دانش مان را به صورت خدماتی در حوزه ی هاستینگ، شبکه و تولید نرم افزار در اختیار مشتریان مان قرار داده ایم و به این افتخار می کنیم که تک تک آنها تا به امروز همراه ما مانده اند. باور داریم که سینداد صرفاً یک شرکت نیست، بلکه نوعی باور است به ارائه ی شگفت انگیز از هر چیز.