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


لدينا اليوم درس رائع وشيق من دروس السيرفرات درسنا اليوم يتكلم عن تفعيل الحماية في الفايرول csf


تعلمنا في الدرس السابق طريقة تركيب الفايرول والان سنتعلم طريقة تفعيل الحماية


طبعا مجرد تركيب الفايرول لاتعتبر حماية ولكن من مميزات هذا البرنامج انه ينبهنا عن النقاط التي يحتاجها للحماية


اولا ندخل لوحة WHM ونتبع المسار التالي :


كود PHP:
Home » Plugins » ConfigServer Security Firewall 



انظر الى الصورة التالية لتوضيح





ثم نضغط على


كود PHP:
Check server Security 

كما في الصورة التالية







سوف تظهر لدينا مثل هذه الصورة هنـــــــــــــــا وهذه عبارة عن تحذيرات يطلب منك الفايرول ضبطها لتصبح اكثر حماية




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




التحذير الاول


كود PHP:
Check php for disable_functions 






يطلب منك في هذا التحذير اغلاق بعض الدوال الخطيرة


افتح الشيل (الترمنال ) طبق الامر التالي


كود PHP:
nano /usr/local/lib/php.ini 



اضغط ctrl+w للبحث والصق disable_functions


راح تجدها بهذه الطريقة


كود PHP:
disable_functions 

الصق الدوال التالية امامها بعد علامة =


كود PHP:
dl,system,shell_exec,proc_open,proc_nice,proc_close,passthru,exec,escapeshellcmd,escapeshellarg,symlink,fsockopen,virtual,link,apache_get_version,apache_get_modules,apache_child_terminate,apache_setenv,posix_uname,posix_access,posix_setuid,posix_setsid,posix_setpgid,posix_setgid,posix_seteuid,posix_setegid,highlight_file,show_source,popen,posix_mknod,posix_mkfifo,posix_kill,posix_getuid,posix_getsid,posix_getpwuid,posix_getpwnam,posix_getgrnam,posix_getgrgid,posix_getgid,posix_geteuid,posix_getegid,posix_getegid,php_uname,pcntl_exec,curl_exec,curl_multi_exec,syslog,mysqli_set_local_infile_handler,mysqli_options,pfsockopen,session_save_path,mysqli_set_local_infile_handler,mysqli_options,pfsockopen,phpversion,phpinfo 





لاحظ ان الدوال و disable_functions في سطر واحد


بعدها قم بضغط ctrl+x للخروج من الملف سوف يسألك هل تريد الحفظ اضغط y بعدين انتر سوف يقوم بإغلاق الملف الان طبق الامر التالي


كود PHP:
service httpd restart 

لعمل ريستارت للاباتشي لو كانت عندك مواقع تعمل على سكربت الورد بريس ولم تشتغل بعد اقفال هذه الدول قم بإزالة الدالة phpversion بحذفها من سطر الدوال ثم قم بالحفظ واعادة تشغيل الاباتشي




التحذير الثاني


كود PHP:
SMTP_BLOCK option check 







هنا يخبرنا ان حماية البريد غير فعالة في الفايرول نتجه الى القائمة الرئيسية للفايرول ثم نضغط على


كود PHP:
Firewall Configuration 



كالصورة التالية







بعد ما ضغطنا على خيار اعدادات الفايرول نضغط من الكيبورد ctrl+f تظهر لنا نافذة البحث في المتصفح نلصق السطر التالي


كود PHP:
SMTP_BLOCK 

سوف يظهر معنا الخيار الخاص بحماية البريد كالصورة التالية





نمسح 0 ونضع رقم 1 ثم نضغط انتر لاعادة تشغيل الفايرول ونتابع كالصورة التالية





التحذير الثالث


كود PHP:
LF_INTEGRITY option check 




ايضا كما فعلنا في الخطوات السابقة نتجه الى


كود PHP:
Firewall Configuration 

ثم نبحث عن


كود PHP:
LF_INTEGRITY 

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


اذا كانت مواصفات السيرفر ضعيفة لديك فالافضل عدم تفعيله


سوف تجده كالصورة التالية :





لاحظ انا وضعنا الرقم 86400 وهو يمثل فاصل الثواني بين عملية فحص والعملية التي تليها بعد ما تم التعديل نطبق الطريقة السابقة انتر ثم ريستارت للفايرول




