whmcs

آموزش کامل تامین امنیت whmcs

WHMCS Further Security Steps

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

توجه داشته باشید که این آموزش، ترجمه آموزش تامین امنیت whmcs از سایت اصلی آن است. کاملا معتبر بوده و هیچگونه مورد اضافی در آن وجود ندارد.

مشاهده منبع : https://docs.whmcs.com/Further_Security_Steps

توجه داشته باشید که قبل از شروع کار توصیه می شود حتما از whmcs خود بصورت کامل بکاپ بگیرید تا در صورت نیاز و بروز مشکل بتوانید آنرا بازگردانی نمایید. مجموعه میزبان فا هیچگونه مسئولیتی در قبال سوء برداشت یا انجام اشتباه آموزشهای زیر نخواهد داشت.

تامین امنیت WHMCS

همانطور که گفته شد آموزش های راجع به تامین امنیت whmcs از منبع اصلی ارائه می شود که در زیر به آنها اشاره شده است:

  • امن سازی پوشه های قابل ویرایش whmcs
  • امن سازی فایل پیکربندی configuration.php
  • انتقال پوشه Crons به ریشه بالاتر
  • محدودسازی دسترسی به آی پی به مسیر مدیریت whmcs
  • تغییر نام مسیر مدیریتی whmcs
  • تنظیم سطح دسترسی های دیتابیس whmcs
  • استفاده از گواهی امنیتی SSL

در ادامه به تشریح و آموزش موارد فوق خواهیم پرداخت.

امن سازی پوشه های قابل ویرایش

سه پوشه attachments , downloads , templates_c دایرکتوری های قابل ویرایش هستند. به این معنی که محتوای داخل آنها ممکن است بواسطه هکرها مورد تغییر یا نفوذ قرار گرفته و موجب بروز مشکلات امنیتی شود. دایرکتوری attachments محلی است که پیوست های کاربران در آنجا ذخیره می شود. در نظیر بگیرید که هگ اگر بتواند کدهای آلوده خود را در این مسیر آپلود نماید و آنرا اجرا کند چه مشکل بزرگی ایجاد خواهد شد. با انتقال این پوشه با رده بالاتر، در صورتی که آپلود کدهای آلوده نیز صورت گیرد هکر دسترسی اجرای آنرا نخواهد داشت و به این طریق امنیت حفظ خواهد شد. دایرکتوری های templates_c و downloads نیز چنین حالتی دارند اما با این تفاوت که امکان نفوذ در آنها بواسطه تزریق کدهای SQL مقدور است. پس نتیجه می گیریم که این سه دایرکتوری حتما باید از دسترسی عموم خارج و به ریشه بالا منتقل شوند. برای اینکار می بایست بصورت زیر اقدام نمایید:

  1. وارد هاست شده و به مسیر اصلی نصب شده whmcs بروید.
  2. سه دایرکتوری attachments , downloads , templates_c را مسیر home منتقل کنید.
    1. برای نظم بیشتر می توانید آنها را داخل یک پوشه در home منتقل کنید.
  3. فایل configuration.php را باز کرده و کدهای زیر را در آن وارد نمایید.

$attachments_dir = “/home/username/attachments/”;
$downloads_dir = “/home/username/downloads/”;
$templates_compiledir = “/home/username/templates_c/”;

بجای username می بایست نام کاربری هاست را وارد نمایید. برای مثال mizbanfa . در اینصورت بصورت زیر خواهد بود:

$attachments_dir = “/home/mizbanfa/attachments/”;
$downloads_dir = “/home/mizbanfa/downloads/”;
$templates_compiledir = “/home/mizbanfa/templates_c/”;

همچنین اگر این سه فولدر را در دراخل فولدر دیگری (مثلا my3folder) در مسیر home قرار داده اید باید بصورت زیر ویرایش کنید:

$attachments_dir = “/home/mizbanfa/my3folder/attachments/”;
$downloads_dir = “/home/mizbanfa/my3folder/downloads/”;
$templates_compiledir = “/home/mizbanfa/my3folder/templates_c/”;

پس از انجام اینکار اگر whmcs بدون پیغام خطا نمایش داده می شود به این معنی است که کار را به درستی انجام داده اید. در غیر اینصورت اقدامات انجام شده را به دقت بررسی نمایید. در این مواقع معمولا علت این است که ویرایش یا جاگذاری کدها در فایل پیکربندی whmcs به درستی انجام نشده است و می بایست مورد بازبینی قرار گیرد.

توجه داشته باشید که سطح دسترسی دایرکتوری های منتقل شده فوق را که 777 است بر روی 755 تنظیم کنید. سطح دسترسی 777 برای کارساز تعاملی قدیمی و منسوخ شده وب سرور است. ممکن است با سطح دسترسی 777 با پیغام خطای Internal Server Error مواجه شوید.

امن سازی فایل configuration.php

