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

مشاهدة النسخة كاملة : درس 5: منع التنقل و ضبط php.ini وتفعيل الباك اب وبعض الاوامر المفيدة


Mighty Dr.Wolf
06-14-2019, 02:37 AM
السلام عليكم ورحمة الله وبركاته

اتمنى من الله سبحانه وتعالى ان تكونو بخير ...

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


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


لمتابعة الدروس السابقة
الدرس الاول
https://www.helpernt.com/vb/showthread.php?t=9310
الدرس الثاني
https://www.helpernt.com/vb/showthread.php?t=9318
الدرس الثالث
https://www.helpernt.com/vb/showthread.php?p=30227
الدرس الرابع
https://www.helpernt.com/vb/showthread.php?t=9460




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


قبل البدء باي شي اي ملف تريد تعديله يجب عليك اخذ نسخه احتياطية لا قدر الله وصار غلط او لم يعمل بالشكل الجيد بامكانك ارجاع النسخه الاصليه
1-
بالاول راح نبلش مع الاباتشي
سوف نمنع تخطي السيرفر
بلاول حابب اضع رابط الدرس والشخص المقدم للدرس
https://www.dev-point.com/vb/threads/655226/
طبعا مقدم الدرس الاستاذ S!L3NT H!LL
رابط العضوية
https://www.helpernt.com/vb/member.php?u=721

اكرر
قبل البدء باي شي اي ملف تريد تعديله يجب عليك اخذ نسخه احتياطية لا قدر الله وصار غلط او لم يعمل بالشكل الجيد بامكانك ارجاع النسخه الاصليه
1-

نبدا بالشرح

بالاول عن طريق الشل ثم عن طريق اللوحة

عن طريق الشل ندخل cd /usr/local/apache/conf/

نسوي فايل جديد ولنقل باسم helper
nano helper.conf

ثم نكتب
<Directory "/">
Options -ExecCGI -FollowSymLinks -Includes IncludesNOEXEC Indexes -MultiViews SymLinksIfOwnerMatch
AllowOverride AuthConfig Indexes Limit FileInfo Options=IncludesNOEXEC,Indexes,Includes,MultiViews ,SymLinksIfOwnerMatch
</Directory>



ثم كالعادة ctrl +حرف x
ثم y
ثم انتر



الان ندخل عن طريق الشل
nano /usr/local/apache/conf/httpd.conf

للبحث عن شي معين او كلمة او سطر
ctrl + حرف w

نبحث عن هذا السطر
#AddHandler cgi-script .cgi

نمسحه ونضع هذا السطر
#AddHandler cgi-script .cgi .pl .plx .ppl .perl

ثم ctrl +حرف x
ثم y
ثم انتر



الان انتهينا عن طريق الشل

عن طريق اللوحة سوف اشرحها باختصار

نذهب من اعلى اللوحة على FileManager
ثم usr
ثم local
ثم appche
ثم conf
ثم نفتح الملف للتعديل عليه httpd.conf

نبحث عن
#AddHandler cgi-script .cgi
تقريبا سوف تجدها بعد السطر 400
نمسحه
ثم نضع بدله هذا السطر
#AddHandler cgi-script .cgi .pl .plx .ppl .perl


ثم حفظ


الان نذهب الى الشل لتغيير تصاريح البيرل والبايثون
اكتب فقط الاوامر التالية
chmod 0700 $(which perl)
chown root:root $(which perl)
chmod 0700 /usr/bin/perl
chmod 700 /usr/bin/python

بهذه التصاريح نحن منعنا اي شخص من قراءة البيرل والبايثون ما عدا الروووت


للتاكيد فقط
قبل البدء باي شي اي ملف تريد تعديله يجب عليك اخذ نسخه احتياطية لا قدر الله وصار غلط او لم يعمل بالشكل الجيد بامكانك ارجاع النسخه الاصليه
-


2-
الان ناتي الى حماية او تغيير بعض اعدادات البي اتش بي php.ini

طبعا المصدر هنا
https://www.helpernt.com/vb/showthread.php?t=8433
مقدم الشرح الاستاذ S!L3NT H!LL
رابط العضوية
https://www.helpernt.com/vb/member.php?u=721

ولكن بالنسبة لي واجهت بعض المشاكل في بعض التغييرات في الموضوع فلم اغيرها كما ذكر الاستاذ

والان سوف اشرح مالذي فعلته انا

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

