مضى على الشبكة و يوم من العطاء.

إعدادات أمان PHP.INI على خوادم لينكس

S!L3NT H!LL

./عضو جديد

السمعة:

السلام عليكم ورحمة الله

أسعد الله أوقاتكم بكل خير, هذه أول مشاركة لي بالشبكة وفضلت أن تكون في مجال إدارة خوادم الويب, خاصة لقلة الشروحات العربية في هذا المجال.

بالبداية ملف php.ini من ضمن الأمور الأساسية الي يتم مراجعة إعدادات عمل ملفات php على السيرفر فيها, ومن خلاله ممكن نعطي تأمين للسيرفر, مثلًا من الشيلات أو ملفات php الضارة.


من خلال putty أو أي برنامج بعد الإتصال بالسيرفر:

توجه لمسار ملف php.ini غالبًا ما يكون هكذا (ابحث عن طرق Ctrl+W) :

/usr/local/php/php.ini

1- safe_mode

سوف تجد أمامها Off قم بجعلها On , بهذا الشكل:
safe_mode = On

ملاحظة: هذا الخيار فعله إذا كان إصدارك الــ PHP أقل من إصدار 5.3 , علمًا أنه تم الإستغناء في الإصدار 5.4 وأعلى


يعمل السيف مود على ما يلي:
  • يحاول السيف مود توجيه الوضع الآمن
  • حل العديد من المشاكل التي تحدث في بيئة استضافة مشتركة عند استخدام PHP.
  • يقارن UID (PHP) الخاص ببرنامج PHP النصي مع UIDs للملفات والدلائل التي يحاول الوصول إليها. إذا لم تتطابق معرفات UID ، فإن النظام لا يسمح للبرنامج النصي بالوصول إلى الملف أو الدليل المطلوب.


2- register_globals

ستجدها register_globals = On , اجعلها register_globals = Off

ملاحظة: هذا الخيار فعله إذا كان إصدارك الــ PHP أقل من إصدار 5.3 , علمًا أنه تم الإستغناء في الإصدار 5.4 وأعلى


عند تمكين توجيه register_globals ، قد يكتسب المهاجمون القدرة على تجاوز متغيرات التكوين من خلال عنوان URL.


3- disable_functions
راح تجد أمامها علامة = ثم فراغ, ضع التالي بعد علامة الـ =:

symlink,shell_exec,exec,proc_close,proc_open,popen,system,dl,passthru,escapeshellarg,escapeshellcmd,posix_getgid,posix_getgrgid,dl,exec,pclose,proc_nice,proc_terminate,proc_get_status,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,hypot,pg_host,pos,posix_access,posix_getcwd,posix_getservbyname,myshellexec,getpid,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mknod,posix_setgid,posix_setsid,posix_setuid,posix_times,posix_uname,ps_fill,posix_getpwuid,global,ini_restore,zip_open,zip_read,rar_open,bzopen,bzread,bzwrite,apache_get_modules,apache_get_version,phpversionphpinfo,php_ini_scanned_files,get_current_user,error_log,disk_total_space,diskfreespace,leak,imap_list,hypo,filedump,gethostbyname,safe_mode,ob_clean,getmygid,php_uname,apache_getenv,apache_setenv,bzread,bzwrite,posix_access,bzopen,phpini,highlight_file,show_source,sscanf,dos_conv,get_current_user,get_cwd,error_log,dir,cmd,e_name,vdir,get_dir,only_read,copy,ini_set,getmicrotime,float,shver,c99sh_surl,timelimit,surl_autofill_include,base64_decode,gzinflate,encode64,ln

من فوائد تعطيل الدوال:

تعطيل لوظائف PHP التي تسمح للنظام بتنفيذ العمليات الفرعية, لأن العمليات الفرعية تعمل خارج قيود أمان PHP أخرى.