التحذير الرابع


كود PHP:
PT_SKIP_HTTP option check 




نفس الطريقة السابقة ندخل على


كود PHP:
Firewall Configuration 



ونبحث عن


كود PHP:
PT_SKIP_HTTP 




نقوم بوضعه 0 ثم نضغط انتر ونختار ريستارت


التحذير الخامس


كود PHP:
PT_ALL_USERS option check 




نفس الطريقة السابقة ندخل على


كود PHP:
Firewall Configuration 

ونبحث عن


كود PHP:
PT_ALL_USERS 




نقوم بتغيير 0 الى 1 ثم نضغط انتر ونختار ريستارت للفايرول هذا الخيار يقوم بتتبع جميع الحسابات على الخادم




التحذير السادس


كود PHP:
UI_TIMEOUT sanity check 




نفس الطريقة السابقة نقوم بالدخول على


كود PHP:
Firewall Configuration 

ثم نبحث عن


كود PHP:
UI_TIMEOUT 




نضع الرقم 300 ثم انتر واعادة تشغيل للفايرول هذا الخيار خاص بقتل عملية تسجيل الدخول بمعنى لو فتحنا صفحة السيبنل وتركناها لمدة 300 ثانية اي مدة 5 دقائق سوف يطلب منا تسجيل الدخول مرة اخرى




التحذير السابع


كود PHP:
Check MySQL LOAD DATA disallows LOCAL 




هذا التحذير يخص قواعد البيانات في السيرفر


ندخل الشيل ثم نطبق الامر التالي :


كود PHP:
nano /etc/my.cnf 

راح يفتح لنا ملف نحط اخر الملف


كود PHP:
local-infile=

ليصبح كالصورة التالية





ثم نطلع من الملف من خلال ctrl+x من الكيبورد راح يوجه لك سؤال هل يحفظ عملك اضغط من الكيبورد حرف y ثم انتر


بعدها طبق الامر التالي لإعادة تشغيل قواعد البيانات واعتماد تعديلك


كود PHP:
/etc/init.d/mysql restart 

راح يكون الناتج كالصورة التالية





اذا لم يكن الناتج كالصورة السابقة وظهر معك خطاء ارجع وامسح الي سويته في ها الملف او مثلا ظهر معك اخطاء في قواعد بيانات المواقع رجع الملف my.cnf كما كان ثم سو ريستارت للقواعد


بما اننا في الشيل الان نسوي ريستارت للفايرول بتنفيذ الامر التالي


كود PHP:
service lfd restart 



التحذير الثامن


كود PHP:
Check for cxs 




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




هذه الاضافة مدفوعة وسأقوم بشرحها في دروس لاحقة ولذهاب الى موقع الاضافة اضغط هنـــــــا




التحذير التاسع


كود PHP:
Check for CloudLinux 




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


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




التحذير العاشر


كود PHP:
Check SSH on non-standard port 






هذا التحذير يطلب منك تغيير منفذ الشيل port من 22 الى اي رقم آخر


نقوم بالدخول الى


كود PHP:
Firewall Configuration 

ثم نبحث عن


كود PHP:
TCP_IN 

ثم نضيف البورت الجديد


في TCP_IN و TCP_OUT ليصبح كالتالي





لاحظ ان البورت الجديد 4444 ولاحظ ايضا قبل الرقم وبعده فاصلة لابد ان يكون الرقم مكون من رقمين الى خمس ارقام كحد اقصى ايضا تاكد انه مختلف عن البورتات الموجودة


بعد ما اضفناه في الفايرول نضغط انتر ثم ريستارت


الان نتجه الى نافذة الشيل ونطبق الامر التالي


كود PHP:
nano /etc/ssh/sshd_config 

الان نبحث عن Port ونمسح رقم 22 ونضع البورت الجديد ونمسح علامة # الي قبل port لتصبح كالتالي







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


كود PHP:
/etc/rc.d/init.d/sshd restart 



لاحظ انا قمنا بفتح البورت في الفايرول ثم اضفنا نفس البورت في اعدادات السيرفر عن طريق الشيل اخرج من الشيل الان وقم بالدخول الى الشيل مرة اخرى عن طريق البورت الجديد


اذا حصلت معك اي مشاكل في الدخول الى الشيل راجع هذا الموضوع هنـــــــــــا


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




