15 نکته آسان برای امنیت سرور cPanel

15 نکته آسان برای امنیت سرور cPanel

امنیت سرور موضوعی پیچیده و چند وجهی است که درک مفاهیم و تسلط کافی بر آن ممکن است زمانبر باشد. جهت جلوگیری از حملات لازم است تا مدیران سرور اقدامات متفاوتی را انجام دهند. در این مقاله تلاش شده است تا اقدامات امنیتی از جوانب مختلف بررسی گردد. در همین راستا 15 راهکار آسان برای بهبود امنیت سرور پیشنهاد شده است.

1. امنیت SSH

اگرچه SSH یک پروتکل رمزگذاری شده است اما غیرقابل نفوذ نیست. به این معنی که به عنوان مدیر سرور هنگام پیکربندی می بایست با دقت عمل کنید. در زیر سه ​​مرحله ساده برای افزایش امنیت SSH ذکر شده است.

Change SSH Port
ثابت نگه داشتن SSH در پورت پیش فرض 22 باعث می شود در برابر حملات brute force آسیب پذیر گردد. برای جلوگیری از این حملات باید یک پورت تصادفی برای SSH انتخاب کنید تا تشخیص دادن موقعیت مکانی آن برای مهاجمین احتمالی مشکل باشد.
نحوه تغییر پورت SSH در زیر ذکر شده است.
1. از طریق SSH به سرور خود وارد شوید.
2. با اجرای دستور زیر فایل پیکربندی SSH را که در /etc/ssh/sshd_config واقع شده است، ویرایش کنید:

Nano /etc/ssh/sshd_config

3.یک پورت تصادفی برای اتصال SSH در خط زیر تنظیم کنید.

          پورت پیش فرض : 22

          پورت جدید: 2468

تصویر(2)

4. اکنون ، سرویس SSH را با اجرای دستور زیر مجدداً راه اندازی کنید:

service sshd restart

غیرفعالسازی Root Login
برای افزودن یک لایه امنیتی دیگر و امن سازی بیشتر SSH ، می توانید کاربر root را غیرفعال کرده و یک کاربر جداگانه برای دسترسی به سرور ایجاد کنید.

1. از طریق SSH به سرور خود وارد شوید. قبل از غیرفعال کردن ورود به سیستم root ، یک کاربر برای دسترسی به سرور ایجاد نمایید:

adduser new_username_name

passwd new_username_name

2.سپس از شما خواسته می شود برای این کاربر جدید رمزعبور تنظیم کنید. اطمینان حاصل کنید که گذرواژه به حد امکان قوی است (حداقل 10 کاراکتر با چندین عدد و علامت) و سپس کاربر جدید را اضافه کنید.

کاربر جدید می تواند با استفاده از کد زیر به سرور دسترسی پیدا کند.

usermod -aG wheel new_username_name

3.اکنون کاربر root را غیرفعال کنید و فایل پیکربندی SSH را که در مسیر etc/ssh/sshd_config/ واقع شده است، ویرایش نمایید.

nano /etc/ssh/sshd_config

4. سپس مطابق تصویر ضمیمه، عبارت “PermitRootLogin yes” را به “PermitRootLogin no” تغییر دهید.

تصویر(3)

5.اکنون ، سرویس SSH را با اجرای دستور زیر مجدداً راه اندازی کنید.

service sshd restart

غیرفعالسازی SSH V1

با توجه به منسوخ شدن SSH v1 به دلیل پایین بودن سطح امنیت آن، تنها SSH v2 را فعال کنید.

1. فایل پیکربندی SSH را که در مسیر etc/ssh/sshd_config/ واقع شده است، ویرایش کنید.

nano /etc/ssh/sshd_config

2. خط زیر را کامنت کنید.

Protocol 2,1

3. سپس آن را به صورت زیر تغییر دهید.

Protocol 2

4. اکنون ، سرویس SSH را با اجرای دستور زیر مجدداً راه اندازی کنید.