لمعرفة مكان php.ini هناك طرق كثيرة سوف اختصر واشرح عن طريق اللوحة فقط

نذهب للوحة
ثم
php settings
ثم
PHP-FPM Selector
ثم
نذهب للنسخه اللي نصبناها واختار الاصدار نحن في البداية اتفقنا على ان انصب اخر نسخه مستقرة emoji40
وكانت 7.3.6

نختارها من امام PHP-FPM 7.3
ثم تضغط على [Edit php.ini]
سوف تفتح صفحة جديدة
تجد اعلاها رابط هكذا
Contents of File: /opt/alt/php-fpm73/usr/php/php.ini


الان عرفنا مكان الملف وهو هنا /opt/alt/php-fpm73/usr/php/php.ini

ويجب علينا ايضا ان نقوم بعمل التغييرات على البي اتش بي الاصلي للسيرفر(ركز معي للسيرفر وليس اللي نصبته انت للمواقع )

/usr/local/php/php.ini


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

الان نعدل على الملفات اما عن طريق الشل او عن طريق اللوحة

عن طريق الشل فقط اكتب لاول ملف ... كمثال ....
nano /opt/alt/php-fpm73/usr/php/php.ini


ثم كما تعلمنا للبحث ctrl+w
للحفظ ctrl + x
لو خربت الدنيا بامكانك فقط الضغط على الحرف n بعد ctrl +x

ولكن لو كل شي صحيح اضغط فقط على y
ثم انتر



الان ما هي المتغيرات (او الاشياء ) التي يجب تغييرها في هذا الملف

قبل ما نبدا باي شي نضيف هذا السطر باول الملف او بعد [PHP]
reveal_php 0

الان نبدا بتغيير بعض الاشياء

نغير الرقم الموجود امام memory_limit الى 128 ( هناك من يجعله 64 او اقل, اكتب ما تراه مناسبا لك )
memory_limit = 128
لو تحب تقرا اكثر اتفضل
http://php.net/memory-limit

نغير ايضا upload_max_filesize الى 150 وبامكانك كتابة 200 ( ايضا غيره على ما تحتاجه او غير على ما يتطلبه السكربت )

upload_max_filesize = 200
لو تحب تقرا اكثر اتفضل
http://php.net/upload-max-filesize


ثم نغير max_input_time الى 120 ( كما العادة بامكانك كتابة ما تراه مناسب لك )
max_input_time = 120
بامكانك قراءة المزيد عن هذه الخاصية
http://php.net/max-input-time


نغير max_input_vars الى 3000 ونزيل من امامها العلامة ;
( بامكانك عدم تغيير شي او تغييره كما يتطلبه السكربت )
max_input_vars = 3000
بعض استايلات الوورد بريس تفضل 3000

نغير post_max_size الى اكثر من 11 او 11 ( سكربت الرفع كليجا يطلب تغييرها من 8 الى 11 , ولكني وضعتها 32, افعل ما تحتاجه انت )
post_max_size = 32M


نغير max_execution_time الى 120 ( بامكانك ايضا تغييرها كما تشاء ولكني وضعتها 120, وهناك من يضعها 1200 )
max_execution_time = 120

نغير allow_url_fopen الى Off
allow_url_fopen = Off


نغير display_errors الى Off
display_errors = Off


نغير session.cookie_httponly الى 1
session.cookie_httponly = 1


نغير session.referer_check الى On
session.referer_check = On


نتاكد من allow_url_include انها Off
allow_url_include = Off



الان نبحث عن disable_functions لمنع الدوال
بامكانك التعديل على حسب السكربتات وعلى ما تحتاجه

