حماية سكربت whmcs في 10 خطوات







السلام عليكم ورحمة الله و بركاته مرحبا بالجميع .. يعتبر سكربت WHMCS هو الأشهر تقريبا لادارة شركات الأستضافة العربية و العالمية لذا فان حماية موقعك و حماية الاسكربت يعتبر الخطوة رقم واحد للحفاظ على شركتك و الحفاظ على عملائك .

السلام عليكم ورحمة الله و بركاته مرحبا بالجميع .. يعتبر سكربت WHMCS هو الأشهر تقريبا لادارة شركات الأستضافة العربية و العالمية لذا فان حماية موقعك و حماية الاسكربت يعتبر الخطوة رقم واحد للحفاظ على شركتك و الحفاظ على عملائك . ايضا لا يوجد شىء كامل ( فالكمال لله وحده ) , لكن من الممكن و بخطوات بسيطة ان شاء الله ان تصل لنسبة حماية عالية . الخطوات فى هذا الموضوع هى عبارة عن تجارب ووجهات نظر شخصية متواضعة بالاضافة الى بعض التوجيهات من شركة WHMCS .

( 1 ) : تنصيب سكربت WHMCS على سيرفر مستقل .

من وجهة نظرنا المتواضعة ان الخطوة الاولى و الاهم للحماية هى ان يكون الاسكربت و موقع الشركة على سيرفر مستقل و ايضا بدون تنصيب اى برمجيات اخرى بجوار الاسكربت و هى ايضا خطوة تنصح بها الشركة المبرمجة . و الاسكربت لا يحتاج الى مواصفات عالية .. فـ سيرفر برام 1 جيجا قد يكون كافى جدا ان شاء الله و لا تنسى الحماية القصوى لهذا السيرفر و عدم استعمال الترخيص 777 ابدا .

( 2 ) : ترخيص الاسكربت .

نراها ايضا خطوة مهمة جدا للحماية فهذا سيمكنك من تحديث الاسكربت باستمرار فور نزول الترقيعات و الاصدارات الجديدة .. ( و الجميع يعلم انها كثيرة جدا فى الفترة الاخيرة ) ايضا النسخ المنزوعة و الله اعلم بمصدرها و بمحتوياتها .. فلا تضع نفسك فى موضع خطر حقيقى .

( 3 ) : تغير مسار لوحة التحكم و تركيب جدار نارى .

و هى خطوة اساسية من خطوات الحماية , وتتم عبر تغيير اسم مجلد الادمن ومن ثم التوجه الى ملف configuration.php على المسار الرئيسيى ووضع هذا الكود باخره .

رمز Code:
$customadminpath = "custom_admin_folder_name_goes_here";

مع تغير custom_admin_folder_name_goes_here الى اسم المجلد الجديد .

و لا تنسى الجدار النارى على لوحة التحكم بالتأكيد . * لا تنسى تغير الاسم فى كود الـ cron !!

( 4 ) : تغير مسار و اسماء بعض المجلدات الهامة .

هناك ايضا بعض المجلدات الهامة و التى تحتاج الى حماية وهى

templates_c

attachments

downloads

و لتغير المسار توجه الى ملف configuration.php و قم باضافة الكود التالى

رمز Code:
$templates_compiledir = "/home/username/templates_c/";
$attachments_dir = "/home/username/attachments/";
$downloads_dir = "/home/username/downloads/";

مثال لتغير مسار احد هذه المجلدات

رمز Code:
$attachments_dir = "/home/username/public_html/newfolder/attachmentsname/";

حيث username = اسم المستخدم ( للسى بانل ) .

newfolder = مسار جديد قم بانشاءه و نقل هذه المجلدات اليه .

attachmentsname = اسم جديد للمجلد .

( 5 ) : تحديد اى بيهات ( IPs ) محددة لدخول لوحة التحكم .

وهذه الخطوة يمكن تفعيلها اذا كنت مثلا لديك اتصال انترنت ثابت فى مقر الشركة مثلا او ان عدد محدد من الوظفين لديهم اتصال انترنت ثابت باى بى ثابت . وتتم هذه الخطوة عبر التوجه الى مجلد الادمن و من ثم ملف .htaccess و اضافة الكود

رمز Code:
order deny,allow
allow from 12.34.5.67
allow from 98.76.54.32
deny from all
 

طبعا مع تغير الاى بيهات المطلوبة و اضافة المزيد كما تشاء .

( 6 ) : حماية قاعدة البيانات عبر المود سكيورتى .

وهى خطوة اضافية يمكن استغلالها لمنع الاتصالات الخارجية بقاعدة البيانات و حمايتها من تطبيق اى اوامر خارجية عليها . و تتم عبر اضافة الرولز التالية للمود سكيورتى

رمز Code:
# WHMCS Table Protection

