بلاگ/نصب و تنظیم برنامه CSF در سیستمعامل لینوکس CentOS 7
بهروز شده
نصب و تنظیم برنامه CSF در سیستمعامل لینوکس CentOS 7
برنامه CSF یا «تنظیمات فایروال سرور» یک بسته امنیتی فایروال برای سرورهای لینوکس است. همچنین از CSF میتواند برای تشخیص نفوذ و ورود به اپلیکیشنهایی مانند SSH، SMTP، IMAP و Pop3 استفاده میشود. برنامه CSF به عنوان مثال میتواند تشخیص دهد که کسی از طریق SSH وارد سرور شده و به شما هشدار دهد که این...
1399/02/094339 بازدید
برنامه 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
1yum install wget vim perl-libwww-perl.noarch perl-Time-HiRes
گام ۲) نصب برنامه CSF
به دایرکتوری /usr/src/ بروید و با کمک فرمان wget، برنامه CSF را دریافت کنید.
حالا فایل tar.gz را استخراج کرده و به دایرکتوری csf بروید. حالا میتوانید نصب را شروع کنید.
php
1tar -xzf csf.tgz23cd csf45sh install.sh
نهایتاً باید به شما اطلاع داده شود که نصب CSF بهدرستی پایان یافته است.
تکمیل فرآیند برنامه CSF
حالا باید از درستی عملکرد CSF در این سرور مطمئن شوید. برای این منظور به دایرکتوری /usr/local/csf/bin/ بروید و csftest.pl را اجرا کنید.
php
1cd /usr/local/csf/bin/23perl csftest.pl
اگر نتیجهای مطابق زیر مشاهده میکنید، مطمئن باشید که برنامه CSF بدون هیچ مشکلی روی سرور شما کار میکند.
php
1RESULT: csf should function on this server
CSF در حال اجرا
گام ۳) تنظیمات CSF بر روی CentOS 7
قبل از اینکه وارد فرآیند تنظیمات CSF شوید، اولین چیزی که باید بدانید این است که CentOS 7 دارای یک اپلیکیشن پیشفرض فایروال به نام "firewalld" است. با این اپلیکیشن و نحوه کاربرد آن قبلاً در آریانت آشنا شدهاید. در اینجا باید firewalld را متوقف کرده و آن را از استارتاپ سرور خارج کنید.
توقف firewalld
php
1systemctl stop firewalld
غیرفعالکردن و حذف firewalld از استارتاپ
php
1systemctl disable firewalld
اکنون به دایرکتوری تنظیمات CSF یا /etc/csf/ بروید. در اینجا با استفاده از برنامه ویرایشگر vim فایل csf.conf را ویرایش کنید.
php
1cd /etc/csf/23vim csf.conf
مقدار "TESTING " در خط ۱۱ را به صفر تغییر دهید تا تنظیمات فایروال اِعمال شوند.
php
1TESTING = "0"
در حالت پیشفرض، برنامه CSF به ترافیک ورودی و خروجی SSH از طریق پورت استاندارد 22 اجازه میدهد. در صورتی که شما از یک پورت متفاوت برای SSH استفاده میکنید، باید این پورت را در تنظیمات و در خط ۱۳۹ برای مقدار "TCP_IN" وارد کنید.
حالا با استفاده از فرمان systemctl اقدام به راهاندازی CSF و LFD میکنیم.
php
1systemctl start csf23systemctl start lfd
سپس این برنامهها را به گونهای تنظیم میکنیم که در شروع به کار سیستم اجرا شوند.
php
1systemctl enable csf23systemctl enable lfd
اکنون میتوانید لیست قانونهای پیشفرض CSF را با فرمان زیر مشاهده کنید.
۴- دادن مجوز به یک IP و اضافهکردن آن به csf.allow.
php
1csf -a 192.168.1.109
نتایج نمونه
php
1Adding 192.168.1.109 to csf.allow and iptables ACCEPT...23ACCEPT all opt -- in !lo out * 192.168.1.109 -> 0.0.0.0/045ACCEPT all opt -- in * out !lo 0.0.0.0/0 -> 192.168.1.109
۵- برداشتن و حذف یک IP از csf.allow.
php
1csf -ar 192.168.1.109
نتیجه
php
1Removing rule…23ACCEPT all opt – in !lo out * 192.168.1.109 -> 0.0.0.0/045ACCEPT all opt – in * out !lo 0.0.0.0/0 -> 192.168.1.109
۶- بلوکهکردن یک IP و اضافهکردن آن به csf.deny.
php
1csf -d 192.168.1.109
نتیجه
php
1Adding 192.168.1.109 to csf.deny and iptables DROP...23DROP all opt -- in !lo out * 192.168.1.109 -> 0.0.0.0/045LOGDROPOUT all opt -- in * out !lo 0.0.0.0/0 -> 192.168.1.109
۷- برداشتن و حذف یک IP از csf.deny.
php
1csf -dr 192.168.1.109
نتیجه
php
1Removing rule...23DROP all opt -- in !lo out * 192.168.1.109 -> 0.0.0.0/045LOGDROPOUT all opt -- in * out !lo 0.0.0.0/0 -> 192.168.1.109
۸- برداشتن و حذف تمام ورودیها از csf.deny.
php
1csf -df
نتیجه
php
1DROP all opt -- in !lo out * 192.168.1.110 -> 0.0.0.0/023LOGDROPOUT all opt -- in * out !lo 0.0.0.0/0 -> 192.168.1.11045DROP all opt -- in !lo out * 192.168.1.111 -> 0.0.0.0/067LOGDROPOUT all opt -- in * out !lo 0.0.0.0/0 -> 192.168.1.11189csf: all entries removed from csf.deny
۹- جستجو برای الگویی خاص در iptable ها؛ از جمله آدرس IP، CIDR و پورت
php
1csf -g 192.168.1.110
گام ۵) تنظیمات پیشرفته
در اینجا برخی ترفندها در رابطه با برنامه CSF را داریم که میتوانید در هنگام نیاز از آنها استفاده کنید.
به دایرکتوری تنظیمات CSF برمیگردیم و فایل csf.conf را ویرایش میکنیم.
php
1cd /etc/csf/23vim csf.conf
۱- آدرسهای IP را که در فایلهای csf.allow هستند، بلوکه نکنید.
lfd به صورت پیشفرض IP فایلهای csf.allow را بلوکه خواهد کرد. بنابراین اگر میخواهیم این آدرس هیچگاه توسط lfd مسدود نشود، باید مقدار IGNORE_ALLOW را در خط ۲۷۲ به 1 تغییر دهید. این موضوع بهویژه در زمانی که IP استاتیک در خانه یا دفتر کار دارید و میخواهید این آدرس همیشه در سرور اینترنت در دسترس باشد، مفید خواهد بود.
php
1IGNORE_ALLOW = "1"
۲- دادن مجوّز به ورودیها و خروجیهای ICMP
برای این منظور به خط ۱۵۲ و تنظیم ورودی ping/ICMP بروید.
php
1ICMP_IN = "1"
همچنین خروجی ping/ICMP در خط ۱۵۹ در دسترس شما خواهد بود.
php
1ICMP_OUT = "1"
۳- مسدود کردن برخی کشورهای خاص
برنامه CSF گزینهای برای دادن مجوز و مسدود کردن دسترسی کشورها با استفاده از CIDR ارائه میدهد. برای این منظور، به خط ۸۳۶ رفته و کد کشورهای موردنظرتان را مطابق زیر وارد کنید.
php
1CC_DENY = "CN,UK,US"23CC_ALLOW = "ID,MY,DE"
۴- ارسال تاریخچه ورود Su و SSU با ایمیل.
میتوانید در LFD یک آدرس ایمیل تنظیم کنید تا رخدادهای مرتبط با ورود SSH و کاربرانی که از فرمان su استفاده کردهاند، به آن ارسال شود. برای این منظور به خط ۱۰۶۹ رفته و مقدار را به 1 تغییر دهید.
اگر میخواهید ترفندهای بیشتری در این رابطه بدانید، شاید بهتر بخش options در فایل تنظیمات "/etc/csf/csf.conf" را مطالعه کنید.
جمعبندی
برنامه CSF یک فایروال مبتنی بر اپلیکیشن است که برای سرورهای لینوکس ارائه شده است. این برنامه ویژگیهای زیادی دارد و از بسیاری از ابزارهای مدیریت وب مانند سیپنل، دایرکتادمین و وبمین پشتیبانی میکند. در مجموع باید گفت که CSF نصب آسانی دارد و مدیریت امنیت سرور را بسیار ساده میکند.
منبع: howtoforge.com