بلاگ/نصب و تنظیم برنامه CSF در سیستم‌عامل لینوکس CentOS 7
به‌روز شده

نصب و تنظیم برنامه CSF در سیستم‌عامل لینوکس CentOS 7

برنامه CSF یا «تنظیمات فایروال سرور» یک بسته امنیتی فایروال برای سرورهای لینوکس است. همچنین از CSF می‌تواند برای تشخیص نفوذ و ورود به اپلیکیشن‌هایی مانند SSH، SMTP، IMAP و Pop3 استفاده می‌شود. برنامه CSF به عنوان مثال می‌‌تواند تشخیص دهد که کسی از طریق SSH وارد سرور شده و به شما هشدار دهد که این...

1399/02/094339 بازدید
نصب و تنظیم برنامه CSF در سیستم‌عامل لینوکس CentOS 7
برنامه CSF یا «تنظیمات فایروال سرور» یک بسته امنیتی فایروال برای سرورهای لینوکس است. همچنین از CSF می‌تواند برای تشخیص نفوذ و ورود به اپلیکیشن‌هایی مانند SSH، SMTP، IMAP و Pop3 استفاده می‌شود. برنامه CSF به عنوان مثال می‌‌تواند تشخیص دهد که کسی از طریق SSH وارد سرور شده و به شما هشدار دهد که این شخص سعی کرده از فرمان su و مجوزهای آن استفاده کند. این برنامه ورودهای ناموفق به سرورهای ایمیل را بررسی می‌کند. Exim، IMAP، Dovecot، uw-imap و uw-imap از جمله این سرویس‌ها هستند. سرورهای OpenSSH، Ftp و cPanel نیز مورد بررسی CSF قرار می‌گیرند. برنامه CSF یک راه‌حل امنیتی مناسب برای سرورهای میزبان وب است و به‌راحتی با رابط‌های کاربری سی‌پنل، دایرکت‌ادمین و وب‌مین هماهنگ می‌شود.

پیش‌نیازها

  • سیستم‌عامل CentOS 7 (در اینجا سرور از آدرس آی‌پی 168.1.101 استفاده می‌شود).
  • دسترسی‌ها و مجوّزهای روت

کارهایی که در این آموزش انجام خواهیم داد:

  • نصب پیش‌نیازهای برنامه CSF
  • نصب CSF
  • تنظیمات CSF
  • فرمان‌های پایه CSF
  • تنظیمات پیشرفته

گام ۱) نصب پیش‌نیازها و متعلقات CSF

CSF بر اساس زبان برنامه نویسی Perl نوشته شده است. بنابراین اولین کاری که باید انجام دهید، نصب Perl بر روی سرور خواهد بود. همچنین برای دریافت نصب‌کننده CSF نیاز به wget دارید. ضمن اینکه برای ویرایش فایل تنظیمات CSF به یک برنامه ویرایشگر مانند vim احتیاج خواهید داشت. بسته‌ها را با استفاده از فرمان yum مطابق زیر نصب کنید.
php
yum install wget vim perl-libwww-perl.noarch perl-Time-HiRes

گام ۲) نصب برنامه CSF

به دایرکتوری /usr/src/ بروید و با کمک فرمان wget، برنامه CSF را دریافت کنید.
php
cd /usr/src/wget https://download.configserver.com/csf.tgz
حالا فایل tar.gz را استخراج کرده و به دایرکتوری csf بروید. حالا می‌توانید نصب را شروع کنید.
php
tar -xzf csf.tgzcd csfsh install.sh
نهایتاً باید به شما اطلاع داده شود که نصب CSF به‌درستی پایان یافته است.
تکمیل فرآیند برنامه CSF
تکمیل فرآیند برنامه CSF
  حالا باید از درستی عملکرد CSF در این سرور مطمئن شوید. برای این منظور به دایرکتوری /usr/local/csf/bin/ بروید و csftest.pl را اجرا کنید.
php
cd /usr/local/csf/bin/perl csftest.pl
اگر نتیجه‌ای مطابق زیر مشاهده می‌کنید، مطمئن باشید که برنامه CSF بدون هیچ مشکلی روی سرور شما کار می‌کند.
php
RESULT: csf should function on this server
CSF در حال اجرا
CSF در حال اجرا

گام ۳) تنظیمات CSF بر روی CentOS 7

قبل از اینکه وارد فرآیند تنظیمات CSF شوید، اولین چیزی که باید بدانید این است که CentOS 7 دارای یک اپلیکیشن پیش‌فرض فایروال به نام "firewalld" است. با این اپلیکیشن و نحوه کاربرد آن قبلاً در آریانت آشنا شده‌اید. در اینجا باید firewalld را متوقف کرده و آن را از استارتاپ سرور خارج کنید. توقف firewalld
php
systemctl stop firewalld
غیرفعال‌کردن و حذف firewalld از استارتاپ
php
systemctl disable firewalld
اکنون به دایرکتوری تنظیمات CSF یا /etc/csf/ بروید. در اینجا با استفاده از برنامه ویرایشگر vim فایل csf.conf را ویرایش کنید.
php
cd /etc/csf/vim csf.conf
مقدار "TESTING " در خط ۱۱ را به صفر تغییر دهید تا تنظیمات فایروال اِعمال شوند.
php
TESTING = "0"
در حالت پیش‌فرض، برنامه CSF به ترافیک ورودی و خروجی SSH از طریق پورت استاندارد 22 اجازه می‌دهد. در صورتی که شما از یک پورت متفاوت برای SSH استفاده می‌کنید، باید این پورت را در تنظیمات و در خط ۱۳۹ برای مقدار "TCP_IN" وارد کنید. حالا با استفاده از فرمان systemctl اقدام به راه‌اندازی CSF و LFD می‌کنیم.
php
systemctl start csfsystemctl start lfd
سپس این برنامه‌ها را به گونه‌ای تنظیم می‌کنیم که در شروع به کار سیستم اجرا شوند.
php
systemctl enable csfsystemctl enable lfd
اکنون می‌توانید لیست قانون‌های پیش‌فرض CSF را با فرمان زیر مشاهده کنید.
php
csf -l