ولكني شخصيا هذه فقط على سيرفري لا اعلم هل يحتاج اضيف او امسح كما قلت على حسب السكربتات اللي حضرتك منصبها
نبحث عن disable_functions ونضع بعدها
posix_setsid,posix_getuid,posix_setpgid,posix_getp wuid.posix_getloginposix_setsid,posix_getgid,posix _getsid,posix_getcwd,posix_getpid,posix_setgid,pos ix_setuid,posix_getppid,posix_setegid,posix_getpgr p,posix_getpgid,posix_seteuid,posix_geteuid,posix_ getegid,posix_getgrnam,posix_getgrgid,posix_access ,highlight_file,dl,exec,sscanf,shell_exec,system,p assthru,popen,pclose,proc_nice,proc_terminate,proc _get_status,leak,apache_child_terminate,posix_kill ,posix_mkfifo,escapeshellcmd,popens,show_source,vi rtual,get_dir,posix_uname,posix_getpwuid,myshellex ec,get_current_user,filegroup,fileowner,_posix_get grgid,_posix_getpwuid,getmyuid,getmygid,symlink,in i_restore,diskfreespace,mysql_list_dbs,chown,chgrp ,phpinfo,meminfo,disk_total_space,disk_free_space, copy,getmicrotime,float,shver,c99sh_surl,timelimit ,surl_autofill_include,gzinflate,ln,error_log,imap _list,hypo,filedump,gethostbyname,safe_mode,ob_cle an,php_uname,apache_getenv,apache_setenv,phpini,do s_conv,get_cwd,dir,cmd,e_name,vdir,only_read,pfsoc kopen,hypot,pg_host,pos,posix_getservbyname,getpid ,posix_isatty,posix_mknod,posix_times,ps_fill,glob al,zip_open,zip_read,rar_open,apache_get_modules,a pache_get_version,phpversionphpinfo,php_ini_scanne d_files,bzopen,bzread,bzwrite,



لم اضع هذه الدوال لانها سببت لي مشاكل في السكربتات التالية
لم اضع
proc_close
proc_open
escapeshellarg
لانه تغلق على الزين فورو ارسال رسائل

ايضا لم اضع
ini_set
لانه عند تنصيبي للزين فورو الجيل الثاني تظهر لي اشارة بانه يجب مسح هذه الدالة
ini_set


ايضا لم اضع
base64_decode
encode64
لانه تظهر معي مشاكل في سكربت كليجا


الان احفظ الملف
ثم يفضل ان تعيد تشغيل السيرفر
reboot


الان كملنا تقريبا كل شي




طريقة التاكد من انه لا يوجد اخطاء في السيرفر ....
ادخل من اللوحة على
/ usr / local / apache / logs /
سوف تجد فايل باسم error_log
اما نفتحه من الشل او نخزنه على الكمبيوتر او عن طريق اللوحة
ثم نقرا
للقراءة عن طريق الشل اكتب
tail /usr/local/apache/logs/error_log
عندي يظهر بانه تم عمل اعادة تشغيل للاباتشي و المود سكيورتي


ولكن بعض الاحيان تظهر هذه المشكلة
AH01873: Init: Session Cache is not configured [hint: SSLSessionCache]

حلها بسيط جدا
nano /usr/local/apache/conf/httpd.conf

او عن طريق الوحة

وازالة # من امامها
#LoadModule socache_memcache_module modules/mod_socache_memcache.so

لتصبح هكذا

LoadModule socache_memcache_module modules/mod_socache_memcache.so


ثم انزل الى اخر الملف ( اخر شي )
وضيف هذا السطر
SSLSessionCache memcache:127.0.0.1:11211

ثم نعيد تشغيل الاباتشي عن طريق اللوحة
او عن طريق الشل
systemctl restart httpd




الان كيف نفعل الباك اب للوحة
نذهب الى CWP Settings
ثم
Backup configuration
ثم Manage Backups
ثم نتاكل بان امام جميع الخيارات علامة صح لتفعليها جميعها
ثم حفظ

ملاحظة مهمة : اللوحة تفعل باك اب كما في باقي اللوحات، ولكن عند استرجاع باك اب لموقع معين يتم استرجاع الملفات فقط, وعليك ان تسترجع الباك اب لقاعدة البيانات يدويا ....






الان امر مهم
وهو تنضيف الكاش من السيرفر

ندخل على Server Settings
ثم Crontab for root

ثم نبحث عن Add Common Cron Jobs

ثم نختار من امام Settings: كم تريد ان يتكرر الامر المطلوب ( بالنسبة لي اختاريت كل 5 دقايق Every 5 Minutes )

ثم من امام Command: نضع امر التنظيف
sync;echo 3 > /proc/sys/vm/drop_caches



الان خلصنا كل شي

باقي بس اكتب لك بعض الاوامر المهمة اللي شخصيا قمت بتجميعها ( واكتبها كل يومين ثلاثة في الشل )
yum update -y
/usr/bin/mysqlcheck -r --all-databases
/usr/bin/mysqlcheck -o --all-databases
systemctl restart mysql
systemctl restart httpd
systemctl restart sshd
systemctl restart lfd
systemctl restart named
systemctl restart nginx
systemctl restart varnish
systemctl restart dovecot
systemctl restart crond.service
csf -r
sync;echo 3 > /proc/sys/vm/drop_caches
reboot