4- display_errors
راح تجدها بهذا الشكل display_errors = On غيرها إلى Off, بتصير يعني بهذا الشكل display_errors = Off

أهمية تعطيلها:
ماراح يقدر يطبع لك الأخطاء في صفحات HTML , يعني مثلًا رفعت سكربت والسكربت كان في خطأ راح يظهر لك صفحة بيضاء لما تدخل على المسار من المتصفح.

أما كيف تعرف تحل الخطأ لما تعطلها؟
لاتخاف السيرفر راح يحفظ لك الأخطاء في سجلات الأخطاء.



5- allow_url_fopen
ستجدها هكذا allow_url_fopen = On, اجعلها allow_url_fopen = Off


أهمية التعطيل:
تعطيل هذا التوجيه لرفض المهاجمين القدرة على فتح الملفات عن بعد من الخادم الخاص بك من خلال نقاط الضعف إدراج الملف.



6- allow_url_include
ستجدها أيضًا على هذا الشكل allow_url_include = On, اجعلها allow_url_include = Off

أهمية التعطيل:
نفس ما ذكر بالأعلى لمنع فتح الملفات عن بعد.



7- file_uploads
سوف تجدها هكذا file_uploads = On, اجعلها file_uploads = Off

ملاحظة: لو لديك مثلًا سكربت رفع أو حتى منتدى أو أي شيء, يتم الرفع من خلاله ملفات أو صور ,راح يظهر رسالة تفيد أن الخادم غير قادر على رفع الملف, لذلك هذه الخيار تغلقه على حسب استخدامك للسيرفر.



8- open_basedir
اجعل القيمة أمامها ~/public_html, يعني على هذا الشكل:
open_basedir = ~/public_html

يؤثر هذا الإعداد فقط على الخوادم التي تستخدم وحدة mod_php Apache.

أهمية هذا الخيار:
يسمح لك هذا التوجيه بتحديد عمليات الملف إلى دليل معين. كثيرًا ما يحاول المهاجمون العثور على طرق لتضمين الملفات المحلية في النصوص البرمجية PHP للحصول على معلومات حول نظام ملفات الخادم.


إذا كان نظامك يعمل على EasyApache 4 ، قم بتغيير هذا التوجيه في WHM >> Home >> Software >> MultiPHP INI Editor



9- session.cookie_httponly
اجعل القيمة لها .1

الفائدة:
لرفض جافا سكريبت إمكانية الوصول إلى ملفات تعريف ارتباط جلسة PHP. يضمن ذلك عدم تمكن المهاجمين من سرقة ملفات تعريف ارتباط الجلسة

إذا كان المستخدمون يستخدمون ملفات تعريف ارتباط جلسة PHP من خلال JavaScript ، فقد يمنع النظام استخدامك لهذا التوجيه



10- session.referer_check
نجعل قيمتها On

الفايدة من تفعليه :
يمنع أي مخترق من اتباع الإرتباطات وسرقة محتوى الجلسة, يعني باختصار أنت سمحت للـ PHP للتحق من HTTP


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

بالبداية ملف php.ini من ضمن الامور الاساسية الي يتم مراجعة فيها اعدادات عمل ملفات php على السيرفر ومن خلاله ممكن نعطي تامين للسيرفر مثلا من الشيلات او ملفات php الضارة


من خلال putty او اي برنامج بعد الاتصال بالسيرفر توجه لمسار ملف php.ini
غالبا ما يكون

/usr/local/php/php.ini

ابحث عن طرق Ctrl+W

1- safe_mode

راح تجد امامها Off ، اجعلها On
بهذا الشكل يعني (safe_mode = On)

ملاحظه: هذا الخيار تفعله اذا كان اصدارك الــ PHP اقل من اصدار 5.3 , علما تم الاستغناء في الاصدار 5.4 واعلى