service sshd restart

2. فعالسازی CPHulk

brute force یک روش هک کردن است که برای حدس زدن رمز عبور به سرور مورد استفاده قرار می گیرد.

cPHulk سرویسی است که از سرور شما در برابر بیشترین حمله brute force محافظت می کند.

برای فعال کردن cPHulk ، وارد WHM → Security Center → cPHulk Brute Force Protection شوید و روی Enable کلیک کنید.

 

تصویر(4)

هنگامی که تعداد مشخصی از تلاشهای ناموفق ورود به سیستم انجام شد ، cPHulk آدرس IP مورد استفاده را مسدود می کند.

ضمن اینکه در این روش می توانید قوانین سفارشی را بر اساس نام کاربری cPanel ، آدرس IP و پارامترهای دیگر تنظیم کنید.

نکته: اگر IP استاتیک دارید ، توصیه می شود آن را به Whitelist اضافه کنید تا منجر به عدم دسترسی شما به سرور نشود.

3. نصب فایروال نرم افزاری (csf)

Csf یکی از محبوب ترین فایروال ها برای سرورهای cPanel است. نه تنها با اسکن کردن فایل های مختلف در زمان ورود به سیستم به عنوان یک فایروال عمل می کند بلکه به طور مرتب سرور شما را اسکن می نماید و به شما توصیه هایی برای بهبود امنیت سرور می دهد.

علاوه بر ویژگی های اصلی ، CSF به شما امکان دسترسی به تعدادی از ویژگی های مفید مانند “نمایش لاگ سیستمی” ، گزارش های IPTable ، آمار IFD و موارد دیگر را نیز می دهد.

در صورت نیاز به توضیحات بیشتر راجع به این نوع فایروال می توانید اینجا را کلیک نمایید.

نحوه نصب csf

از طریق SSH با کاربر root وارد سرور خود شوید و فایل پکیج های CSF را با استفاده از دستور wget دانلود کنید.

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

فایل دریافتی را اکسترکت کنید.

tar xfz csf.tgz

به دایرکتوری csf بروید:

cd csf

سپس فایل installer را اجرا نمایید.

sh install.sh

پس از اتمام نصب، حتماً می بایست با تغییر “TESTING = 1” به “TESTING = 0” ، فایروال را از حالت تست خارج نمایید.

تصویر(5)

برای اعمال تغییرات، سرویس csf را با اجرای دستور زیر مجدداً راه اندازی کنید.

csf -r

حال برای مدیریت csf می توانید از مسیر زیر اقدام نمایید.

WHM, navigate to Plugins → ConfigServer Security & Firewall.

تصویر(6)

4. نصب آنتی ویروس ClamAV

در حالی که سرورهای لینوکس نسبت به سرورهای ویندوز ، مقاومت بیشتری در مقابل ویروس ها دارند ، اما نصب نرم افزار آنتی ویروس همچنان عاقلانه تلقی می شود.

ClamAV که نصب آن به عنوان افزونه بر روی سرور بسیار آسان است ، یکی از محبوب ترین افزونه های آنتی ویروس منبع باز برای سرورهای cPanel است و به کاربران اجازه می دهد تا home directory و ایمیل های شامل فایل های مخرب را اسکن کنند.

برای نصب آنتی ویروس می توان از مسیر زیر اقدام کرد.

WHM, navigate to Plugins → install “ClamAV for cPanel”.

تصویر(7)

5. تغییر به CloudLinux

سیستم عامل CloudLinux ، یک جایگزین قوی برای سیستم عامل CentOS می باشد که به عنوان یکی از امن ترین سیستم عامل های سرورهای cPanel در نظر گرفته می شود.

با استفاده از CloudLinux ، می توانید پایداری سرور را با ایزوله کردن اکانت های cPanel از لحاظ تخصیص منابع، افزایش دهید.

