آموزش 10 تکنیک عالی برای افزایش امنیت WHMCS
فعالان زمینه ارائه خدمات هاستینگ و سرور مجازی همیشه از کاربران پروپاقرص سرویس WHMCS بوده و هستند. شاید بپرسید چرا؟ زمان راه اندازی وبسایت خود که مجهز به سیستم مدیریت سفارشات و صورت حسابهای مشتریان است whmcs نقش مهمی ایفا میکند و شما برای داشتن یک سیستم WHMCS ایمن در گام اول نیاز به خرید سرور مجازی از شرکت معتبر و با کیفیت دارید.
سرویس WHMCS حاوی مهم ترین اطلاعات کسب و کار شما یعنی شخصی ترین اطلاعات مشتریانتان است. دسترسی افراد بیگانه به این اطلاعات و لو رفتن آنها به احتمال بسیار زیاد منجر به از بین رفتن یک شبه بیزینس شما خواهد شد. اگر تابحال اقدام به ایمن سازی WHMCS خود نکردهاید، با در نظر این گفته با ارزش که 'پیشگیری بهتر از درمان است' و جمله بالا بهتر است سریعا نسبت به ایمن کردن آن اقدام کنید.
اگر برنامهای باشد که بتواند تمامی اطلاعات مربوط به سرویسهای کل مشتریان را ریز به ریز نشان داده و مدیریت سرویسها را نیز در اختیار ادمین بگذارد، احتمالا انتخاب اول خیلیها خواهد بود.
WHMCS را میتوان قلب تپنده تراکنشات و مدیریت سفارشات مشتریان کسب و کار در نظر گرفت. این سیستم اطلاعات خرید و سرویسهای مشتریان را در خود ذخیره میکند و از طریق این سامانه میتوانید سرویسها را تمدید و پشتیبانی بکنید.
با این توضیحات بهتر نیست از قلب تپنده کسب و کار خود محافظت کنیم؟ افزایش امنیت WHMCS موضوعی است که از ابتدای استفاده از این سامانه باید انجام شود چون در این موضوع گذر هر ثانیه حائز اهمیت است.
با ما در بررسی 10 روش افزایش امنیت WHMCS همراه باشید.
راه های افزایش امنیت WHMCS
آغاز راه افزایش امنیت WHMCS با خرید نسخه اورجینال آن شروع میشود. حتما از نسخه پولی و اورجینال این سیستم استفاده کنید. نسخههای کرک شده کاملا قابل نفود هستند.
با اعمال روشهای افزایش ایمنی که در ادامه بیان شدهاند نیز بصورت بالفعل از ایجاد دسترسی غیرمجاز به سیستم WHMCS جلوگیری خواهید کرد.
خود سیستم WHMCS دارای ویژگیهایی است که از اطلاعات شما محافظت کند اما در این قسمت روش های دیگری را برای ارتقای امنیت آن توضیح میدهیم:
1. انتقال دایرکتوری های Downloads، Attachments و Themplates_C
بهتر است که تمامی پوشهها و دایرکتوری های قابل نوشتن (Writeable) را به مکانی امن و شخصی منتقل کنید تا احتمال دسترسی تحت وب به آن ها صفر شود.
توجه: اگر از suPHP یا PHP suEXEC استفاده میکنید سطح دسترسی 755 دایرکتوریها را به حالت writeable درمیآورد که بالاترین سطح دسترسی برای فایلها و پوشهها است.
اگر قادر به انتقال تمامی پوشهها نیستید یا به هر دلیلی فعلا قصد انتقال تمامی دایرکتوری ها را ندارید میتوانید با سه پوشه Downloads، Attachments و Themplates_C شروع کنید.
پس از انتقال لازم است که مکان آنها را در کش پوسته و مخزن فایل installation بهروزرسانی کنید. نحوه جابجایی دایرکتوریها به کنترل پنلی که از آن استفاده میکنید بستگی دارد. در سی پنل به این روش اقدام کنید:
- در سی پنل به آدرس Files >> File Manager بروید.
- به installation directory سیستم WHMCS خود بروید.
- برای هر یک از سه پوشه:
a) روی پوشه راست کلیک و Move را انتخاب کنید.
b) مکان جدید پوشهها را وارد کنید. مکان انتخابی باید در قسمت public_html باشد. سپس روی Move File(s) کلیک کنید تا پوشهها جابجا شوند.
توجه: حتما مسیر جدید پوشهها را یادداشت کنید چون در ادامه به آنها نیاز خواهیم داشت.
c) به مسیر نصب WHMCS بروید.
- روی فایل configuration.php راست کلیک کرده و Edit را انتخاب کنید.
- تنظیمات templates_compiledir$ را برای استفاده از محل جدید templates_c به روزرسانی کنید. برای مثال:
$templates_compiledir = "/home/username/templates_c/";
username همان نام کاربری هاست شماست.
- تغییرات را با کلیک کردن روی Save Changes ذخیره کنید.
- در ناحیه ادمین WHMCS به آدرس مقابل بروید: Configuration > System Settings > Storage Settings
- در تب Configurations گزینه Local Storage و سپس Add New Configuration را انتخاب و روی + کلیک کنید.
- مسیر جدید دایرکتوری attachments را وارد و تغییرات را ذخیره کنید.
- دو قدم قبلی را برای پوشه downloads تکرار کنید.
- در تب Settings مسیر جدید هر دایرکتوری رادر هر منو انتخاب کنید.
- بر روی Switch کلیک کنید تا پروسه تکمیل شود.
توجه: فقط هنگامی Switch را انتخاب کنید که پوشهها را منتقل کردهاید. اگر دایرکتوریهای جدیدی ایجاد کردهاید از Migrate استفاده کنید تا فایلها را از دایرکتوری قدیم در دایرکتوری جدید کپی کند.
2. تنظیم مجوزهای فایل configuration.php
راه پیشنهادی دوم تنظیم مجوزهای فایل configuration.php در روت دایرکتوری WHMCS سایت شماست. این فایل حاوی اطلاعات حساسی است که بدون داشتن فایل بکاپ قابل بازیابی نیستند.
تغییر در دسترسیهای این فایل باعث جلوگیری از ویرایش، رونویسی و حذف تصادفی آن میشود.
مجوز 400 دسترسی به فایل را به حالت read-only محدود کرده و مانع مشاهده، ویرایش و اجرای فایل توسط سایر افراد میشود. برای اعطای مجوز 400 به فایل configuration.php دستور زیر را در روت دایرکتوری WHMCS اجرا کنید:
chmod 400 configuration.php
نکات :
- در حالی که معمولا 400 permission برای اکثر سیستمها کفایت میکند شاید تنظیمات برخی سیستمها مجوزهای 440 یا 444 را نیاز داشته باشد. در صورتی که در بارگذاری مجدد برنامه مشکلی داشتید این مجوزها را امتحان کنید.
- همچنین اگر لازم است که license key را به روزرسانی کنید باید مجوز 755 را اعمال کنید. پس از به روزرسانی میتوانید آن را به 400 تغییر دهید.
3. تغییر نام پوشه ادمین سیستم WHMCS
با تغییر نام پوشه ادمین سیستم WHMCS کار را برای رباتها و هکرها جهت پیدا کردن URL ناحیه مدیریت سیستم WHMCS سختتر میکنید. برای انجام این کار به ایجاد یک دایرکتوری سفارشی و آپدیت کردن تنظیمات WHMCS نیاز داریم.
- فایل configuration.php را در دایرکتوری روت نصب WHMCS باز کنید.
- خط زیر را که کلمه example در آن نام انتخابیتان است ویرایش کنید:
$customadminpath = "example";
نکات:
a) نام پوشه ادمین باید از کاراکترهای استاندارد یعنی حروف الفبای انگلیسی، اعداد 0 تا 9، خط تیره (-) و دش (ـ) تشکیل شده و در روت دایرکتوری موجود باشد.
b) تنها نام پوشه را وارد کنید. نیازی به وارد کردن آدرس آن نیست.
c) اگر این کد را ندیدید، آن را به انتهای خطوط کدها یا قبل از ?>
پایانی (در صورت وجود) اضافه کنید.
- دایرکتوری admin را با نامی که برای customadminpath انتخاب کردید جایگزین و تغییرات را ذخیره کنید.
4. فعالسازی گواهی SSL بر روی دامنه
سامانه WHMCS عموما حاوی اطلاعات مهمی است که بین این سامانه و مرورگر کاربر هدف در حال انتقال است. داشتن یک گواهی SSL معتبر که امکان تبادل اطلاعات رمزنگاری شده و استفاده از HTTPS را مهیا کند برای هر سایتی ضروری است.
- اگر سایت شما گواهی SSL ندارد یک مجوز SSL تهیه کنید.
- پس از فعالسازی گواهینامه امنیتی ssl در سی پنل بر روی دامنه سایت، تنظیمات WHMCS System URL را در تب General و قسمت Configuration > System Settings > General Settings با وارد کردن //:https قبل از آدرس دامنه تنظیم کنید.
- در نهایت تغییرات اعمال شده را ذخیره کنید.
5. محدودسازی امتیازات database
سیستم WHMCS برای انجام کارهای روزمره به چند امتیاز یا Privilege زیر نیاز دارد:
- DELETE
- INSERT
- SELECT
- UPDATE
- LOCK TABLES
برای امنیت بیشتر بهتر است که دسترسی به دیگر امتیازات همانند ALTER ،CREATE ،DROP و INDEX را محدود کنیم. بدین جهت مراحل زیر را اجرا کنید:
گام اول: از طریق ناحیه کاربری وارد سی پنل شوید.
گام دوم: به قسمت Databases رفته و MySQL Databases را باز کنید.
گام سوم: به Current Databases بروید و دیتابیسی را که مدنظر دارید انتخاب کنید.
گام چهارم: در مجاورت دیتابیس مورد استفاده برای WHMCS، روی یوزر در ردیف Privileged Users کلیک کنید.
گام پنجم: امتیازات ALTER ،CREATE ،DROP و INDEX را از امتیازات این کاربر حذف کنید. در پایان روی دکمه Make Changes در پایین صفحه کلیک کنید.
6. انتقال دایرکتوری Crons
با انتقال دایرکتوری Crons نیز میتوان دسترسی تحت وب به این فهرست را محدود کرد. پس از انتقال، تنظیمات WHMCS را نیز باید آپدیت کنیم.
گام اول: کل دایرکتوری /crons/ را به مکان جدید منتقل کنید.
گام دوم: اگر از Cron Job استفاده میکردید، مکان تعریف شده آنها را به مکان جدید کرونها آپدیت کنید.
گام سوم: فایل config.php.new را به config.php تغییر نام دهید.
گام چهارم: فایل config.php را باز کنید و خط whmcspath$ را بیابید.
گام پنجم: دو کاراکتر / را از ابتدای خط حذف و عبارت /path/to/whmcs/ را با آدرس کامل پوشه جدید جایگزین کنید. بعنوان مثال:
$whmcspath = '/home/username/public_html/whmcs/';
گام ششم: فایل را ذخیره کنید و از آن خارج شوید.
گام هفتم: فایل configuration.php را در دایرکتوری روت نصب WHMCS باز کنید.
گام هشتم: عبارت /home/username/whmcs_crons/ در کد زیر را با آدرس محل جدید دایرکتوری جایگزین کرده، سپس کد حاصله را به آخر کدها اضافه کنید.
$crons_dir = '/home/username/whmcs_crons/';
گام نهم: محل جدید دایرکتوری را در کرون جاب به روزرسانی کنید.
گام دهم: برای تکمیل فرآیند آپدیت، تمامی فایلهای cronjob آپدیت شده را از محل پیش فرض به محل جدید انتقال دهید.
7. محدود کردن دسترسی IP ها
اگر شما و کارکنانتان با IP های ثابت کار میکنید میتوانید با طی کردن مراحل زیر دسترسی به WHMCS را به یک سری خاص از IP ها محدود کنید.
- وارد سی پنل شوید.
- به بخش File Manager بروید.
- در این قسمت به محلی بروید که فایلهای مربوط به نصب WHMCS در آن قرار دارند. پوشه admin را باز کنید.
- جهت محدودسازی IP ها به یک فایل جدید در داخل این دایرکتوری نیاز داریم. برای انجام این کار بر روی دکمه File+ در گوشه بالا سمت چپ کلیک کنید.
- عبارت htaccess. را بعنوان نام فایل قرار دهید. حالا روی Create New File کلیک کنید.
- پس از اینکه فایل htaccess. ساخته شد، در پوشه admin/ قرار خواهد گرفت.
- یک بار روی فایل htaccess. چپ کلیک کنید تا گزینه Edit در ردیف tools که در بالای File Manager است فعال شود. روی آن کلیک کنید.
- صفحه Edit پدیدار خواهد شد، روی Edit در پایین صفحه سمت راست کلیک کنید.
- یک ویرایشگر HTML در تب جدیدی داخل مروگرتان باز خواهد شد. متن زیر را در آن وارد کنید:
order deny,allow
allow from x.x.x.x
allow from x.x.x.x
deny from all
برای هر IP ای که قصد ارائه دسترسی دارید، سطری را با allow from شروع و با آدرس IP تکمیل کنید. میتوانید به تعداد نامحدود IP تعریف کنید. با کد بالا درخواست دسترسی تمامی IP ها بجز IP های تعریف شده رد میشود.
در پایان فایل شما فایلی مانند تصویر زیر خواهد شد:
روی دکمه Save Changes در گوشه راست بالای صفحه کلیک کنید. حالا جز IP هایی که اجازه دسترسی دارند، بقیه IP ها قادر به بارگذاری صفحه لاگین و دیگر المانهای دایرکتوری ادمین نخواهند بود.
8. جلوگیری از Clickjacking
Clickjacking نوعی از فریب در فضای مجازی است. نحوه سازوکار این حمله، پوشاندن یک صفحه خطرناک با صفحه ساده دیگری است تا کاربر را مجاب به کلیک کردن نماید.
هکر با محدود کردن المانهای یک صفحه به یک دکمه به نوعی که کلیک کردن شما در هرجای صفحه و بر روی هر المانی منجر به انجام فقط و فقط یک چیز خواهد شد، بدنبال سرقت اطلاعات یا حذف حساب کاربری و غیره خواهند بود.
برای ایمن کردن سایت در مقابل Clickjacking به شیوه زیر عمل کنید:
- وارد سی پنل شده و به قسمت File Manager بروید.
- فایل htaccess. را بیابید و روی آن یک بار چپ کلیک کنید. بعد روی دکمه Edit در بالای صفحه کلیک کنید تا صفحه ویرایش باز شود:
- در صفحه باز شده روی Edit کلیک کنید.
- در ویرایشگری که داخل تب جدید باز شده است، کدهای زیر را در پایان کدها قرار دهید و تغییرات را ذخیره کنید:
<IfModule mod_headers.c>
Header always append X-Frame-Options SAMEORIGIN
<IfModule/>
حالا سایت شما در مقابل Clickjacking محافظت شده است.
9. بستن پورتهای بدون استفاده
یکی از بهترین راهها برای عدم ایجاد دسترسی غیرمجاز، بستن پورتهای بدون استفاده است. این کار باعث میشود تا احتمال دسترسی غیرمجاز به سرور و سامانه WHMCS کاهش یابد.
در کنار بستن پورتها شیوههای مختلفی برای محافظت از آنها مثل Port Knocking وجود دارد که از این روشها نیز میتوانید استفاده کنید.
10. محافظت فیزیکی از سرور
آخرین راه در فهرست ما محافظت فیزیکی از سرور است. بعد از بستن تمامی راههای دسترسی تحت وب، این تنها راهی است که غیر از اینترنت میتوان به اطلاعات WHMCS دسترسی پیدا کرد.
به همین جهت اطمینان حاصل کنید که سرور در مکان امنی قرار دارد و بصورت فیزیکی نیز از سرور محافظت میکنید.
سخن پایانی
سیستم WHMCS مرکز مدیریت تمامی سفارشات و invoice ها و تیکتهای مشتریان است. بخاطر اطلاعات مهمی که هر لحظه در این سیستم در حال رد و بدل شدن است لازم است که امنیت آن را تا بالاترین حد ممکن افزایش دهیم.
10 روش افزایش امنیت را نام بردیم که پیشنهاد میکنیم هر 10 روش را برای رسیدن به بیشترین حد امنیت انجام دهید. در صورت بروز هرگونه مشکل یا سوالی آن را با متخصصان ما در قسمت نظرات در میان بگذارید.
همینطور اگر راه دیگری را میدانید که در این مقاله به آن اشاره نشده خوشحال میشویم که آن را در قسمت کامنتها با بقیه به اشتراک بگذارید.