همانطور که می دانید whmcs یکی از بهترین و پرطرفدار ترین اوتوماسیون ها یا سیستم مدیریت محتوا های تحت وب است که معمولا در شرکت های هاستینگ و شرکت های خدماتی جهت ارائه سرویس و پشتیبانی از مشتریان استفاده می شود این سیستم قابلیت های فوق العاده ای دارد، شما می توانید به عنوان مثلا ۱۰ هزار مشتری در whmcs خود داشته باشید و مطمئن باشید که whmcs در تاریخ تعیین شده اتمام اعتبار سرویس های خریداری شده توسط هر مدام از مشتریان شما برایشان صورتحساب ارسال می کند و توسط ارسال ایمیل به مشتری یادآور می شود که صورتحساب خود را پرداخت کند که ما در این مقاله بطور کامل آموزش امنیت WHMCS از طریق هاست را خدمت شما ارائه داده ایم.
بدین ترتیب whmcs یکی از قوی ترین اتوماسیون های مالی یا قلب تراکنشات و ارتباطات در یک شرکت هاستینگ محسوب می شود که اطلاعات و مشخصات سرویس ها یا مشخصات هاست هزاران مشتریان را در خود نگهداری می کند بنابراین هنگامی که این همه اطلاعات مهم در یک سیستم تحت وب نگهداری می شود باید بتوانیم امنیت whmcs خود را به نحوه احسنت تامین کنیم تا به هیچ عنوان عوامل خارجی نتوانند به آن نفوذ کنند و اطلاعات مهم کاربران را استخراج کنند و قدم اول قبل از اجرای آموزش زیر آن است که whmcs شما لایسنس دار یا اورجینال باشد و از نسخه کرک شده استفاده نکرده باشید.
در این آموزش با موارد امنیتی که در ابتدای شروع به کار با سیستم مدیریت هاستینگ WHMCS میبایست اعمال نمایید آشنا خواهید شد whmcs دارای ویژگی هایی است که به جهت کمک نمودن برای ایمن نگه داشتن اطلاعات شما ایجاد شده اند. اما ، در اینجا چند مرحله اضافی ساده وجود دارد که شما می توانید نصب و راه اندازی WHMCS خود را حتی بیشتر ایمن کنید.
پیشنهاد ما: آموزش تب credir در WHMCS
آموزش تصویری افزایش امنیت whmcs در مقاله امنیت WHMCS از طریق هاست
به صورت اجمالی مباحث ذیل در ادامه توضیح داده خواهند شد:
- تغییر نام پوشه Admin سیستم مدیریت هاستینگ WHMCS
- ایجاد Protect (حفاظت) برای پوشه Admin
- انتقال ۳ پوشه Attachments، Downloads و Themplates_C به پوشه root
- انتقال پوشه Cron
- محدود کردن دسترسی IP به مدیریت WHMCS به وسیله فایل .htaccess
- محدود کردن امتیازات دیتابیس
-
مرحله اول: تغییر نام پوشه Admin سیستم مدیریت هاستینگ WHMCS
با بسیاری از نرم افزار های مبتنی بر وب ، کاربران اینترنت می دانند که می توانند با نام های رایج دایرکتور ها مانند : Admin، Admincp، Manage و … ادمین کنترل پنل ها را بیابند. بنابر این سفارسی سازی کردن مسیر ناحیه مدیریت WHMCS یکی از مراحلی است که می توانید به منظور مشکل نمودن لاگین کاربران مخرب به کار بگیرید. WHMCS نیاز دارد نام پوشه Admin را بداند حتی اگر شما آن را تغییر نام دهید.
محدودیت هایی که در امن نمودن پوشه Admin وجود دارد:
- شما نمی توانید دایرکتوری Admin را روت WHMCS منتقل نمایید، بنابر این فقط می توانید آن را تغییر نام دهید ولی نه انتقال به صورت کامل.
- نام پوشه ادمین فقط می تواند شامل کاراکتر های استاندارد لاتین a-z و ۰-۹ هم چنین کاراکترهای (-)، (_) و (.) نیز باشد.
جهت تغییر نام پوشه ادمین:
- وارد File Manager شوید و مسیر پوشه حاوی فایل های WHMCS که در این آموزش Portal نام دارد
- پوشه admin را انتخاب نموده و بر روی دکمه Rename کلیک نمایید.
- در پنجره محاوره ای باز شده نام دلخواه جدید را وارد نمایید و بر روی دکمه Rename Folder کلیک نمایید.
پس از تغییر نام پوشه Admin می بایست بر روی فایل Configuration.php نیز تغییراتی اعمال نماییم. زمانی که مسیر پوشه Admin تغییر داده شود می بایست در WHMCS و در فایل Configuration.php نیز نام جدید پوشه مدیریت خود را تعریف نمایید تا WHMCS نیز بتواند آن را پیدا کند و به آن دسترسی داشته باشد. بدین منظور مراحل زیر را دنبال نمایید:
- فایل php را انتخاب نمایید و بر روی دکمه Edit کلیک نمایید.
- در صفحه کد ادیتور قبل از تگ پایانی php یعنی ?> می بایست خط زیر را وارد نمایید:
$customadminpath = "mycustomfoldername";
توجه داشته باشید mycustomfoldername همان نام جدید پوشه Admin می باشد.
در این قسمت نیازی به نوشتن کل مسیر این دایرکتوری نبوده و نام پوشه ادمین کافی است، اگر در فایل Configuration.php خطی مشابه خط بالا مشاهده نمودید، نیازی به وارد کردن مجدد آن نبوده و می بایست همان خط را ویرایش کنید.
- و سپس بر روی دکمه Save کلیک نمایید.
- اگر شما قبلا Cron job ایجاد نموده اید و یا اگر می خواهید اکنون Cron job جدید ایجاد کنید، میبایست مسیر کرون را به روز رسانی نمایید.
- php -q /home/mylogin/public_html/secure/myfoldername/cron.php
-
مرحله دوم: ایجاد Protect (حفاظت) برای پوشه Admin در آموزش امنیت WHMCS از طریق هاست
اضافه کردن یک لایه دوم محافظتی برای دایرکتوری ادمین که می تواند با استفاده از .htaccess ایجاد شود. اغلب کاربران می توانند این کار را با استفاده از گزینه Password Protect Directories و بدون نیاز تغییر در فایل Configuration.php انجام دهند.
ایجاد Protect از طریق Cpanel:
وارد File Manager و مسیر Portal (حاوی فایل های WHMCS) شوید، پوشه مدیریتی خود را که تغییر نام داده اید پیدا کنید، بر روی آن کلیک راست نموده و از منوی باز شده گزینه Password Protect را انتخاب نمایید.
وارد صفحه Directory Privacy خواهید شد.
از قسمت Security Setting ، تیک مربوط به گزینه Password protect this directory را جهت فعال سازی محافظت این پوشه به حالت انتخاب در بیاورید، در قسمت Name of the protected directory نام دلخواه برای پوشه محافظت شده را وارد نمایید، بر روی دکمه Save کلیک نمایید.
در ادامه از قسمت Create User می بایست کاربر مجاز برای دسترسی به این دایرکتوری را تعریف نمایید.
از قسمت Username نام کاربری مورد نظر را وارد نمایید.
از قسمت Password رمز عبور کاربر را وارد نمایید.
توصیه می شود از Password Generator استفاده نمایید تا رمز عبور شما از حداکثر درجه امنیت برخوردار باشد.
بر روی دکمه Save کلیک نمایید.
در این مرحله Protect مربوط به پوشه admin شما ایجاد شده است و در هنگام رجوع به این آدرس ابتدا از شما رمز عبور و نام کاربری خواسته می شود.
ایجاد Protect از طریق فایل .htaccess :
در صورتیکه هاست شما دارای قابلیت Password Protect نباشد می توانید این کار را به صورت دستی خودتان انجام دهید. بدین منظور مراحل رو به رو را دنبال کنید: ابتدا وارد File Manager و دایرکتوری مورد نظرتان شوید، در مسیر مورد نظر بر روی دکمه Create File کلیک نمایید، در پنجره محاوره ای ساخت فایل جدید، نام فایل مورد نظر را .htaccess قرار دهید و بر روی دکمه Create File کلیک نمایید، فایل .htaccess ایجاد می شود. سپس آن را انتخاب و بر روی دکمه Edit کلیک نمایید تا به صفحه کد ادیتور منتقل شوید، به صورت کلی می بایست دستورات زیر را در این فایل وارد نمایید.
توجه داشته باشید به نام فایل ها و کدها دقت کنید حروف کوچک و بزرگ میبایست به همین شکل باشند:
AuthType Basic AuthName "password" AuthUserFile "/passwd" require valid-user
password یک نام برای پوشه محافظت شده می باشد.
/passwd مسیر و نام فایل متنی حاوی نام کاربری و رمزعبور یوزر مجاز برای دسترسی به پوشه محافظت شده می باشد. این فایل را نیز می بایست در مسیر روت ایجاد نمایید. برای تعریف یوزرها نیز باید ابتدا نام کاربری مورد نظر را تایپ نمایید، سپس یک کاراکتر «:» وارد نمایید و در مقابل آن رمز عبور هش شده را وارد نمایید، جهت hash کردن رمز عبور طبق استاندارد کدگذاری md5 می توانید به سایت mf5hasher.net مراجعه نمایید. رمز عبور مورد نظر را وارد نمایید و با کلیک بر روی دکمه Hash it کد هش شده را دریافت نمایید.
توجه داشته باشید در زمان مراجعه به مسیر پروتکت شده می بایست رمز عبور اصلی و نه هش شده را وارد نمایید.
برای مثال:
User125s4s3ad: 5a3f6e3936cc8d8b761dd0c52dec0c5b
-
مرحله ۳: انتقال ۳ پوشه Attachments، Downloads و Themplates_C
سه پوشه ی Attachments، Downloads و Themplates_C نیاز دارند که برای WHMCS قابل نوشتن و تغییر باشند، بنابر این به سطح دسترسی ۷۷۷ (قابل نوشتن برای همه) نیاز دارند. زمانی که پوشه ای دارای سطح دسترسی ۷۷۷ باشد بهتر است جهت امنیت بیشتر آن را در مسیری خارج از روت یا public_html قرار دهیم تا از دسترسی سایر کاربران غیر مجاز در امنیت باشد. WHMCS به شما امکان انجام این کار را می دهد. شما می توانید این ۳ پوشه را به روت هاست خود منتقل نمایید، ولی میبایست حتما مسیر جدید این پوشه ها را به WHMCS نشان دهید.
برای این کار به صورت زیر اقدام نمایید:
به File Manager و پوشه Portal مراجعه نمایید و ۳ پوشه Attachments، Downloads و Themplates_C را به حالت انتخاب قرار دهید و بر روی دکمه Move کلیک نمایید، در این مرحله از شما مسیر جدید جهت انتقال پوشه ها پرسیده می شود. برای انتقال به روت می بایست در قسمت مسیر مقصد هیچ چیزی وارد نکنید و بر روی دکمه move کلیک نمایید.
در این حالت ۳ پوشه مذکور به روت منتقل می گردند ولی به صورت پراکنده و در بین فایل ها و پوشه های دیگر قرار می گیرند. برای مرتب شدن فایل هایتان بهتر است یک پوشه در روت بسازید و سپس ۳ پوشه مورد نظر را به این پوشه در روت منتقل کنید، پس از انتقال پوشه ها به روت میبایست به WHMCS مسیر جدید را نشان دهیم بنابر این ۳ خط کد زیر را در فایل configuration.php اضافه می نماییم:
$templates_compiledir = "/home/username/templates_c/";$attachments_dir = "/home/username/attachments/";$downloads_dir = "/home/username/downloads/";
در این کد ها، username همان نام یوزر هاست Cpanel شما می باشد.
در صورتی که ۳ پوشه مورد نظر را در روت و در یک پوشه مجزا برای مثال پوشه mv3dir منتقل نمایید، میبایست ۳ خط کد را به صورت زیر تغییر دهید:
$templates_compiledir = "/home/username/mv3dir/templates_c/";$attachments_dir = "/home/username/mv3dir/attachments/";$downloads_dir = "/home/username/mv3dir/downloads/";
توجه داشته باشید اگر شما از suphp و یا phpsuexec استفاده می نمایید نیازی به اعمال تغییرات فوق نمی باشد زیرا در این حالت نمی توانید سطح دسترسی این پوشه ها را به ۷۷۷ تغییر دهید. بالاترین سطح دسترسی برای پوشه ها و فایل ها در این حالت ۷۵۵ می باشد.
-
مرحله چهارم: انتقال پوشه Cron در آموزش امنیت WHMCS از طریق هاست
پوشه کرون حاوی فایل domain synchronisation file (همگام سازی دامنه ها) می باشد. بنابر این این پوشه نیز میبایست به روت جهت جلوگیری از دسترسی های غیر مجاز منتقل گردد، بدین منظور مراحل زیر را انجام دهید:
وارد File Manager سپس مسیر Portal شوید. در این مسیر پوشه Crons را پیدا نموده و انتخاب نمایید سپس بر روی دکمه move کلیک نمایید . در پنجره محاوره ای انتقال، مسیر روت را مشخص نموده و بر روی دکمه Move کلیک نمایید. پوشه Crons میبایست همراه با دو فایلی که حاوی آن ها می باشد، یعنی domainsync.php و config.php منتقل گردد.
پس از انتقال پوشه به روت نیز می بایست مسیر آن را به WHMCS معرفی نمایید:
بدین منظور می بایست فایل Config.php موجود در پوشه Crons را ویرایش نمایید و خط کد زیر را در آن تایپ کنید، بر روی فایل Config.php کلیک و آن را انتخاب کنید. سپس بر روی دکمه Edit کلیک نمایید تا صفحه کد ادیتور باز شود، در این صفحه خط زیر را وارد نمایید:
$whmcspath = '/home/username/public_html/Portal/';
دقت کنید که username همان نام کاربری هاست Cpanel شما می باشد و Portal همان مسیر نصب فایل های WHMCS می باشد.
همچنین اگر قبلا Cron job ایجاد نموده اید نیز می بایست مسیر آن را تصحیح نمایید. برای مثال :
(مسیر اولیه) php -q /path/to/home/public_html/whmcspath/crons/domainsync.php
(مسیر روت مشخص شده است) php -q /home/mylogin/crons/domainsync.php
-
مرحله پنجم: محدود کردن دسترسی IP ها به مدیریت WHMCS به وسیله فایل .htaccess
برای امنیت بیشتر، اگر کارکنان شما از ip ایستاتیک یا ثابت استفاده می کنند، می توانید امنیت بیشتری برای ناحیه مدیریت WHMCS خود با استفاده از ایجاد محدودیت دسترسی برای یک رنج از ip های خاص تعریف نمایید. برای انجام این کار می بایست فایلی با نام .htaccess در مسیر ادمین WHMCS با محتوای زیر ایجاد نمایید (اگر وجود داشت آن را ویرایش نمایید):
order deny,allow allow from 12.34.5.67 allow from 98.76.54.32 deny from all
در این قطعه کد ها در قسمت allow میبایست ip های مجاز برای دسترسی به مدیریت WHMCS را تعریف نمایید. هم چنین می توانید با مشخص نمودن بخش اول و دوم ip خود، اجازه دسترسی به زیر شبکه این ip را ایجاد نمایید. بعنوان مثال:
order deny,allow allow from 12.34. deny from all
-
مرحله ششم: محدود کردن امتیازات دیتابیس در امنیت WHMCS از طریق هاست
آخرین مورد امنیتی که میبایست آن را ایجاد نمایید در ۲ مرحله صورت می گیرد:
- استفاده روزانه دیتابیس:
در این مرحله فقط مواردی که برای استفاده روزانه از دیتابیس مورد نیاز هستند را فعال و مابقی موارد را نیز میبایست غیر فعال نمایید. موارد مورد نیاز به شرح ذیل می باشند:
- DELETE
- INSERT
- SELECT
- UPDATE
- در هنگام ارتقاع دیتابیس در امنیت WHMCS از طریق هاست:
لطفا توجه داشته باشید که نصب و راه اندازی، ارتقاع، فعال سازی و غیر فعال سازی ماژول ها، نیازمند امتیازات اضافی زیر می باشد:
- ALTER
- CREATE
- DROP
- INDEX
در پایان این آموزش شما توانسته اید تمامی موارد امنیتی WHMCS خود را ایجاد نمایید، در ادامه آموزش ها می بایست به کانفیگ قسمت های مختلف سیستم مدیریت هاستینگ خود بپردازید اگر در هنگام افزایش امنیت سیستم whmcs به سوال یا مشکلی برخود کردین مشکل خود را از طریق فرم ارسال نظر که در زیر این پست آمده است برای ما ارسال کنید.