برای اینکار کافیست سطح دسترسی فایل configuration.php را بر روی 400 تنظیم نمایید. اگر پیغام خطایی مشاهده کردید که با کارسازهای جدید وب سرور بعید است سطح دسترسی آنرا بر روی 444 یا 440 تنظیم نمایید. همچنین راهکار دیگر که تکمیل کننده تامین امنیت whmcs خواهد بود محدود کردن دسترسی به فایل configuration.php به آی پی است.

برای اینکار مقدار زیر را در فایل htaccess وارد نمایید:

<Files configuration.php>
Order allow, deny
Deny from all
</Files>

توجه داشته باشید که کد فوق بصورت پیشنهاد توسط میزبان فا برای افزایش امنیت whmcs ارائه شده است. در سایت اصلی تنها به تنظیم سطح دسترسی فایل configuration.php اشاره شده است.

انتقال پوشه Crons به ریشه بالاتر

برای بالا بردن و تامین امنیت whmcs بهتر است فولدر Crons را به ریشه بالاتر منتقل نمایید. برای اینکار بصورت زیر اقدام نمایید:

  1. دایرکتوری crons را به ریشه home منتقل نمایید.
  2. پس از انتقال، وارد دایرکتوری crons در مسیر home شده و وارد حالت ویرایش فایل config.php شوید.
  3. مقدار زیر را در انتهای فایل config.php قرار داده و آن را ذخیره نمایید.

$whmcspath = ‘/home/mizbanfa/public_html/’;

در واقع با مقدار زیر مسیر نصب whmcs را به Crons مشخص می کنیم. توجه داشته باشید که مسیر را به درستی ثبت نمایید. در ادامه کار می بایست این تغییر را در فایل configuration.php ثبت نماییم. برای اینکار کافیست مقدار زیر را در انتهای کدهای فایل configuration.php وارد کرده و آن را ذخیره نمایید.

$crons_dir = ‘/home/mizbanfa/whmcs_crons/’;

بجای mizbanfa نام کاربری هاست، بجای whmcs_crons نام دایرکتوری اختیاری که دایرکتوری Crons را در داخل آن در مسیر home منتقل کرده اید را جایگزین نمایید.

محدودسازی مسیر مدیریت whmcs

در هاست وارد مسیر admin اتوماسیون whmcs شده و مقادیر زیر را در فایل htaccess آن قرار دهید:

order deny,allow
allow from 12.34.5.67
allow from 98.76.54.32
deny from all

مقادیر 12.34.5.67 و همچنین 98.76.54.32 آی پی های مجاز هستند. اگر آی پی ثابت (استاتیک) دارید می بایست آن را با مقادیر ذکر شده جایگزین نمایید. برای مثال اگر اگر آی پی شما 5.26.68.49 می باشد می بایست بصورت زیر تصحیح نمایید:

order deny,allow
allow from 5.26.68.49
deny from all

اگر آی پی شما متغییر (دینامیک) است می توانید رنج آی پی یا آی پی های خود را وارد نمایید. برای مثال:

order deny,allow
allow from 5.26.
allow from 87.36.
deny from all

با ذکر چند مثال سعی بر آن داریم تا مطلب بصورت کامل مطرح شود. اما چنانچه سوال یا ابهامی داشتید می توانید آن را در بخش نظرات مطرح نمایید تا به آن پاسخ دهیم و شما را راهنمایی کنیم.

تغییر نام مسیر مدیریت whmcs

فولدر admin واقع در مسیر اصلی whmcs را به هر نامی که مایل هستید تغییر دهید. برای مثال vrt48kvb – سپس مقدار زیر را به فایل configuration.php اضافه نمایید:

$customadminpath = “vrt48kvb”;

تغییر نام فولدر admin در whmcs یکی از اقدامات بسیار مهم و ضروری برای تامین امنیت whmcs است. اما می بایست توجه داشته باشید که در هنگام بروزرسانی می بایست یکسری موارد را رعایت نمایید:

  • بروزرسانی دستی : می بایست نام فولدر بسته بروزرسانی را به مقدار تغییر داد شده تغییر نام دهید.
  • بروزرسانی خودکار : بهتر است قبل از اقدام به بروزرسانی نام فولدر مدیریت whmcs را به admin برگردانید.

توجه 1 : پیشنهاد می کنیم برای جلوگیری از بروز مشکلات فنی از بروزرسانی دستی استفاده نمایید.

توجه 2 : در صورت تغییر نام و بازگردانی به admin می بایست کد اعمال شده نیز بصورت موقت برداشته شود.

تنظیم سطح دسترسی دیتابیس whmcs

قبل از انجام اینکار پیشنهاد می کنیم مطلب کنترل سطح دسترسی های دیتابیس را مطالعه نمایید.

برای عملکرد عادی که نصب و بروزرسانی انجام نمی شود دسترسی های DELETE , INSERT , SELECT , UPDATE , LOCK TABLES کافی است و نیازی به دسترسی های دیگر نیست. در زمان نصب، بروزرسانی و کارهای عملیاتی نظیر فعالسازی ماژول و … دسترسی های ALTER , CREATE , DROP , INDEX نیز بصورت موقت مورد نیاز خواهد بود. پس از اتمام کار می توانید این دسترسی ها را برداشته و در حالت مورد نیاز قرار دهید. این موضوع موجب خواهد شد دیتابیس WHMCS امنیت بسیار بیشتری داشته باشد.