الشرح مفصل امر امر

تحديث السيرفر والبرامج
yum update -y


ضغط وتنظيف قواعد البيانات
/usr/bin/mysqlcheck -r --all-databases
/usr/bin/mysqlcheck -o --all-databases

اعادة تشغيل جدار الحماية
csf -r


اعادة تشغيل بالترتيب
قاعدة البيانات
الاباتشي
الشل
جدار الحماية
الدي ان اس
nginx
فارنش
الكرون جوب
systemctl restart mysql
systemctl restart httpd
systemctl restart sshd
systemctl restart lfd
systemctl restart named
systemctl restart nginx
systemctl restart varnish
systemctl restart dovecot
systemctl restart crond.service


تنظيف الكاش
sync;echo 3 > /proc/sys/vm/drop_caches





هكذا الحمد لله انتهينا من كل شي ومبروك عليكم السيرفر


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


هذا ما لدي
إن أحسنت فمن الله، وإن أسأت أو أخطأت فمن نفسي والشيطان
لا نسالكم سوى الدعاء

سبحانك اللهم وبحمدك اشهد ان لا اله الا انت استغفرك واتوب اليك

السلام عليكم

UnName
06-14-2019, 11:05 AM
تسام ايدك سرح ممتز

MesterPerfect
06-14-2019, 03:20 PM
شيء في غاية الروعة ما شاء الله عليك أخي

شروحات ذهبية

Mighty Dr.Wolf
06-14-2019, 06:31 PM
شيء في غاية الروعة ما شاء الله عليك أخي

شروحات ذهبية

مرورك الذهب يا ذهب
شكرا لك وبارك الله بك
تحيتي

abo-karim
06-15-2019, 01:16 AM
شكرا لك على مجهودك اللى نور جوجل اليومى

https://i.imgur.com/GiiuEBJ.gif

Mighty Dr.Wolf
06-15-2019, 03:24 AM
الحمد لله
شكرا لهيلبرنت لفسح المجال لنا واعطائنا فرصه
افرحتني جدا
شكرا لك
تحيتي

Mighty Dr.Wolf
06-19-2019, 10:02 PM
السلام عليكم
تحديث بسيط للدوال
عند تنصيبي للزينفورو 2.1.2
ظهرت مشاكل عند تنصيب السكربت
فلذلك يرجى مسح الدوال التالية من القائمة اعلى لك يعمل السكربت على اكمل وجه
sscanf
exec
popen



وعند سوال احد المشتركين للزينفورو قال الدعم للزين فورو
لا يتم استخدام exec حاليًا إلا بواسطة XFMG وفقط في حالة تمكين تكامل FFmpeg ، على الرغم من أننا قمنا بإضافته كوظيفة أساسية في حال قررنا استخدامه لمزيد من الأشياء في المستقبل.

يتم استخدام proc_open بواسطة مكتبة البريد الإلكتروني ، لذلك من المحتمل أنك تريد معالجة هذا الأمر أو قد ترى مشكلات في إرسال البريد الإلكتروني.

غالبًا ما يتم تعطيل exec و proc_open لأسباب أمنية ، رغم أن استخدامه يمكن أن يكون آمنًا ومعقولًا إذا تم استخدامه بشكل صحيح. بوجه عام ، لا نوصيك بتجاهل هذه التحذيرات وبدلاً من ذلك يجب أن تبحث لإعادة تمكين هذه الوظائف.
النص الاصلي هنا

exec is currently only used by XFMG and only if FFmpeg integration is enabled, though we've added it as a core function in case we decide to use it for more things in the future.

proc_open is used by the email library so you will most likely want to address this or you may see issues with email sending.

exec and proc_open are often disabled for security reasons though really its usage can be safe and reasonable if used correctly. Generally we wouldn't recommend you ignore these warnings and instead you should look to re-enable these functions.


هذا والله ولي التوفيق

kaikos
06-28-2019, 07:01 PM
السلام عليكم
شرح كافي و وافي
شكرا لك أخي الكريم على الموضوع

Mighty Dr.Wolf
06-28-2019, 07:15 PM
السلام عليكم
شرح كافي و وافي
شكرا لك أخي الكريم على الموضوع

شكرا لك لمرورك الرائع
اسعدتني بردك
بارك الله بك
تحيتي