طيب شرح عن السيف مود : يحاول توجيه الوضع الآمن حل العديد من المشاكل التي تحدث في بيئة استضافة مشتركة عند استخدام PHP.
يقارن UID (PHP) الخاص ببرنامج PHP النصي مع UIDs للملفات والدلائل التي يحاول الوصول إليها. إذا لم تتطابق معرفات UID ، فإن النظام لا يسمح للبرنامج النصي بالوصول إلى الملف أو الدليل المطلوب.

----------------------------------------------------
2- register_globals
ستجدها register_globals = On
اجعلها register_globals = Off

ملاحظه: هذا الخيار تفعله اذا كان اصدارك الــ PHP اقل من اصدار 5.3 , علما تم ازالته في الاصدار 5.4 واعلى

طيب شرح عن register_globals :
عند تمكين توجيه register_globals ، قد يكتسب المهاجمون القدرة على تجاوز متغيرات التكوين من خلال عنوان URL.
----------------------------------------------------
3- disable_functions
راح تجد اماهمها علامة = ثم فراغ ضع التالي بعد علامة الـ =
symlink,shell_exec,exec,proc_close,proc_open,popen,system,dl,passthru,escapeshellarg,escapeshellcmd,posix_getgid,posix_getgrgid,dl,exec,pclose,proc_nice,proc_terminate,proc_get_status,pfsockopen,leak,apache_child_terminate,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,hypot,pg_host,pos,posix_access,posix_getcwd,posix_getservbyname,myshellexec,getpid,posix_getsid,posix_getuid,posix_isatty,posix_kill,posix_mknod,posix_setgid,posix_setsid,posix_setuid,posix_times,posix_uname,ps_fill,posix_getpwuid,global,ini_restore,zip_open,zip_read,rar_open,bzopen,bzread,bzwrite,apache_get_modules,apache_get_version,phpversionphpinfo,php_ini_scanned_files,get_current_user,error_log,disk_total_space,diskfreespace,leak,imap_list,hypo,filedump,gethostbyname,safe_mode,ob_clean,getmygid,php_uname,apache_getenv,apache_setenv,bzread,bzwrite,posix_access,bzopen,phpini,highlight_file,show_source,sscanf,dos_conv,get_current_user,get_cwd,error_log,dir,cmd,e_name,vdir,get_dir,only_read,copy,ini_set,getmicrotime,float,shver,c99sh_surl,timelimit,surl_autofill_include,base64_decode,gzinflate,encode64,ln

طيب شرح عن فوائد تعطيل الدوال :
تعطيل لوظائف PHP التي تسمح للنظام بتنفيذ العمليات الفرعية , لأن العمليات الفرعية تعمل خارج قيود أمان PHP أخرى
----------------------------------------------------
4- display_errors
راح تجدها بهذا الشكل
display_errors = On
غيرها الى Off
بتصير بهذا الشكل(display_errors = Off)


اهمية تعطيلها : ماراح يقدر يطبع لك الاخطاء في صفحات HTML يعني مثلا رفعت سكربت والسكربت كان في خطا راح يظهر لك صفحة بيضاء لما تدخل على المسار من المتصفح
اما كيف تعرف تحل الخطا بوم تعطلها ؟
لاتخاف السيرفر راح يحفظ لك الاخطاء في سجلات الاخطاء.

----------------------------------------------------
5- allow_url_fopen
ستجدها هكذا :
allow_url_fopen = On
اجعلها allow_url_fopen = Off


اهمية التعطيل : تعطيل هذا التوجيه لرفض المهاجمين القدرة على فتح الملفات عن بعد من الخادم الخاص بك من خلال نقاط الضعف إدراج الملف.
----------------------------------------------------
6- allow_url_include
ستجدها ايضا على هذا الشكل
allow_url_include = On
اجعلها allow_url_include = Off


اهمية التعطيل : نفس ما ذكر بالاعلى لمنع فتح الملفات عن بعد
----------------------------------------------------
7- file_uploads
راح تحصلها كذا
file_uploads = On
اجعلها file_uploads = Off