استفاده از گواهی امنیتی SSL

پیشنهاد می شود مطالب زیر را مطالعه نمایید:

استفاده از گواهی امنیتی SSL در WHMCS بسیار مهم و ضروری است. در زیر به دلایل آن اشاره شده است:

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

توصیه های میزبان فا برای تامین امنیت WHMCS

به این موارد در سایت اصلی WHMCS اشاره نشده است ولی بهتر است آنها را رعایت کنیم:

  • پیشنهاد می شود whmcs را در هاست دیگر بواسطه A Record نصب نمایید.
    • پیشنهاد می کنیم آموزش Zone Editor سی پنل را مطالعه نمایید.
    • اینکار موجب می شود تا امنیت اتوماسیون whmcs تحت تاثیر دیگر اسکریپت ها نباشد.
    • همچنین شرایط امنیتی whmcs موجب تاثیر بر دیگر اسکریپت ها نباشد.
  • در صورت ارائه بسته های آپدیت بخصوص پچ های امنیتی بلافاصله WHMCS خود را بروزرسانی کنید.
    • در صورتی که آپدیت ارائه شده پچ امنیتی نیست الزامی به بروزرسانی نخواهد بود.
  • قابلیت Captcha را فعال نمایید تا حملات Brute Force قابل اجرا نشود.
    • برای محیط ورود کاربران می بایست کد captcha بصورت دستی اضافه شود.
  • پیشنهاد می کنیم از قابلیت حفاظت Directory Privacy برای دایرکتوری مدیریت whmcs استفاده نمایید.
  • در هنگام ورود به ناحیه مدیریتی از اینترنت مطمئن و امن استفاده نمایید.
    • به هیچ عنوان از اینترنت اشتراکی، رایگان و با اتصال V.P.N استفاده نکنید.
  • قابلیت Reset Password را برای بخش مدیریتی whmcs در تنظیمات آن غیر فعال نمایید.
    • برداشتن تیک گزینه Setup » General Settings  » Security TAB » Disable Admin Password Reset

در انتها اگر سوال، ابهام و یا نظری دارید لطفا آن را در بخش نظرات مطرح نمایید.

2.3/5 - (6 امتیاز)

عیسی نورانی

حدود 10 سال است که بــصورت تخصـصی و حـرفه ای در حـوزه سئو و بهینه سازی سایت فعالیت مـی کند و تجربه همکاری با ده ها رسانه بزرگ اینترنتی را در کارنامه خود دارد. عیسی سالـــهاست که یکی از بـرتـرین ها در زمینه تولید محتوای حرفه ای مطابق با الگوریتم های موتورهای جستجوگر در کشور است. همچنین حدود 3 سال است که بصورت جدی پروژه های سئو و بهینه سازی مجموعه میزبان فا را مدیریت می کند.

‫۴ دیدگاه ها

  1. درود و خسته نباشید.
    بنده در بعضی مراحلی که فرمودید مشکل دارم که ممنون میشم راهنمایی بفرمایید.
    مشکل اول : بنده در مرحله ی انتقال سه دایرکتوری به فولدر بالاتر این مشکلو دارم که کدها رو به درستی و با آدرس درست در فایل کانفیگ وارد میکنم اما در مدیریت سیستم با خطای گم شدن دایرکتوری های اتچمنت و دانلودز مواجه میشم. جالب اینجاست که سیستم با دایرکتوری تمپلیت مشکلی نداره ولی جابجایی اون دو دایرکتوری رو با خطا مواجه میکنه و ارور میده در مدیریت سیستم.
    مشکل دوم : برای محدودسازی مدیریت سیستم وقتی وارد پوشه ادمین میشم فایلی به اسم htaccess پیدا نمیکنم تا بتونم ادیتش کنم و عرض کنم خدمتتون که گزینه شوهیدن فایل رو هم فعال کردم اما بازم این فایل توی پوشه ادمین وجود نداره و فقط توی دایرکتوری اصلی این فایل موجود هست.
    مشکل سوم : در مرحله تغییر دسترسی دیتابیس آموزش مربوطه رو مطالعه کردم اما نمی تونم متوجه بشم از کدوم قسمت توی دیتابیس یا phpmyadmin باید دسترسی یوزرنیم موردنظر یا تیبل های موردنظر را تغییر بدم.
    مشکل چهارم : در مرحله گواهی امنیتی بنده در سی پنل و در بخش ssl status وقتی دامنه ها و ساب دامنه ها را چک می کنم گواهی برای تمامی اون ها صادر شده و علامت سبز رنگ کنار اون ها هست و توی تمامی صفحات سایت و مدیریت گواهی اجرا میشه و مشکلی هم ندارم اما سیستم whmcs خطای پیکربندی ssl رو میده و نمی دونم چطور این خطا رو برطرف کنم.
    بنده از سی پنل استفاده می کنم.
    بابت مقاله ها و آموزش های خوبتون ممنونم

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

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