
پس از نصب whmcs و قبل از اقدام به پیکربندی آن نیاز است که یکسری اقدامات جهت تامین امنیت whmcs انجام شود. اینکار موجب می شود تا بتوان بالاترین سطح امنیت whmcs را داشت. انجام این کارها بسیار آسان بوده اما کمک بسیار زیادی به امنیت whmcs می کند. طبق بررسی های انجام شده بسیاری از شرکت های هاستینگ این کارها را انجام نداده اند و به نحوی خود و کاربرانشنان را در معرض آسیب های جدی امنیتی قرار داده اند. از شما عزیزان دعوت می کنیم در ادامه با ما همراه باشید تا با انجام یکسری راهکاری ساده امنیت whmcs خود را بالا ببرید.
توجه داشته باشید که این آموزش، ترجمه آموزش تامین امنیت whmcs از سایت اصلی آن است. کاملا معتبر بوده و هیچگونه مورد اضافی در آن وجود ندارد.
مشاهده منبع : https://docs.whmcs.com/Further_Security_Steps
توجه داشته باشید که قبل از شروع کار توصیه می شود حتما از whmcs خود بصورت کامل بکاپ بگیرید تا در صورت نیاز و بروز مشکل بتوانید آنرا بازگردانی نمایید. مجموعه میزبان فا هیچگونه مسئولیتی در قبال سوء برداشت یا انجام اشتباه آموزشهای زیر نخواهد داشت.
همانطور که گفته شد آموزش های راجع به تامین امنیت whmcs از منبع اصلی ارائه می شود که در زیر به آنها اشاره شده است:
در ادامه به تشریح و آموزش موارد فوق خواهیم پرداخت.
سه پوشه attachments , downloads , templates_c دایرکتوری های قابل ویرایش هستند. به این معنی که محتوای داخل آنها ممکن است بواسطه هکرها مورد تغییر یا نفوذ قرار گرفته و موجب بروز مشکلات امنیتی شود. دایرکتوری attachments محلی است که پیوست های کاربران در آنجا ذخیره می شود. در نظیر بگیرید که هگ اگر بتواند کدهای آلوده خود را در این مسیر آپلود نماید و آنرا اجرا کند چه مشکل بزرگی ایجاد خواهد شد. با انتقال این پوشه با رده بالاتر، در صورتی که آپلود کدهای آلوده نیز صورت گیرد هکر دسترسی اجرای آنرا نخواهد داشت و به این طریق امنیت حفظ خواهد شد. دایرکتوری های templates_c و downloads نیز چنین حالتی دارند اما با این تفاوت که امکان نفوذ در آنها بواسطه تزریق کدهای SQL مقدور است. پس نتیجه می گیریم که این سه دایرکتوری حتما باید از دسترسی عموم خارج و به ریشه بالا منتقل شوند. برای اینکار می بایست بصورت زیر اقدام نمایید:
$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 را بر روی 400 تنظیم نمایید. اگر پیغام خطایی مشاهده کردید که با کارسازهای جدید وب سرور بعید است سطح دسترسی آنرا بر روی 444 یا 440 تنظیم نمایید. همچنین راهکار دیگر که تکمیل کننده تامین امنیت whmcs خواهد بود محدود کردن دسترسی به فایل configuration.php به آی پی است.
برای اینکار مقدار زیر را در فایل htaccess وارد نمایید:
<Files configuration.php>
Order allow, deny
Deny from all
</Files>
توجه داشته باشید که کد فوق بصورت پیشنهاد توسط میزبان فا برای افزایش امنیت whmcs ارائه شده است. در سایت اصلی تنها به تنظیم سطح دسترسی فایل configuration.php اشاره شده است.
برای بالا بردن و تامین امنیت whmcs بهتر است فولدر Crons را به ریشه بالاتر منتقل نمایید. برای اینکار بصورت زیر اقدام نمایید:
$whmcspath = ‘/home/mizbanfa/public_html/’;
در واقع با مقدار زیر مسیر نصب whmcs را به Crons مشخص می کنیم. توجه داشته باشید که مسیر را به درستی ثبت نمایید. در ادامه کار می بایست این تغییر را در فایل configuration.php ثبت نماییم. برای اینکار کافیست مقدار زیر را در انتهای کدهای فایل configuration.php وارد کرده و آن را ذخیره نمایید.
$crons_dir = ‘/home/mizbanfa/whmcs_crons/’;
بجای mizbanfa نام کاربری هاست، بجای whmcs_crons نام دایرکتوری اختیاری که دایرکتوری Crons را در داخل آن در مسیر home منتقل کرده اید را جایگزین نمایید.
در هاست وارد مسیر 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
با ذکر چند مثال سعی بر آن داریم تا مطلب بصورت کامل مطرح شود. اما چنانچه سوال یا ابهامی داشتید می توانید آن را در بخش نظرات مطرح نمایید تا به آن پاسخ دهیم و شما را راهنمایی کنیم.
فولدر admin واقع در مسیر اصلی whmcs را به هر نامی که مایل هستید تغییر دهید. برای مثال vrt48kvb – سپس مقدار زیر را به فایل configuration.php اضافه نمایید:
$customadminpath = “vrt48kvb”;
تغییر نام فولدر admin در whmcs یکی از اقدامات بسیار مهم و ضروری برای تامین امنیت whmcs است. اما می بایست توجه داشته باشید که در هنگام بروزرسانی می بایست یکسری موارد را رعایت نمایید:
توجه 1 : پیشنهاد می کنیم برای جلوگیری از بروز مشکلات فنی از بروزرسانی دستی استفاده نمایید.
توجه 2 : در صورت تغییر نام و بازگردانی به admin می بایست کد اعمال شده نیز بصورت موقت برداشته شود.
قبل از انجام اینکار پیشنهاد می کنیم مطلب کنترل سطح دسترسی های دیتابیس را مطالعه نمایید.
برای عملکرد عادی که نصب و بروزرسانی انجام نمی شود دسترسی های DELETE , INSERT , SELECT , UPDATE , LOCK TABLES کافی است و نیازی به دسترسی های دیگر نیست. در زمان نصب، بروزرسانی و کارهای عملیاتی نظیر فعالسازی ماژول و … دسترسی های ALTER , CREATE , DROP , INDEX نیز بصورت موقت مورد نیاز خواهد بود. پس از اتمام کار می توانید این دسترسی ها را برداشته و در حالت مورد نیاز قرار دهید. این موضوع موجب خواهد شد دیتابیس WHMCS امنیت بسیار بیشتری داشته باشد.
پیشنهاد می شود مطالب زیر را مطالعه نمایید:
استفاده از گواهی امنیتی SSL در WHMCS بسیار مهم و ضروری است. در زیر به دلایل آن اشاره شده است:
به این موارد در سایت اصلی WHMCS اشاره نشده است ولی بهتر است آنها را رعایت کنیم:
در انتها اگر سوال، ابهام و یا نظری دارید لطفا آن را در بخش نظرات مطرح نمایید.