SecRule REQUEST_URI|ARGS|REQUEST_BODY "tbladmins" "id:00001,phase:4,t:urlDecodeUni,log,deny,msg:'WHMCS'"
SecRule REQUEST_URI|ARGS|REQUEST_BODY "tblclients" "id:00002,phase:4,t:urlDecodeUni,log,deny,msg:'WHMCS'"
SecRule REQUEST_URI|ARGS|REQUEST_BODY "tblhosting" "id:00003,phase:4,t:urlDecodeUni,log,deny,msg:'WHMCS'"
SecRule REQUEST_URI|ARGS|REQUEST_BODY "tblservers" "id:00004,phase:4,t:urlDecodeUni,log,deny,msg:'WHMCS'"
SecRule REQUEST_URI|ARGS|REQUEST_BODY "tbltickets" "id:00005,phase:4,t:urlDecodeUni,log,deny,msg:'WHMCS'"
SecRule REQUEST_URI|ARGS|REQUEST_BODY "tblregistrars" "id:00006,phase:4,t:urlDecodeUni,log,deny,msg:'WHMCS'"
SecRule REQUEST_URI|ARGS|REQUEST_BODY "tblcontacts" "id:00007,phase:4,t:urlDecodeUni,log,deny,msg:'WHMCS'"
SecRule REQUEST_URI|ARGS|REQUEST_BODY "tblemails" "id:00008,phase:4,t:urlDecodeUni,log,deny,msg:'WHMCS'"
SecRule REQUEST_URI|ARGS|REQUEST_BODY "tblinvoices" "id:00009,phase:4,t:urlDecodeUni,log,deny,msg:'WHMCS'"
SecRule REQUEST_URI|ARGS|REQUEST_BODY "tblorders" "id:00010,phase:4,t:urlDecodeUni,log,deny,msg:'WHMCS'"
SecRule REQUEST_URI|ARGS|REQUEST_BODY "tblpaymentgateways" "id:00011,phase:4,t:urlDecodeUni,log,deny,msg:'WHMCS'"
SecRule REQUEST_URI|ARGS|REQUEST_BODY "tblverificationdata" "id:00012,phase:4,t:urlDecodeUni,log,deny,msg:'WHMCS'"
SecRule REQUEST_URI|ARGS|REQUEST_BODY "tblgatewaylog" "id:00013,phase:4,t:urlDecodeUni,log,deny,msg:'WHMCS'"
SecRule REQUEST_URI|ARGS|REQUEST_BODY "tbldomains" "id:00014,phase:4,t:urlDecodeUni,log,deny,msg:'WHMCS'"
SecRule REQUEST_URI|ARGS|REQUEST_BODY "tbladminlog" "id:00015,phase:4,t:urlDecodeUni,log,deny,msg:'WHMCS'"
SecRule REQUEST_URI|ARGS|REQUEST_BODY "tblaccounts" "id:00016,phase:4,t:urlDecodeUni,log,deny,msg:'WHMCS'"

# WHMCS Generic DB Protection

SecRule REQUEST_URI|ARGS|REQUEST_BODY "database_name" "id:00050,phase:4,t:urlDecodeUni,log,deny,msg:'WHMCS'"

SecRule REQUEST_URI|ARGS|REQUEST_BODY "AES_ENCRYPT" "id:31337,phase:4,log,deny,msg:'WHMCS Fail'"

و لا تنسى تغير database_name الى اسم قاعدة البيانات . " مرفق الرولز بملف نصى "

( 7 ) : استخدام الـ Access Hash فى الربط مع السيرفر.

اذا كنت ممن يربط الاسكربت بالسيرفر لعمل مباشر على الاسكربت فاستخدم Access Hash فقط فى الربط و لا تستخدم باسورد الروت ابدا

وهنا شرح مصور كامل لهذه العملية ( مرة اخرى لا تستخدم كلمة مرور الروت ) من هنا

( 8 ) : استخدام Two-Factor Authentication .

صراحة ً نراها ميزة جيدة لحماية حسابات المدراء و ايضا حسابات العملاء ( وخصوصا ايضا ان كنت ممن يربط الاسكربت بالسيرفر ) فحتى ولو تم الوصول الى لوحة التحكم و حساب احد المدراء فهذه الخاصية ستمنع المتطفل من تسجيل الدخول فتفعيلها سيقوم فى كل مرة لتسجيل الدخول بطلب كود حماية اضافى يتم توليده على هاتفك الجوال . هذه الخاصية ستكلفك 1.50 دولار اى 6 ريال فقط شهريا . و ان شاء الله قريبا جدا سنقوم بتخصيص شرح كامل لهذه الخاصية و تفعيلها و العمل بها .

( 9 ) : استخدام شهادة SSL .

قد لا تكون هذه الخطوة اساسية او ضرورية , لكنها بكل تأكيد قد تساعد على حماية بياناتك و بيانات عملائك فى حالة لا قدر الله اختراق لجهاز او شبكة اتصال أحد المدراء او العملاء . و ان كنت تستخدم نسخة مرخصة من الاسكربت فبامكانك الحصول على هذه الشهادة بتكلفة 12 دولار فقط سنويا عبر حسابك فى موقع شركة WHMCS . وان شاء الله قريبا جدا سنقوم بتوفير شرح كامل لحجز الشهادة و تركيبها .

( 10 ) : و بالتأكيد لا تنسى متابعة التحديثات و عمليات الترقية باستمرار ...

هذا و الله ولى التوفيق , ونتمنى ان نكون قدمنا و لو شىء بسيط يساعدكم ان شاء الله.

المرفقات

نوع الملف : txt protect_whmcs_mixathost.txt (2.0 


المصدر