سطح: متوسط تا حرفهای | مناسب برای: مدیران سرور، شرکتهای هاستینگ، مدیران WHM، مدیران سایتهای وردپرسی، کاربران VPS و سرور اختصاصی، و افرادی که میخواهند امنیت سرور cPanel را در برابر Brute Force، بدافزار، آسیبپذیریهای وردپرس و دسترسیهای غیرمجاز افزایش دهند
cPanel و WHM یکی از محبوبترین ترکیبها برای مدیریت هاست لینوکس، اکانتهای میزبانی، ایمیل، DNS، SSL، دیتابیس و فایلهای سایت است. همین محبوبیت باعث میشود سرورهای cPanel همیشه یکی از هدفهای جذاب برای حملات خودکار، Brute Force، اسکن آسیبپذیری، بدافزارهای وردپرسی، حملات روی ایمیل و تلاش برای نفوذ به WHM باشند.
امنیت cPanel فقط با نصب یک فایروال یا تغییر پورت SSH کامل نمیشود. یک سرور سیپنل امن باید چند لایه دفاعی داشته باشد: سیستمعامل بهروز، SSH امن، رمزهای قوی، احراز هویت دومرحلهای، cPHulk، فایروال درست، ModSecurity، اسکن بدافزار، محدودسازی PHP، بکاپ قابل بازیابی، مانیتورینگ لاگها، AutoSSL، ایزولهسازی کاربران و مدیریت منظم آپدیتها.
در این مقاله یک چکلیست حرفهای و عملی برای امنسازی cPanel و WHM آماده کردهایم؛ چکلیستی که هم برای مدیران سرور اختصاصی و VPS کاربرد دارد، هم برای شرکتهایی که سرویس هاست لینوکس، خرید هاست سی پنل یا نمایندگی هاست ارائه میدهند.
اگر هنوز در مرحله انتخاب سرویس هستید، قبل از ورود به تنظیمات فنی، بهتر است بدانید کیفیت زیرساخت و مدیریت امنیت در سرویسهایی مثل هاست، خرید هاست لینوکس، هاست وردپرس ایران و خرید هاست ووکامرس نقش مستقیم در امنیت سایت دارد.
فهرست مطالب
- چرا امنیت cPanel و WHM مهم است؟
- امنیت cPanel یعنی چند لایه دفاعی، نه یک ابزار
- ۱. cPanel، WHM و سیستمعامل را همیشه بهروز نگه دارید
- ۲. دسترسی root و ورودهای مدیریتی را امن کنید
- ۳. SSH را امنسازی کنید
- ۴. سیاست رمز عبور قوی تعریف کنید
- ۵. احراز هویت دومرحلهای را برای WHM و cPanel فعال کنید
- ۶. cPHulk Brute Force Protection را فعال و تنظیم کنید
- ۷. فایروال CSF/LFD یا فایروال معادل را اصولی تنظیم کنید
- ۸. دسترسی WHM و SSH را با IP یا VPN محدود کنید
- ۹. پورتهای غیرضروری را ببندید
- ۱۰. ModSecurity و OWASP CRS را فعال و تنظیم کنید
- ۱۱. اسکن بدافزار و آنتیویروس سرور را جدی بگیرید
- ۱۲. تنظیمات PHP را برای امنیت سختگیرانهتر کنید
- ۱۳. ایزولهسازی کاربران و سطح دسترسی فایلها را بررسی کنید
- ۱۴. پارتیشن tmp را امن کنید
- ۱۵. دسترسی کاربران عادی به Compilerها را محدود کنید
- ۱۶. SSL و TLS را برای WHM، cPanel، Webmail و سایتها اجباری کنید
- ۱۷. امنیت ایمیل، SPF، DKIM و DMARC را تنظیم کنید
- ۱۸. امنیت وردپرس و CMSهای کاربران را فراموش نکنید
- ۱۹. بکاپگیری منظم و قابل بازیابی داشته باشید
- ۲۰. لاگها، هشدارها و مانیتورینگ امنیتی را فعال کنید
- ۲۱. از Security Advisor در WHM استفاده کنید
- ۲۲. برنامه واکنش به رخداد امنیتی داشته باشید
- چکلیست سریع امنیت cPanel
- سوالات متداول
چرا امنیت cPanel و WHM مهم است؟
cPanel فقط یک کنترل پنل ساده نیست. روی یک سرور cPanel معمولاً چندین سایت، ایمیل، دیتابیس، فایل، بکاپ، رکورد DNS، اکانت FTP و اطلاعات حساس مشتریان قرار دارد. اگر WHM یا یکی از اکانتهای cPanel آسیب ببیند، ممکن است فقط یک سایت دچار مشکل نشود؛ بلکه کل سرور و اعتبار IPهای آن تحت تأثیر قرار بگیرد.
یک رخداد امنیتی در سرور cPanel میتواند پیامدهای زیر را داشته باشد:
- هک شدن سایتهای وردپرسی و ووکامرسی
- ارسال اسپم از اکانتهای ایمیل و افت Reputation سرور
- قرار گرفتن IP سرور در بلکلیستهای ایمیل
- آپلود Web Shell و فایلهای مخرب در مسیر کاربران
- دسترسی غیرمجاز به فایلها و دیتابیسها
- تغییر DNS یا ریدایرکت کاربران به سایتهای مخرب
- حذف یا رمزگذاری فایلها در حملات باجافزاری
- از دست رفتن اعتماد مشتریان و آسیب به سئو
به همین دلیل، امنیت سرور cPanel باید بهصورت دورهای بررسی شود؛ نه فقط بعد از هک شدن یا دریافت هشدار از دیتاسنتر.
امنیت cPanel یعنی چند لایه دفاعی، نه یک ابزار
یکی از اشتباهات رایج این است که مدیر سرور تصور میکند نصب CSF یا Imunify360 بهتنهایی کافی است. این ابزارها بسیار مفید هستند، اما امنیت واقعی زمانی ایجاد میشود که چند لایه دفاعی کنار هم قرار بگیرند.
لایههای اصلی امنیت cPanel عبارتاند از:
- امنیت سیستمعامل و آپدیتها
- امنیت دسترسی SSH و WHM
- احراز هویت قوی و 2FA
- محافظت در برابر Brute Force
- فایروال شبکه و محدودسازی پورتها
- WAF و ModSecurity برای درخواستهای وب
- اسکن بدافزار و فایلهای آلوده
- ایزولهسازی کاربران و محدودسازی PHP
- SSL، TLS و رمزنگاری ارتباطات
- بکاپ امن، خارج از سرور و قابل بازیابی
- مانیتورینگ لاگها و هشدارهای امنیتی
اگر یکی از این لایهها ضعیف باشد، مهاجم ممکن است از همان نقطه وارد شود. بنابراین این مقاله را بهعنوان یک چکلیست دورهای ببینید، نه فقط یک آموزش یکباره.
۱. cPanel، WHM و سیستمعامل را همیشه بهروز نگه دارید
اولین اصل امنیت cPanel، بهروز بودن خود cPanel & WHM، سیستمعامل و نرمافزارهای وابسته است. نسخههای قدیمی ممکن است آسیبپذیریهای شناختهشده داشته باشند و توسط اسکنرهای خودکار شناسایی شوند.
برای بررسی نسخه cPanel از SSH:
/usr/local/cpanel/cpanel -Vبرای اجرای آپدیت cPanel:
/usr/local/cpanel/scripts/upcpدر WHM نیز میتوانید به مسیر زیر بروید:
WHM > Server Configuration > Update Preferencesپیشنهادهای مهم:
- آپدیت خودکار cPanel را فعال کنید، مگر اینکه سیاست تست جداگانه دارید.
- سیستمعامل را مرتب بهروزرسانی کنید.
- نسخههای EOL مثل CentOS 7 را برای آینده جدی بگیرید و برای مهاجرت برنامه داشته باشید.
- پلاگینهای WHM، ابزارهای امنیتی و افزونههای جانبی را هم بهروز نگه دارید.
اگر سرور شما برای میزبانی سایتهای حساس استفاده میشود، داشتن یک برنامه منظم برای آپدیت، تست و rollback ضروری است. این موضوع برای ارائهدهندگان هاست نمایندگی و شرکتهایی که چندین اکانت مشتری روی یک سرور دارند اهمیت بیشتری دارد.
۲. دسترسی root و ورودهای مدیریتی را امن کنید
دسترسی root در WHM و SSH حساسترین سطح دسترسی روی سرور است. اگر رمز root لو برود یا ورود مدیریتی بدون محدودیت در دسترس اینترنت باشد، کل سرور در خطر است.
اقدامات پیشنهادی:
- برای root رمز بسیار قوی و منحصربهفرد استفاده کنید.
- ورود مستقیم root از SSH را در صورت امکان غیرفعال کنید.
- یک کاربر sudo محدود و امن برای مدیریت روزمره بسازید.
- ورود WHM را با 2FA محافظت کنید.
- دسترسی WHM و SSH را به IPهای مدیریتی یا VPN محدود کنید.
- رمزهای مدیریتی را در مرورگر یا فایلهای متنی ذخیره نکنید.
در فایل تنظیمات SSH میتوانید ورود مستقیم root را محدود کنید:
nano /etc/ssh/sshd_configمقدار پیشنهادی:
PermitRootLogin noبعد از تغییر تنظیمات، سرویس SSH را reload یا restart کنید. قبل از بستن نشست فعلی، حتماً ورود با کاربر جدید را تست کنید تا دسترسی سرور را از دست ندهید.
۳. SSH را امنسازی کنید
SSH یکی از مهمترین درگاههای مدیریت سرور است. روی بسیاری از سرورها، حملات Brute Force دائماً روی پورت SSH انجام میشود. هدف اصلی این حملات، پیدا کردن رمز ضعیف یا کاربر قابل حدس است.
چکلیست امنسازی SSH:
- ورود با کلید SSH را جایگزین ورود با رمز کنید.
- در صورت امکان PasswordAuthentication را غیرفعال کنید.
- پورت SSH را فقط برای IPهای مدیریتی باز بگذارید.
- دسترسی root مستقیم را محدود کنید.
- از Fail2Ban، CSF/LFD یا cPHulk برای کاهش حملات استفاده کنید.
- لاگهای SSH را مرتب بررسی کنید.
نمونه تنظیمات سختگیرانهتر در /etc/ssh/sshd_config:
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
LoginGraceTime 30اگر میخواهید پورت SSH را تغییر دهید، حتماً قبل از restart کردن SSH، پورت جدید را در فایروال باز کنید. در غیر این صورت ممکن است دسترسی شما قطع شود.
۴. سیاست رمز عبور قوی تعریف کنید
رمز ضعیف هنوز یکی از سادهترین راههای نفوذ به cPanel، WHM، ایمیل و FTP است. حتی اگر فایروال و WAF داشته باشید، یک رمز ضعیف میتواند کل زنجیره امنیت را بیاثر کند.
در WHM به مسیر زیر بروید:
WHM > Security Center > Password Strength Configurationپیشنهادها:
- حداقل قدرت رمز برای cPanel، WHM، FTP و Email را بالا تنظیم کنید.
- رمزهای تکراری یا قابل حدس را نپذیرید.
- برای اکانتهای مهم از Password Manager استفاده کنید.
- رمز root، WHM، دیتابیس و ایمیلهای مهم را جداگانه نگه دارید.
- بعد از رخداد امنیتی، همه رمزهای مرتبط را تغییر دهید.
برای مشتریانی که از هاست اشتراکی یا هاست لینوکس ایران استفاده میکنند، آموزش انتخاب رمز قوی و عدم استفاده مجدد از رمز ایمیل در سایتهای دیگر بسیار مهم است.
۵. احراز هویت دومرحلهای را برای WHM و cPanel فعال کنید
فعالسازی 2FA یکی از مؤثرترین کارها برای کاهش ریسک سرقت رمز است. حتی اگر رمز کاربر لو برود، مهاجم برای ورود به کد یکبارمصرف نیاز دارد.
برای فعالسازی 2FA در WHM:
WHM > Security Center > Two-Factor Authenticationپیشنهادهای عملی:
- 2FA را برای root و همه کاربران WHM اجباری کنید.
- برای اکانتهای حساس cPanel نیز 2FA را فعال کنید.
- روش نگهداری امن backup codeها را مستند کنید.
- در زمان تغییر گوشی یا خروج کارمند، دسترسیها را بازبینی کنید.
برای سایتهای فروشگاهی، شرکتی و اکانتهایی که دیتابیس مشتریان دارند، 2FA دیگر یک گزینه لوکس نیست؛ یک حداقل امنیتی است.
۶. cPHulk Brute Force Protection را فعال و تنظیم کنید
cPHulk ابزار داخلی cPanel برای مقابله با حملات Brute Force است. این ابزار تلاشهای ناموفق ورود را رصد میکند و میتواند IP یا اکانت مهاجم را بهصورت موقت یا دائم محدود کند.
برای فعالسازی:
WHM > Security Center > cPHulk Brute Force Protectionتنظیمات پیشنهادی:
- فعالسازی محدودیت برای WHM، cPanel، Webmail، SSH و FTP
- تعریف threshold منطقی برای failed login
- افزودن IPهای مدیریتی به whitelist با احتیاط
- بررسی دورهای گزارش IPهای مسدودشده
- هماهنگی cPHulk با CSF/LFD برای جلوگیری از تداخل
اگر threshold را بیش از حد سختگیرانه تنظیم کنید، ممکن است کاربران واقعی هم lock شوند. اگر خیلی آزاد باشد، جلوی حملات را بهخوبی نمیگیرد. بنابراین بعد از فعالسازی، لاگها را بررسی و تنظیمات را tune کنید.
۷. فایروال CSF/LFD یا فایروال معادل را اصولی تنظیم کنید
روی بیشتر سرورهای cPanel، ترکیب CSF و LFD یکی از رایجترین انتخابها برای فایروال و تشخیص login failure است. CSF ترافیک ورودی و خروجی را کنترل میکند و LFD رفتارهای مشکوک مثل تلاشهای ورود ناموفق، مصرف غیرعادی منابع یا پردازشهای مشکوک را گزارش میدهد.
موارد مهم در تنظیم فایروال:
- فقط پورتهای لازم را باز بگذارید.
- SSH و WHM را تا حد امکان به IPهای مشخص محدود کنید.
- پورتهای قدیمی و ناامن مثل Telnet را ببندید.
- هشدارهای LFD را فعال کنید.
- قوانین خروجی را هم بررسی کنید، نه فقط ورودی.
- IPهای trusted را مستند و محدود نگه دارید.
پورتهای رایج cPanel شامل موارد زیر هستند، اما لازم نیست همه آنها برای همه اینترنت باز باشند:
| سرویس | پورت رایج | توضیح امنیتی |
|---|---|---|
| HTTP | 80 | برای وبسایتها لازم است |
| HTTPS | 443 | برای وبسایتهای امن لازم است |
| SSH | 22 یا پورت سفارشی | به IPهای مدیریتی محدود شود |
| WHM | 2087 | به IP/VPN مدیریتی محدود شود |
| cPanel | 2083 | در هاست اشتراکی ممکن است عمومی باشد؛ 2FA مهم است |
| Webmail | 2096 | SSL و رمز قوی ضروری است |
| SMTP/IMAP/POP3 | 465، 587، 993، 995 | نسخههای امن را ترجیح دهید |
۸. دسترسی WHM و SSH را با IP یا VPN محدود کنید
یکی از بهترین کارها برای کاهش سطح حمله این است که اصلاً اجازه ندهید همه اینترنت صفحه ورود WHM یا SSH را ببینند. اگر تیم مدیریتی شما IP ثابت یا VPN دارد، WHM و SSH را فقط به همان محدودهها محدود کنید.
در WHM میتوانید از مسیر زیر استفاده کنید:
WHM > Security Center > Host Access Controlنمونه سیاست منطقی:
- اجازه دسترسی WHM فقط از IPهای دفتر، VPN یا مدیران
- اجازه SSH فقط از IPهای مدیریتی
- باز گذاشتن پورتهای وب فقط برای عموم کاربران
- ثبت و مستندسازی همه IPهای whitelist شده
اگر IP ثابت ندارید، استفاده از VPN مدیریتی یا Bastion Host میتواند راهکار حرفهایتری باشد.
۹. پورتهای غیرضروری را ببندید
هر پورت باز، یک سطح حمله جدید است. روی سرور cPanel فقط پورتهایی را باز بگذارید که واقعاً برای سرویسدهی لازم هستند.
برای مشاهده پورتهای listen شده:
ss -tulpnیا:
netstat -tulpnپیشنهادها:
- Telnet را هرگز باز نگذارید.
- FTP ناامن را با SFTP یا FTPS جایگزین کنید.
- پورت دیتابیس MySQL را برای اینترنت عمومی باز نکنید، مگر با محدودیت بسیار دقیق.
- پورتهای پنل مدیریتی را به IPهای مورد اعتماد محدود کنید.
- سرویسهای غیرضروری سیستمعامل را غیرفعال کنید.
برای سرورهایی که فقط میزبانی وب انجام میدهند، باز بودن پورتهای غیرمرتبط مثل سرویسهای توسعه، دیتابیس عمومی یا ابزارهای debug میتواند خطرناک باشد.
۱۰. ModSecurity و OWASP CRS را فعال و تنظیم کنید
ModSecurity یک Web Application Firewall یا WAF است که درخواستهای HTTP را قبل از رسیدن به اپلیکیشن بررسی میکند. ترکیب ModSecurity با OWASP Core Rule Set میتواند جلوی بسیاری از حملات رایج مثل SQL Injection، XSS، Path Traversal و payloadهای مشکوک را بگیرد.
در WHM مسیر کلی:
WHM > Security Center > ModSecurity Configurationپیشنهادها:
- ModSecurity را برای همه دامنهها فعال کنید.
- از Rule Set معتبر مثل OWASP CRS استفاده کنید.
- False Positiveها را با دقت tune کنید، نه اینکه کل WAF را غیرفعال کنید.
- برای مسیرهای حساس مثل wp-login.php و xmlrpc.php قوانین سختگیرانهتر بگذارید.
- لاگهای ModSecurity را مرتب بررسی کنید.
نکته مهم: ModSecurity ممکن است گاهی درخواستهای سالم را هم مسدود کند. در این حالت، راه درست این نیست که کل Rule ID را برای کل سرور خاموش کنید؛ بهتر است استثناها را تا حد امکان محدود به دامنه، مسیر یا پارامتر مشخص تعریف کنید.
۱۱. اسکن بدافزار و آنتیویروس سرور را جدی بگیرید
در سرورهای cPanel، بخش زیادی از آلودگیها از طریق وردپرس، افزونههای قدیمی، قالبهای نالشده، فایلمنیجر، FTP لو رفته یا فرمهای آپلود رخ میدهد. بنابراین اسکن بدافزار باید بخشی از برنامه امنیتی شما باشد.
ابزارهای رایج:
- Imunify360 برای محافظت چندلایه، WAF، Malware Scanner و Proactive Defense
- ClamAV برای اسکن پایه فایلها و ایمیلها
- ابزارهای امنیتی وردپرس برای تشخیص تغییر فایلها
- اسکن اختصاصی مسیرهای upload و tmp
چکلیست اسکن:
- اسکن روزانه home directoryها
- اسکن مسیرهای
public_htmlوwp-content/uploads - اسکن فایلهای بکاپ قبل از restore
- اسکن mailboxes در صورت گزارش اسپم یا فیشینگ
- بررسی فایلهای PHP مشکوک در مسیرهای upload
اگر سایتهای وردپرسی زیادی میزبانی میکنید، استفاده از اسکنر پیشرفته و مانیتورینگ تغییر فایلها برای کاهش زمان تشخیص آلودگی بسیار مهم است.
۱۲. تنظیمات PHP را برای امنیت سختگیرانهتر کنید
بسیاری از نفوذها پس از پیدا شدن آسیبپذیری در یک سایت PHP، به اجرای دستورات سیستمی، آپلود shell یا خواندن فایلهای سایر مسیرها منجر میشوند. تنظیمات PHP میتواند این ریسک را کاهش دهد.
موارد پیشنهادی:
- غیرفعال کردن functionهای خطرناک مثل
exec،shell_exec،system،passthru،proc_openوpopenبرای اکانتهایی که نیاز ندارند - محدود کردن
upload_max_filesizeوpost_max_size - فعالسازی open_basedir یا ایزولهسازی معادل در صورت سازگاری
- اجرای PHP به نام کاربر همان اکانت، نه یک کاربر مشترک
- استفاده از PHP-FPM per account در محیطهای مناسب
- حذف نسخههای قدیمی PHP که دیگر پشتیبانی نمیشوند
برای سایتهایی که روی بهترین هاست وردپرس یا خرید هاست ووکامرس میزبانی میشوند، سازگاری تنظیمات PHP با افزونهها و قالبها هم مهم است. سختگیری امنیتی باید با تست عملکرد سایت همراه باشد.
۱۳. ایزولهسازی کاربران و سطح دسترسی فایلها را بررسی کنید
در سرورهای اشتراکی، یکی از خطرناکترین سناریوها این است که آلودگی یک اکانت بتواند به فایلهای اکانتهای دیگر دسترسی پیدا کند. برای جلوگیری از این مشکل، باید isolation بین کاربران جدی گرفته شود.
راهکارهای مهم:
- استفاده از CloudLinux و CageFS برای ایزولهسازی کاربران
- فعالسازی FileProtect در cPanel در صورت نیاز
- تنظیم درست permission فایلها و پوشهها
- اجرای PHP تحت همان user اکانت
- جلوگیری از shared writable directories بین کاربران
- بررسی فایلهایی با permission خطرناک مثل 777
سطح دسترسی پیشنهادی عمومی:
Directories: 755
Files: 644
Sensitive config files: 600 or stricter when possibleالبته مقدار دقیق ممکن است بسته به PHP handler، نوع اپلیکیشن و ساختار هاست متفاوت باشد.
۱۴. پارتیشن tmp را امن کنید
مسیرهای موقت مثل /tmp و /var/tmp در بسیاری از حملات برای ذخیره payload یا اجرای فایلهای موقت استفاده میشوند. امنسازی tmp میتواند جلوی بخشی از سوءاستفادهها را بگیرد.
cPanel اسکریپت مخصوصی برای امنسازی tmp دارد:
/usr/local/cpanel/scripts/securetmpبرای مشاهده راهنما:
/usr/local/cpanel/scripts/securetmp --helpپیشنهادها:
- برای tmp پارتیشن یا mount جداگانه در نظر بگیرید.
- گزینههای noexec، nosuid و nodev را در صورت سازگاری بررسی کنید.
- فایلهای مشکوک در tmp را مانیتور کنید.
- مراقب باشید بعضی اپلیکیشنها ممکن است به اجرای فایل در tmp نیاز داشته باشند؛ قبل از اعمال در production تست کنید.
۱۵. دسترسی کاربران عادی به Compilerها را محدود کنید
وجود compilerهایی مثل gcc برای همه کاربران یک سرور اشتراکی میتواند ریسک را افزایش دهد. اگر مهاجم به یک اکانت محدود دسترسی پیدا کند، ممکن است بتواند ابزارهای مخرب را روی همان سرور compile و اجرا کند.
در WHM مسیر کلی:
WHM > Security Center > Compiler Accessپیشنهادها:
- دسترسی compiler را برای کاربران غیرمجاز غیرفعال کنید.
- فقط در صورت نیاز واقعی و موقت، دسترسی بدهید.
- بعد از پایان کار توسعه یا نصب، دسترسی را دوباره ببندید.
- لاگ استفاده از compilerها را بررسی کنید.
برای سرورهای هاست اشتراکی، فعال بودن compiler برای همه کاربران معمولاً ضرورتی ندارد.
۱۶. SSL و TLS را برای WHM، cPanel، Webmail و سایتها اجباری کنید
ارتباط با WHM، cPanel، Webmail و سایتها باید از طریق HTTPS انجام شود. ارسال رمزهای مدیریتی یا ایمیل از طریق ارتباط ناامن قابل قبول نیست.
در WHM این موارد را بررسی کنید:
WHM > Tweak Settings > Require SSL for cPanel Services
WHM > SSL/TLS > Manage AutoSSLپیشنهادها:
- Require SSL برای سرویسهای cPanel را فعال کنید.
- AutoSSL را برای دامنهها فعال کنید.
- TLS 1.0 و TLS 1.1 را غیرفعال کنید.
- فقط TLS 1.2 و TLS 1.3 را مجاز کنید.
- گواهیهای SSL منقضیشده را مانیتور کنید.
- از redirect درست HTTP به HTTPS برای سایتها استفاده کنید.
برای آشنایی بیشتر با SSL، مقاله SSL چیست؟ و صفحه خرید SSL را ببینید. اگر برای سایتهای مشتریان سرویس میزبانی ارائه میکنید، وجود SSL معتبر روی خرید هاست اشتراکی و سرویسهای فروشگاهی ضروری است.
۱۷. امنیت ایمیل، SPF، DKIM و DMARC را تنظیم کنید
سرورهای cPanel معمولاً سرویس ایمیل هم ارائه میدهند. اگر امنیت ایمیل ضعیف باشد، ممکن است اکانتها هک شوند، اسپم ارسال شود، IP سرور در بلکلیست قرار بگیرد و ایمیلهای سالم مشتریان هم به مقصد نرسد.
چکلیست امنیت ایمیل:
- رمزهای قوی برای همه اکانتهای ایمیل
- محدودیت ارسال ساعتی یا روزانه برای اکانتها
- فعالسازی SPF و DKIM از Email Deliverability در cPanel
- تعریف DMARC برای دامنههای مهم
- غیرفعال کردن پروتکلهای ناامن در صورت امکان
- مانیتور کردن mail queue و ارسالهای غیرعادی
- اسکن attachmentها و ایمیلهای مشکوک
برای مطالعه بیشتر درباره ارتباط DNS و ایمیل، مقاله DNS و ایمیل و مقاله ایمیل سازمانی چیست؟ را بخوانید.
۱۸. امنیت وردپرس و CMSهای کاربران را فراموش نکنید
در بسیاری از سرورهای cPanel، نفوذ از خود WHM شروع نمیشود؛ از یک سایت وردپرسی قدیمی، افزونه نالشده یا رمز ضعیف مدیر وردپرس شروع میشود. بعد از آن مهاجم از همان اکانت برای ارسال اسپم، آپلود shell یا آلودهسازی فایلها استفاده میکند.
برای امنیت وردپرس روی سرور cPanel:
- WordPress Toolkit را برای بررسی امنیت و آپدیتها فعال کنید.
- افزونهها و قالبهای نالشده را حذف کنید.
- هسته وردپرس، قالب و افزونهها را بهروز نگه دارید.
- wp-login.php و xmlrpc.php را در سایتهای حساس محدود کنید.
- سطح دسترسی فایلها را بررسی کنید.
- فایلهای PHP در مسیر uploads را شناسایی و محدود کنید.
- برای سایتهای فروشگاهی، لاگ ورود و تغییرات مدیران را مانیتور کنید.
برای سایتهای وردپرسی، استفاده از هاست وردپرس آلمان یا خرید هاست وردپرس ایران زمانی ارزشمند است که تنظیمات امنیتی، بکاپ، منابع و پشتیبانی هم متناسب با وردپرس باشد.
۱۹. بکاپگیری منظم و قابل بازیابی داشته باشید
بکاپ آخرین خط دفاعی شماست. اگر سایتها آلوده شوند، دیتابیس خراب شود، فایلها حذف شوند یا حمله باجافزاری رخ دهد، بدون بکاپ سالم، بازیابی واقعی ممکن نیست.
چکلیست بکاپ:
- بکاپ روزانه یا متناسب با حساسیت دادهها
- نگهداری بکاپ خارج از همان سرور
- تست دورهای restore
- نگهداری چند نسخه در بازههای زمانی مختلف
- اسکن بکاپها قبل از restore برای جلوگیری از بازگردانی آلودگی
- رمزنگاری بکاپهای حساس
- مانیتور کردن موفق یا ناموفق بودن بکاپها
بکاپی که restore نشده و تست نشده باشد، فقط یک امید است؛ نه یک برنامه بازیابی. اگر بهعنوان ارائهدهنده نمایندگی هاست لینوکس فعالیت میکنید، سیاست بکاپ باید شفاف، قابل اعتماد و مستند باشد.
۲۰. لاگها، هشدارها و مانیتورینگ امنیتی را فعال کنید
امنیت بدون مانیتورینگ یعنی دیر فهمیدن مشکل. بسیاری از حملات قبل از موفق شدن، نشانههایی در لاگها دارند: تلاشهای ورود ناموفق، درخواستهای عجیب، ارسال ایمیل غیرعادی، اجرای فایلهای مشکوک یا مصرف ناگهانی CPU.
موارد قابل مانیتور:
- لاگ SSH
- لاگ cPHulk
- لاگ CSF/LFD
- لاگ ModSecurity
- mail queue و mail log
- تغییر فایلهای حساس
- مصرف CPU، RAM، Disk و I/O
- تعداد پردازشهای مشکوک
دستورهای مفید:
tail -f /var/log/secure
tail -f /usr/local/cpanel/logs/access_log
tail -f /usr/local/cpanel/logs/login_log
tail -f /var/log/exim_mainlogبرای مانیتورینگ حرفهای میتوانید از ابزارهایی مثل Zabbix، Netdata، Grafana، Imunify360، CSF/LFD alerts یا سیستمهای SIEM استفاده کنید.
۲۱. از Security Advisor در WHM استفاده کنید
WHM یک ابزار داخلی به نام Security Advisor دارد که برخی تنظیمات امنیتی سرور را بررسی و پیشنهادهایی برای بهبود ارائه میکند.
مسیر:
WHM > Security Center > Security Advisorاین ابزار جایگزین audit امنیتی کامل نیست، اما برای شروع و بررسی موارد پایه بسیار مفید است. پیشنهاد میشود بعد از نصب سرور، بعد از هر تغییر مهم و بهصورت دورهای Security Advisor را اجرا کنید.
مواردی که معمولاً بررسی میشود شامل وضعیت آپدیت، تنظیمات امنیتی، SSL، سرویسها، رمزها و برخی هشدارهای سطح سیستم است.
۲۲. برنامه واکنش به رخداد امنیتی داشته باشید
حتی با بهترین تنظیمات، احتمال رخداد امنیتی صفر نیست. چیزی که یک مدیر حرفهای را متمایز میکند، داشتن برنامه واکنش به رخداد است.
اگر سرور cPanel مشکوک به نفوذ شد:
- شتابزده همه چیز را حذف نکنید؛ ابتدا شواهد را حفظ کنید.
- اکانت یا دامنه آلوده را موقتاً محدود کنید.
- لاگهای مربوطه را ذخیره کنید.
- فایلهای تغییرکرده اخیر را بررسی کنید.
- رمزهای cPanel، FTP، ایمیل، دیتابیس و WHM را تغییر دهید.
- بدافزارها و shellها را پاکسازی کنید.
- آسیبپذیری اولیه را پیدا و رفع کنید.
- از بکاپ سالم restore کنید، اگر پاکسازی مطمئن نیست.
- بعد از پاکسازی، مانیتورینگ سختگیرانهتری فعال کنید.
در رخدادهای جدی، فقط حذف فایل مشکوک کافی نیست. باید بدانید مهاجم از کجا وارد شده، چه چیزی تغییر کرده و آیا دسترسی پایداری مثل backdoor باقی گذاشته یا نه.
چکلیست سریع امنیت cPanel
| بخش | اقدام ضروری | اولویت |
|---|---|---|
| آپدیت | فعالسازی آپدیت cPanel، WHM، سیستمعامل و افزونهها | خیلی بالا |
| WHM | رمز قوی، 2FA و محدودسازی IP | خیلی بالا |
| SSH | کلید SSH، محدودسازی root، محدودسازی IP | خیلی بالا |
| Brute Force | فعالسازی و تنظیم cPHulk | خیلی بالا |
| Firewall | تنظیم CSF/LFD و بستن پورتهای غیرضروری | خیلی بالا |
| WAF | فعالسازی ModSecurity و OWASP CRS | بالا |
| Malware | اسکن منظم فایلها، uploadها و ایمیلها | بالا |
| PHP | غیرفعالسازی توابع خطرناک و حذف نسخههای قدیمی PHP | بالا |
| Isolation | CloudLinux/CageFS یا تنظیمات معادل برای جداسازی کاربران | بالا |
| SSL | فعالسازی AutoSSL، اجباری کردن HTTPS و حذف TLS قدیمی | بالا |
| SPF، DKIM، DMARC، محدودیت ارسال و مانیتورینگ mail queue | بالا | |
| Backup | بکاپ خارج از سرور و تست restore | خیلی بالا |
| Monitoring | بررسی لاگها، هشدارهای LFD و مانیتورینگ منابع | بالا |
جمعبندی
امنیت cPanel و WHM یک تنظیم واحد نیست؛ مجموعهای از اقدامات فنی، مدیریتی و عملیاتی است. برای داشتن یک سرور cPanel امن، باید از سیستمعامل و cPanel بهروز شروع کنید، دسترسی SSH و WHM را محدود کنید، رمزهای قوی و 2FA را اجباری کنید، cPHulk و فایروال را تنظیم کنید، ModSecurity و اسکن بدافزار را فعال کنید و برای همه چیز بکاپ قابل بازیابی داشته باشید.
بخش مهمی از امنیت سرورهای cPanel به سایتهای کاربران هم مربوط است. وردپرسهای قدیمی، قالبهای نالشده، افزونههای آسیبپذیر و رمزهای ضعیف میتوانند کل IP و اعتبار سرور را تحت تأثیر قرار دهند. بنابراین اگر سرویس خرید هاست اشتراکی، خرید هاست وردپرس ارزان یا نمایندگی هاست ایران ارائه میدهید، امنیت باید هم در سطح سرور و هم در سطح اکانتها مدیریت شود.
در نهایت، بهترین رویکرد این است که این چکلیست را بهصورت دورهای اجرا کنید: بعد از نصب سرور، بعد از تغییرات مهم، بعد از آپدیتهای اصلی، و حداقل ماهی یکبار برای audit امنیتی. امنیت cPanel زمانی پایدار میماند که به یک فرآیند دائمی تبدیل شود، نه یک کار مقطعی.
سوالات متداول
مهمترین اقدام برای افزایش امنیت cPanel چیست؟
هیچ اقدام واحدی کافی نیست، اما اگر بخواهیم اولویتبندی کنیم، امنسازی دسترسیها مهمترین نقطه شروع است: رمزهای قوی، 2FA، محدودسازی WHM و SSH به IPهای مورد اعتماد، فعالسازی cPHulk و تنظیم فایروال.
آیا cPHulk برای جلوگیری از Brute Force کافی است؟
cPHulk بسیار مفید است، اما کافی نیست. بهتر است همراه با CSF/LFD، رمزهای قوی، 2FA، محدودسازی IP و مانیتورینگ لاگها استفاده شود.
آیا تغییر پورت SSH امنیت را کامل میکند؟
خیر. تغییر پورت فقط حجم اسکنهای خودکار را کاهش میدهد. امنیت اصلی با کلید SSH، غیرفعال کردن ورود مستقیم root، محدودسازی IP و مانیتورینگ ایجاد میشود.
آیا نصب CSF روی سرور cPanel ضروری است؟
ضروری به معنای اجباری نیست، اما در بسیاری از سرورهای cPanel، CSF/LFD یکی از رایجترین و کاربردیترین ابزارها برای مدیریت فایروال، هشدار ورودهای ناموفق و کنترل ترافیک است.
ModSecurity باعث خطای 403 میشود؛ باید آن را خاموش کنیم؟
خیر، خاموش کردن کامل ModSecurity معمولاً تصمیم خوبی نیست. بهتر است Rule ID مشکلساز را بررسی کنید و در صورت نیاز، استثنا را فقط برای دامنه، مسیر یا پارامتر مشخص اعمال کنید.
برای امنیت سایتهای وردپرسی روی cPanel چه کار کنیم؟
وردپرس، قالب و افزونهها را بهروز نگه دارید، قالب نالشده نصب نکنید، از رمز قوی و 2FA استفاده کنید، فایلهای upload را بررسی کنید، wp-login و xmlrpc را در سایتهای حساس محدود کنید و بکاپ منظم داشته باشید.
آیا AutoSSL برای همه سایتها کافی است؟
برای بسیاری از سایتها AutoSSL کافی است، اما باید تمدید آن مانیتور شود. سایتهای شرکتی یا فروشگاهی ممکن است بسته به نیاز اعتماد تجاری، از SSL پولی یا OV/EV استفاده کنند.
هر چند وقت یکبار باید سرور cPanel را اسکن کنیم؟
برای سرورهای عمومی و هاست اشتراکی، اسکن روزانه مسیرهای سایت و uploadها توصیه میشود. ایمیلها و بکاپهای restore شده هم باید متناسب با حجم و حساسیت سرور بررسی شوند.
آیا بکاپ روی همان سرور کافی است؟
خیر. بکاپ روی همان سرور در برابر خرابی دیسک، حذف اکانت، نفوذ کامل یا باجافزار کافی نیست. باید بکاپ خارج از سرور و قابل بازیابی داشته باشید.
Security Advisor در WHM کافی است؟
Security Advisor برای بررسی اولیه بسیار مفید است، اما جایگزین hardening کامل، مانیتورینگ، اسکن بدافزار، audit دسترسیها و تست restore بکاپ نیست.