گام ۴) فرمان‌های پایه CSF

۱- راه‌اندازی فایروال (فعال‌کردن قانون‌های فایروال).
php
csf -s
۲- لغو یا توقف قوانین فایروال.
php
csf -f
۳- بازیابی قوانین فایروال.
php
csf -r
۴- دادن مجوز به یک IP و اضافه‌کردن آن به csf.allow.
php
csf -a 192.168.1.109
نتایج نمونه
php
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/0ACCEPT  all opt -- in * out !lo  0.0.0.0/0  -> 192.168.1.109
۵- برداشتن و حذف یک IP از csf.allow.
php
csf -ar 192.168.1.109
نتیجه
php
Removing rule…ACCEPT  all opt – in !lo out *  192.168.1.109  -> 0.0.0.0/0ACCEPT  all opt – in * out !lo  0.0.0.0/0  -> 192.168.1.109
۶- بلوکه‌کردن یک IP و اضافه‌کردن آن به csf.deny.
php
csf -d 192.168.1.109
نتیجه
php
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/0LOGDROPOUT  all opt -- in * out !lo  0.0.0.0/0  -> 192.168.1.109
۷- برداشتن و حذف یک IP از csf.deny.
php
csf -dr 192.168.1.109
نتیجه
php
Removing rule...DROP  all opt -- in !lo out *  192.168.1.109  -> 0.0.0.0/0LOGDROPOUT  all opt -- in * out !lo  0.0.0.0/0  -> 192.168.1.109
۸- برداشتن و حذف تمام ورودی‌ها از csf.deny.
php
csf -df
نتیجه
php
DROP  all opt -- in !lo out *  192.168.1.110  -> 0.0.0.0/0LOGDROPOUT  all opt -- in * out !lo  0.0.0.0/0  -> 192.168.1.110DROP  all opt -- in !lo out *  192.168.1.111  -> 0.0.0.0/0LOGDROPOUT  all opt -- in * out !lo  0.0.0.0/0  -> 192.168.1.111csf: all entries removed from csf.deny
۹- جستجو برای الگویی خاص در iptable‌ ها؛ از جمله آدرس IP، CIDR و پورت
php
csf -g 192.168.1.110

گام ۵) تنظیمات پیشرفته

در اینجا برخی ترفندها در رابطه با برنامه CSF را داریم که می‌توانید در هنگام نیاز از آنها استفاده کنید. به دایرکتوری تنظیمات CSF برمی‌گردیم و فایل csf.conf را ویرایش می‌کنیم.
php
cd /etc/csf/vim csf.conf
۱- آدرس‌های IP را که در فایل‌های csf.allow هستند، بلوکه نکنید. lfd به صورت پیش‌فرض IP فایل‌های csf.allow را بلوکه خواهد کرد. بنابراین اگر می‌خواهیم این آدرس هیچ‌گاه توسط lfd مسدود نشود، باید مقدار IGNORE_ALLOW را در خط ۲۷۲ به 1 تغییر دهید. این موضوع به‌ویژه در زمانی که IP استاتیک در خانه یا دفتر کار دارید و می‌خواهید این آدرس همیشه در سرور اینترنت در دسترس باشد، مفید خواهد بود.
php
IGNORE_ALLOW = "1"
۲- دادن مجوّز به ورودی‌ها و خروجی‌های ICMP برای این منظور به خط ۱۵۲  و تنظیم ورودی ping/ICMP بروید.
php
ICMP_IN = "1"
همچنین خروجی ping/ICMP در خط ۱۵۹ در دسترس شما خواهد بود.
php
ICMP_OUT = "1"
۳- مسدود کردن برخی کشورهای خاص برنامه CSF گزینه‌ای برای دادن مجوز و مسدود کردن دسترسی کشورها با استفاده از CIDR ارائه می‌دهد. برای این منظور، به خط ۸۳۶ رفته و کد کشورهای موردنظرتان را مطابق زیر وارد کنید.
php
CC_DENY = "CN,UK,US"CC_ALLOW = "ID,MY,DE"
۴- ارسال تاریخچه ورود Su و SSU با ایمیل. می‌توانید در LFD یک آدرس ایمیل تنظیم کنید تا رخدادهای مرتبط با ورود SSH و کاربرانی که از فرمان su استفاده کرده‌اند، به آن ارسال شود. برای این منظور به خط ۱۰۶۹ رفته و مقدار را به 1 تغییر دهید.
php
LF_SSH_EMAIL_ALERT = "1"...LF_SU_EMAIL_ALERT = "1"
سپس آدرس ایمیل دلخواهتان را در خط ۵۸۸ اضافه کنید.
php
LF_ALERT_TO = "mymail@mydomain.tld"
اگر می‌خواهید ترفندهای بیشتری در این رابطه بدانید، شاید بهتر بخش options در فایل تنظیمات "/etc/csf/csf.conf" را مطالعه کنید.

جمع‌بندی

برنامه CSF یک فایروال مبتنی بر اپلیکیشن است که برای سرورهای لینوکس ارائه شده است. این برنامه ویژگی‌های زیادی دارد و از بسیاری از ابزارهای مدیریت وب مانند سی‌پنل، دایرکت‌ادمین و وب‌مین پشتیبانی می‌کند. در مجموع باید گفت که CSF نصب آسانی دارد و مدیریت امنیت سرور را بسیار ساده می‌کند.   منبع: howtoforge.com