التحذير الحادي عشر


كود PHP:
Check shell limits 




هذا التحذير يطلب منك تفعيل خاصية Shell Fork Bomb Protection لحماية موارد النظام من الاستهلاك بالكامل ولتفعيل هذا الخيار اتبع المسار التالي


كود PHP:
Home »Security Center »Shell Fork Bomb Protection 

قم بتفعيلها لتصبح كالصورة التالية







Enabled = يقصد بها تم التفعيل




التحذير الثاني عشر


كود PHP:
Check Background Process Killer 




هذا التحذير يطلب منك قتل بعض العمليات التي تتم على السيرفر وهذه العمليات قد تكون طريق لهجمات الحرمان للمزيد حول هذه البرامج اضغط هنـــــــــــا




الان نتبع هذا المسار


كود PHP:
Home »System Health »Background Process Killer 

ونقوم بتفعيلها جميعا لتصبح كالتالي







التحذير الثالث عشر


كود PHP:
Check root forwarder 






هذا التحذير يطلب منك تفعيل ايميل root ترسل عليه التحذيرات والتنبيهات ندخل هذا المسار ونحط الايميل في اول خانة


كود PHP:
Home »Server Contacts »Edit System Mail Preferences 

كالصورة التالية :









التحذير الرابع عشر

سوف نقوم بحل جميع التحذيرات المندرجة تحت Apache Check


كود PHP:
Check apache for TraceEnable 

كود PHP:
Check apache for ServerSignature 

كود PHP:
Check apache for ServerTokens 

كود PHP:
Check apache for FileETag 




هذه التحذيرات بيطلب منك تعطيل بعض الخواص المتاحة اتبع المسار التالي


كود PHP:
Home »Service Configuration »Apache Configuration »Global Configuration 



اجعلها كالصورة التالية







اضغط حفظ من اسفل الصفحة سينقلك تلقائيا الى صفحة عمل ريستارت للاباتشي طبق مافي الصورة التالية





بعد عمل ريستارت تاكد ان يكون الناتج كالتالي





التحذير الخامس عشر

كود PHP:
Check Anonymous FTP Uploads 

كود PHP:
Check FTP Logins with Root Password 




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


كود PHP:
Home »Service Configuration »FTP Server Configuration 

طبق الشرح المصور التالي :






راح نضغط حفظ من اسفل الصفحة وهوى راح يحفظ ويسوي ريستارت لل FTP الناتج كالتالي









التحذير السادس عشر









وراح نتناول شرح كل تحذير على حده


كود PHP:
Check cPanel login is SSL only 

هذا التحذير بيطلب منك تفعيل SSL الاتصال الامن عند فتح لوحة التحكم


اتجه الى هذا المسار


Home »Server Configuration »Tweak Settings


طبق تسلسل الارقام في الصورة التالية









كود PHP:
Check boxtrapper is disabled 

هذا التحذير خاص بالسبام نتجه الى المسار التالي


كود PHP:
Home »Server Configuration »Tweak Settings 

نختار التصنيف mail نبحث عن


كود PHP:
Enable BoxTrapper spam trap 

ونضعهاكالصورة التالية بعدين حفظ من اسفل الصفحة







كود PHP:
Check max emails per hour is set 

هذا التحذير ايضا خاص بالبريد وهو يحدد كمية الرسائل لكل user في الساعة نتجه الى


كود PHP:
Home »Server Configuration »Tweak Settings 

نختار التصنيف mail نبحث عن


كود PHP:
Max hourly emails per domain 

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











كود PHP:
Check proxy subdomains 

لحل هذا التحذير نتجه الى


كود PHP:
Home »Server Configuration »Tweak Settings 

نختار التصنيف domains نبحث عن


كود PHP:
Proxy subdomains 










كود PHP:
Check accounts that can access a cPanel user 

هذا التحذير خاص بمنع دخول الجذر الى حسابات user اهمية هذا التحذير اي انه لو احد قدر يوصل الى صلاحية root راح يقدر يتنقل في جميع المواقع كمان اصحاب الليسلرات لو احد وصل لعضوية واحد منهم راح


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


لحل هذا التحذير نتجه الى


كود PHP:
Home »Server Configuration »Tweak Settings 

نختار التصنيف system نبحث عن


كود PHP:
Accounts that can access a cPanel user account 