در واقع، با استفاده از پلاگین LVE Manager می توانید منابع سرور مانند پردازنده ، حافظه و اتصالات را برای هر کاربر محدود کنید. با این پلاگین اطمینان حاصل می کنید که یک کاربر واحد نمی تواند ثبات سرور را در معرض خطر قرار دهد و باعث کند شدن همه سایت ها شود.

CageFS یکی دیگر از پلاگین های CloudLinux می باشد. زمانی که پکیج ها در تنظیمات LVE ایجاد می شود، وظیفه CageFS کنترل کردن میزان مصرف هر کدام از سایت های بر روی cpanel بر اساس پکیج ها می باشد.

6. غیر فعالسازی درخواست ping

پینگ یک درخواست ICMP (پروتکل پیام کنترل اینترنت) است و برای جلوگیری از حملات “Ping of Death” و “Ping Flood” غیرفعال می شود.

7. پیکربندی کنترل دسترسی میزبان

در موارد خاص ممکن است بخواهید اجازه دسترسی به سرویسهای خاص را فقط به یک IP بدهید. برای تحقق این هدف، تمام کاری که شما باید انجام دهید، پیکربندی صحیح کنترل دسترسی است که به شما این امکان را میدهد قوانینی در مورد تأیید یا انکار دسترسی سرور بر اساس آدرس IP کاربر ایجاد کنید.

انکار همه اتصالات و تنها اجازه اتصال به یک IP مورد نظر ، امن ترین عمل برای افزایش امنیت سرور شما در برابر حملات brute force به پورت های خاص است.

برای پیکربندی یک قانون با کنترل دسترسی میزبان به سه چیز نیاز دارید.

1. سرویسی که بخواهید بر روی آن یک قانون ایجاد کنید

2. Ip address که می خواهید به آن اجازه یا عدم دسترسی بدهید.

3. عملی که می خواهید انجام شود (مثلاً مجاز نمودن یا انکار)

 

تصویر(8)

برای تنظیم قوانین در کنترل دسترسی ، به WHM خود وارد شوید و سپس به مسیر Security Center → Host Access Control بروید.

8. فعالسازی Mod_Security

در سال 2017 ، بیش از 70٪ از کل حملات مخرب سرور در سطح برنامه وب صورت می گرفت.

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

1.SQL Injection

2.حملات از طریق iFrame

3.محافظت در مقابل Webshell/Backdoor

4.محافظت در مقابل حملات Botnet