ملاحظة: لو لديك مثلا سكربت رفع او حتى منتدى او اي شي يتم الرفع من خلاله ملفات او صور راح يظهر رسالة تفيد ان الخادم غير قادر على رفع الملف
لذلك هذه الخيار تغلقه على حسب استخدامك للسيرفر

----------------------------------------------------

8- open_basedir

اجعل القيمة امامها ~/public_html
يعني على هذا الشكل
open_basedir = ~/public_html

يؤثر هذا الإعداد فقط على الخوادم التي تستخدم وحدة mod_php Apache


اهمية هذا الخيار : يسمح لك هذا التوجيه بتحديد عمليات الملف إلى دليل معين. كثيرًا ما يحاول المهاجمون العثور على طرق لتضمين الملفات المحلية في النصوص البرمجية PHP للحصول على معلومات حول نظام ملفات الخادم.

إذا كان نظامك يعمل على EasyApache 4 ، قم بتغيير هذا التوجيه في WHM >> Home >> Software >> MultiPHP INI Editor

----------------------------------------------------
9- session.cookie_httponly
اجعل القيمة لها 1

الفائدة : لرفض جافا سكريبت إمكانية الوصول إلى ملفات تعريف ارتباط جلسة PHP. يضمن ذلك عدم تمكن المهاجمين من سرقة ملفات تعريف ارتباط الجلسة

هام !
إذا كان المستخدمون يستخدمون ملفات تعريف ارتباط جلسة PHP من خلال JavaScript ، فقد يمنع النظام استخدامك لهذا التوجيه

----------------------------------------------------
10- session.referer_check
نجعل قيمتها On

الفايدة من تفعليه : يمنع اي مخترق من اتباع الارتباطات وسرقة محتوى الجلسة يعني باختصار انتا سمحت للـ PHP للتحق من HTTP


وبالنهاية هذا ما املكه لطرحه
اسال الله ان يكون به خير للجميع وان يكون طرحي واضح وسهل على الجميع وخالي من الاخطاء.

وعليكم السلام ورحمة الله وبركاته
اسعد الله اوقاتك اخي بكل خير ومحبة ورضا من الله عزوجل
بارك الله فيك على هذا الطرح الرائع وصدقاً ملف php.ini من اهم الملفات اللي على مدير الخادم التعامل معها ومع ال Functions اللي بداخلها بكل حذر.

سعيد جداً بأول موضوع لك بالشبكة ونتمنى لك الاستمرار في العطاء ودعم اخوانك المسلمين
تقبل مروري​
 
من افضل الاشياء المتوفرة في المنتدي الخبرات الحابة تساعد والله مشكور عسى ولعل شرحك يساعد بشكل كبير في المجتمع
 
وعليكم السلام ورحمة الله وبركاته
اسعد الله اوقاتك اخي بكل خير ومحبة ورضا من الله عزوجل
بارك الله فيك على هذا الطرح الرائع وصدقاً ملف php.ini من اهم الملفات اللي على مدير الخادم التعامل معها ومع ال Functions اللي بداخلها بكل حذر.

سعيد جداً بأول موضوع لك بالشبكة ونتمنى لك الاستمرار في العطاء ودعم اخوانك المسلمين
تقبل مروري​
حيالله الحبيب محمد ,
شاكر مرورك , ونسال الله ان يعيننا في كل ماهو به فائدة
 
  • Love
التفاعلات: STORM
من افضل الاشياء المتوفرة في المنتدي الخبرات الحابة تساعد والله مشكور عسى ولعل شرحك يساعد بشكل كبير في المجتمع
المنتدى متميز بوجودك و ووجود الجميع
انرت الموضوع 🌹
 
جزاك الله خيرا على هذا الموضوع القيم، أنرت المنتدى أخي
 

آخر المشاركات

عودة
أعلى