1 يقصد به ان الروت و حساب الموزع الليسلر و اليوزر نفسه يقدرون يخشون الحسابات التي تنتمي لهم
2 يقصد به ان صاحب الليسلر و الحسابات التي قام باستضافتها يقدر ييتنقل بها بدون باسبورد
3 يقصد به صاحب الحساب نفسه من يقدر على الدخول الى السيبنل






كود PHP:
Check Referrer Blank Security 

هذا التحذير خاص بالحماية حيث يحد من استخدام ثغرات XSRF


كود PHP:
Home »Server Configuration »Tweak Settings 

نختار التصنيف security نبحث عن


كود PHP:
Blank referrer safety check 

نضعها on لتمكين الحماية من هذا النوع من الثغرات كالصورة التالية









كود PHP:
Check Referrer Security 

هذا التحذير خاص بالحماية ايضا الداخلية حيث يحد من استخدام ثغرات XSRF


كود PHP:
Home »Server Configuration »Tweak Settings 

نختار التصنيف security نبحث عن


كود PHP:
Referrer safety check 

نقوم بوضعها on كالتالي









كود PHP:
Check Password ENV variable 

هذا الخيار يقيد استخدامات المتغير REMOTE_PASSWORD بحيث ان اي مخترق يستخدم cgi يصعب عليه الوصول الى كلمات المرور عبر هذا المتغير


نتجه الى






كود PHP:
Home »Server Configuration »Tweak Settings 

نختار التصنيف security نبحث عن


كود PHP:
Hide login password from cgi scripts 

نقوم بوضعها on كالتالي











التحذير السابع عشر


كود PHP:
Check php for ini_set disabled 





هذا التحذير يقول لك امنع الدالة ini_set ماراح اكرر شرحها مشروحة في التحذير الاول اضف ini_set بين الدوال السابقة ولكن هذه الدالة مهمه جدا لعمل بعض السكربتات منها vb




التحذير الثامن عشر




كود PHP:
Check SUPERUSER accounts 




هذا التحذير بيخبرك انه يوجد يوزر على السيرفر لديه صلاحية root


ندخل السيرفر من نافذة الشيل نطبق الامر التالي


كود PHP:
grep --"^#" /etc/passwd awk -F'$3 == 0 { print $1}' 

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


كود PHP:
userdel -f stylis7 
مع تغيير stylis7 الى اسم اليوزر الظاهر لديك


طبعا لو كان هذا اليوزر لايملك موقع على السيرفر تطبق الامر السابق لحذفه اما لو كان صاحب موقع فلانطبق الامر السابق كي لانحذفه بالكامل من السيرفر ولكن نغير صلاحيات اليوز من المسار التالي


كود PHP:
Home »Account Functions »Manage Shell Access 

راح نجد جدول فيه ثلاث خيارات


الخيار الاول : Disabled Shell تعطيل الشيل عن الحساب


الخيار الثاني : Jailed Shell السماح باستعمال الشيل مع وضع بعض القيود


الخيار الثالث : Normal Shell اتاحة الشيل للحساب


هنا نختار لجميع الحسابات Disabled Shell لاجل نمنع عليهم هذه الخاصية




التحذير التاسع عشر


كود PHP:
Check SSH PasswordAuthentication 




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


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


لتفعيل هذه الخاصية توجه الى المسار التالي :


كود PHP:
Home »Security Center »Manage root’s SSH Keys 

الصورة التالية لتوضيح





بعد ما تسوي مفتاح احفظه بجهازك وسو له ادارج في برنامج putty ماحد يقدر يخش السيرفر حتى لو كان يملك باسبورد الروت الا عن طريق هذا المفتاح


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




التحذير الاخير


كود PHP:
Check server startup for portreserve 






هذا التحذير بيطلب منك ايقاف الخدمة portreserve stop من وجهة نظري ان ايقاف هذه الخدمة ليس مهم للحماية


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


فكل مازادت الحماية قلت جودة فتح المواقع وسلاستها على السيرفر والفايرول كما نعلم انه لا يشكل الا جزء بسيط من الحماية اهم منه اعدادات php والاباتشي لذلك جميع التحذيرات السابقة


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




تمنياتي لكم باطيب الاوقات

كلمات البحث

انيق ،ديزاين ،تصاميم ،صور ،سيرفرات ، دروس، برامج ، استضافة، هاكات ، استايلات