المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : حماية سكربت whmcs في 10 خطوات



Rise Company
01-03-2015, 15:14
السلام عليكم ورحمة الله و بركاته مرحبا بالجميع .. يعتبر سكربت WHMCS هو الأشهر تقريبا لادارة شركات الأستضافة العربية و العالمية لذا فان حماية موقعك و حماية الاسكربت يعتبر الخطوة رقم واحد للحفاظ على شركتك و الحفاظ على عملائك . ايضا لا يوجد شىء كامل ( فالكمال لله وحده ) , لكن من الممكن و بخطوات بسيطة ان شاء الله ان تصل لنسبة حماية عالية . الخطوات فى هذا الموضوع هى عبارة عن تجارب ووجهات نظر شخصية متواضعة بالاضافة الى بعض التوجيهات من شركة WHMCS .

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

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

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





$customadminpath = "custom_admin_folder_name_goes_here";



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

( 4 ) : تغير مسار و اسماء بعض المجلدات الهامة .
هناك ايضا بعض المجلدات الهامة و التى تحتاج الى حماية وهى
templates_c
attachments
downloads
و لتغير المسار توجه الى ملف configuration.php و قم باضافة الكود التالى


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


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



$attachments_dir = "/home/username/public_html/newfolder/attachmentsname/";

حيث username = اسم المستخدم ( للسى بانل ) .
newfolder = مسار جديد قم بانشاءه و نقل هذه المجلدات اليه .
attachmentsname = اسم جديد للمجلد .

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



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




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



# WHMCS Table Protection

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

# WHMCS Generic DB Protection

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

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



و لا تنسى تغير database_name الى اسم قاعدة البيانات . " مرفق الرولز بملف نصى "
( 7 ) : استخدام الـ Access Hash فى الربط مع السيرفر.
اذا كنت ممن يربط الاسكربت بالسيرفر لعمل مباشر على الاسكربت فاستخدم Access Hash فقط فى الربط و لا تستخدم باسورد الروت ابدا
https://www.rise.company/forum/images/imported/2015/03/00-1.jpg
وهنا شرح مصور كامل لهذه العملية ( مرة اخرى لا تستخدم كلمة مرور الروت ) من هنا (http://www.traidnt.net/Portal/Servers/Setup/whmcs-link-server-or-reseller.html)
( 8 ) : استخدام Two-Factor Authentication .
صراحة ً نراها ميزة جيدة لحماية حسابات المدراء و ايضا حسابات العملاء ( وخصوصا ايضا ان كنت ممن يربط الاسكربت بالسيرفر ) فحتى ولو تم الوصول الى لوحة التحكم و حساب احد المدراء فهذه الخاصية ستمنع المتطفل من تسجيل الدخول فتفعيلها سيقوم فى كل مرة لتسجيل الدخول بطلب كود حماية اضافى يتم توليده على هاتفك الجوال . هذه الخاصية ستكلفك 1.50 دولار اى 6 ريال فقط شهريا . و ان شاء الله قريبا جدا سنقوم بتخصيص شرح كامل لهذه الخاصية و تفعيلها و العمل بها .
https://www.rise.company/forum/images/imported/2015/03/00_1-1.jpg
https://www.rise.company/forum/images/imported/2015/03/00_2-1.jpg
( 9 ) : استخدام شهادة SSL .
قد لا تكون هذه الخطوة اساسية او ضرورية , لكنها بكل تأكيد قد تساعد على حماية بياناتك و بيانات عملائك فى حالة لا قدر الله اختراق لجهاز او شبكة اتصال أحد المدراء او العملاء . و ان كنت تستخدم نسخة مرخصة من الاسكربت فبامكانك الحصول على هذه الشهادة بتكلفة 12 دولار فقط سنويا عبر حسابك فى موقع شركة WHMCS . وان شاء الله قريبا جدا سنقوم بتوفير شرح كامل لحجز الشهادة و تركيبها .
https://www.rise.company/forum/images/imported/2015/03/00_3-1.jpg
( 10 ) : و بالتأكيد لا تنسى متابعة التحديثات و عمليات الترقية باستمرار ...
هذا و الله ولى التوفيق , ونتمنى ان نكون قدمنا و لو شىء بسيط يساعدكم ان شاء الله.