5.حملات (HTTP Denial of Service (DOS

برای فعالسازی آن می توانید از بخش تنظیمات Easy Apache اقدام نمایید.

تصویر(9)

9. اسکن سیستم به وسیله RootKit Hunter

Rootkit Hunter یا rkhunter ابزاری مبتنی بر UNIX است که یکی از ابزارهای مفید جهت شناسایی و از بین بردن انواع trojans, rootkits و رفع مشکلات امنیتی سرور می باشد.

نحوه نصب RootKit Hunter

مسیر دایرکتوری را به صورت زیر تغییر دهید :

cd /usr/local/src

بسته rkhunter را با استفاده از دستور wget دانلود کنید.

wget http://dfn.dl.sourceforge.net/sourceforge/rkhunter/rkhunter-1.4.2.tar.gz

فایل دانلود شده را اکسترکت کنید.

tar -zxvf rkhunter-1.4.2.tar.gz

سپس وارد مسیر ایجاد شده، شوید.

cd rkhunter-1.4.2

در نهایت با اجرای دستور زیر بسته های آن را نصب نمایید.

./installer.sh –layout default –install

پیکربندی Rkhunter

می توانید فایل پیکربندی rkhunter را در مسیر etc/rkhunter.conf/ پیدا کنید. با تغییر مقادیر پارامتر در این فایل می توانید ویژگی های rkhunter را برای تامین امنیت سرور اصلاح کنید.

به منظور اجازه دسترسی به یوزر root از طریق SSH از دستور زیر استفاده نمایید:

ALLOW_SSH_ROOT_USER = yes

دایرکتوری نصب rkhunter را باید در قسمت path/of/installation/directory  قرار داده شود.

INSTALLDIR=/path/of/installation/directory

دایرکتوری دیتابیس rkhunter

DBDIR=/var/lib/rkhunter/db

دایرکتوری اسکریپت rkhunter

SCRIPTDIR=/usr/local/lib64/rkhunter/scripts

دایرکتوری فایل tmp مربوط به rkhunter

TMPDIR=/var/lib/rkhunter/tmp

اسکن به صورت دستی با Rkhunter

برای اجرای اسکن به صورت دستی با rkhunter دستور زیر  را اجرا کنید.

/usr/local/bin/rkhunter -c

به طور پیش فرض ، rkhunter در حالت تعاملی اجرا می شود. در واقع، rkhunter بخشی از اسکن را انجام می دهد و پس از هر مجموعه اسکن ، برای ادامه باید Enter را فشار دهید.

10. اسکن سیستم به وسیله Maldet

Maldet، همچنان به عنوان Linux Malware Detect شناخته می شود. این اسکنر بدافزار که تنها بر روی سیستم عامل لینوکسی قابل نصب می باشد، به گونه ای طراحی شده است که بطور موثر بتواند از php backdoors, darkmailers و تعدادی از فایلهای مخرب دیگر که منجر به در خطر افتادن وب سایت ها می شوند، محافظت کند.

نحوه نصب Maldet

پس از ورود به سرور از طریق SSH فایل نصبی Maldet را دانلود نمایید.

wget http://www.rfxn.com/downloads/maldetect-current.tar.gz

فایل را اکسترکت نمایید.

tar -xzf maldetect-current.tar.gz

به پوشه maldet بروید.

cd maldetect-*

با اجرای دستور زیر Maldet را نصب نمایید.

sh ./install.sh

نحوه اسکن توسط Maldet

باز بودن یک session به منظور اسکن فایل های بر روی سیستم، بر اساس میزان فضای دیسک سیستم شما ممکن است ساعت ها به طول بیانجامد. برای اجرای اسکن ، از دستور زیر استفاده کنید.

maldet -a /path/to/scan

یا

maldet –scan-all /path/to/scan

همچنین می توانید برای اسکن کل سیستم ، دستور زیر را اجرا کنید.

maldet -a /

11. تنظیم کرون جاب برای اسکن روزانه آنتی ویروس ClamAV

از آنجا که تغییرات زیادی مانند افزودن، به روزرسانی و حذف فایل هایی که روی سرور شما قرار دارند، رخ می دهد، بسیار حائز اهمیت است که با یک برنامه آنتی ویروس تمامی فایل ها اسکن شود تا سرور امنی داشته باشید.

به منظور اجرای اسکن سیستم توسط ClamAV ، بطور خودکار و در طی ساعات معین ، می توانید یک کرون جاب اسکنر تنظیم نمایید.

برای اجرای این کرون از دستور زیر استفاده کنید.

for i in `awk ‘!/nobody/{print $2 | “sort | uniq” }’ /etc/userdomains | sort | uniq`; do /usr/local/cpanel/3rdparty/bin/clamscan -i -r /home/$i 2>>/dev/null; done >> /root/infections&

این دستور به صورت بازگشتی، دایرکتوری home را برای شناسایی فایلهای مخرب و آلوده، اسکن می کند.

12. پنهان سازی مشخصات وب سرور

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

1.بدین منظور ابتدا وارد WHM شوید و به مسیر زیر بروید.

Service Configuration → Apache Configuration → Global Configuration.

 

2.سپس مقادیر زیر را تنظیم کنید.

Server Signature = Off

Server Tokens = Product only

 

تصویر(10)

13. پنهان سازی مشخصات php

همانند مشخصات وب سرور ، نباید اطلاعات نسخه PHP را در معرض نمایش بگذارید. در اینجا مراحل پنهان کردن این اطلاعات آورده شده است.

1.بدین منظور ابتدا وارد WHM شوید و به مسیر زیر بروید.

Service Configuration → PHP Configuration Editor.

2.سپس مقدار زیر را تنظیم کنید.

expose_php= “off”

14. غیرفعالسازی FTP و استفاده SFTP به عنوان جایگزین

در شبکه دو پروتکل برای انتقال فایل وجود دارد که به نام های Ftp و sftp می باشند.

FTP یا File Transfer Protocol ، پروتکلی است که جهت انتقال فایل از یک سرور به سرور دیگر استفاده می شود اما این انتقال در بستر امن و secure اتفاق نمی افتد و به راحتی می تواند مورد استراق سمع قرار گیرد.

اما برخلاف استاندارد FTP، پروتکل SFTP یا Secure File Transfer Protocol در یک بستر امن و کاملاً رمزنگاری شده منتقل می شود. در واقع این پروتکل به دلیل امن سازی ، انتقال را در بستر SSH پیاده سازی می کند.

بنابراین، اگر فقط می خواهید اتصال SFTP را مجاز کنید و برنامه FTP را غیرفعال کنید ، مراحل زیر را در WHM / cPanel دنبال کنید.

1.به عنوان کاربر root وارد WHM / cPanel خود شوید.

2.وارد تنظیمات FTP Server Configuration شوید. سپس در بخش TLS Encryption Support، مطابق تصویر ضمیمه (Required (Command را انتخاب نمایید و در آخر بر روی Save کلیک نمایید تا تغییرات اعمال شود.

تصویر(11)

15. امن سازی دسترسی به CPanel و WHM

دسترسی اجباری به CPanel/WHM از طریق اتصال امن (SSL)

به منظور امن سازی ورود به cPanel یا WHM با رمزگذاری مبتنی بر SSL ، این دو مرحله ساده را انجام دهید.

1.ابتدا وارد WHM شوید و سپس به مسیر زیر بروید.

Home → Server Configuration → Tweak Settings.

2.در زبانه redirection ، مطابق تصویر ضمیمه تنظیمات را انجام دهید.

تصویر(12)

غیرفعالسازی ورود به cpanel از طریق CPanel-ID

cpanel به دو صورت اجازه دسترسی به سرور را می دهد.

1.از طریق وارد کردن نام کاربری و رمز عبور 

2.ورود به سرور توسط  CPanel-ID

CPanel-ID به کاربران امکان استفاده از یک نام کاربری و رمز عبور منحصر به فرد را می دهد تا جهت احراز هویت به سرورهای سی پنل متصل شوند تا بتواند از سرویس های سی پنل استفاده نماید. این روش بیشتر برای سازمانهایی مناسب است که یک دیتاسنتر بزرگ را مدیریت می کنند و تکنسین های زیادی دارند و ایجاد یوزر پسورد جداگانه برای هر شخص منطقی نیست. اما اگر تنها یک سرور واحد دارید ، باید آن را غیرفعال کنید.

1.ابتدا وارد WHM شوید و سپس به مسیر زیر بروید.

Home → Security Center → Manage External Authentication.

2.سپس وضعیت cPanel-ID را غیر فعال نمایید.

نتیجه گیری

 با اجرای این 15 نکته به راحتی می توانید امنیت سرور خود را در برابر حملات داخلی و خارجی بالا ببرید. اما توجه بفرمائید که این نکات صرفاً باعث کاهش تعداد تهدیدات برای سرور شما می شود و امنیت سرور تضمین نمی شود. برای بهینه سازی امنیت سیستم خود ، باید با دقت کافی عمل کنید و مرتباً خود را در مورد جدیدترین اتفاقات در دنیای امنیت سرور به روز کنید. با این حال ، تنها با چند ساعت تحقیق در ماه ، می توانید با ویژگی های امنیتی جدیدی که توسط cpanel معرفی می شود، سرور cpanel خود را ایمن بسازید.


دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *