كثير من الشركات تحصل على سيرفرات مؤجرة ويقددمو خدمات التصميم والدعم الفني لمشاكل السكربتات وغيرها لاكن يغفلو الحماية أو بالاصح يغفلو اجزاء من الحماية.
هذه العشر الخطوات كفيلة بإذن الله بتأمين الحماية الازمة والحماية بيد الله بعد كل شي
1 - إستخدم الفايروول "Firewall" :
تاكد دائماً من عمل الجدار الناري على السيرفر باستمرار .
الجدار الناري مثل الواقي وهي برامج تستخدم للحماية على الشبكة وأما تكون هارد وير او سوفت وير ,الهارد وير يكون جهاز صغير بين الجهاز و الشبكة ,والسوفت وير برنامج موجود في السيرفر. ويعمل الفايرول كفلتر لجميع التصالات القادمة الي السيرفر فتمنع حدوث اي اتصال خارجي الا بأذنك او بضوابط إنت تحددها .
2 - حدث الكيرنل "kernel" ونظام التشغيل "OS" بإستمرار :
تأكد دائما بأن سيرفرك يعمل على أحدث البرامج أو الترقيات الحالية للأنظمة باستمرار لضمان عدم وجود ثغرات في نظامك , إستخدم النسخ المستقرة دائماً "stable" وإذا كنت مش متأكد إسأل مزود الخدمة لديك سواء شركة غربية لسيرفرات أو عربية.
3 - تابع السجلات "logs":
في ملفات اللوق تستطيع إيجاد جميع العمليات المنفذه على سيرفرك وجميع الاخطاء والدخول وغيره.
توجد أداة جميلة ترسل لك رسائل بريد إكتروني بكل العمليات الجديدة المنفذه على نظامك وهي "LogWatch", إذا لم تستخدمها يجب عليك المتابعة بشكل يدوي مثال :
Tail –f /var/log/messages
الامر هذا يعرض لك آخر العميات المنفذة على نظامك وهكذا لجميع ملفات السجلات اللوق.
4 - النسخة الاحتياطية "Backups" :
لا يخفى على الجميع مدى اهمية النسخة الاحتياطية لمواقع العملاء فجهد السنين لابد من المحافظة عليه , لاكن كيف تحافظ على هذه الملفات وقواعد البيانات؟
اعمل نسخة إحتياطية خارج السيرفر او في هارد ديسك آخر وايضا دع لوحة التحكم تقوم بعملها بالنسخ الداخلي اليومي والاسبوعي والشهري ولكن لاتعتمد عليها فقط.
5 - تصاريح الدخول للعملاء :
اقصد طرق الاتصال بالسيرفر لا تعطي العملاء أكثر من إحتياجهم مثلا إعطهم ftp و cpanel وإكتفي فقط ولا تعطيهم أبدا ssh و telnet مهما كانت الاسباب.
6 - السيف مود وإستخدام "Mod_Security":
php خطر للغاية ولا بد من تفعيل اليسف مود لتلافي الاكواد الخبيثة التي قد تأثر بشكل كبير على الموقع وربما السيرفر .
او أغلق الدوال رغم إني أفضل الاولى ومن الدوال :
Disable functions : tempnam, dl, exec, shell_exec, system, passthru, popen, pclose, proc_open, proc_nice, proc_terminate, proc_get_status, proc_close, pfsockopen, leak, apache_child_terminate, posix_kill, posix_mkfifo, posix_setpgid, posix_setsid, posix_setuid, escapeshellcmd, escapeshellarg , hypot, pg_host, pos , posix_access, posix_getcwd , posix_getgid, posix_getpid , posix_getsid , posix_getuid , posix_isatty , posix_kill , posix_mkfifo , posix_mknod , posix_setgid , posix_setsid , posix_setuid , posix_times , posix_uname , ps_fill
إستخدم PHPSuexec و حماية open_basedirectory تستطيع تعديلها من لوحة التحكم whm أو من ملف php.ini.
أغلق كلا من : register_globals , enable_dl , allow_url_open لحماية أكثر.
يمكن أن تدعم الحماية في السيرفر بشكل اكبر إذا إستخدمة mod_security لانه يوقم بعملية فلترة لجميع الطلبات والتاكد من مطابقتها لجميع قواعد الحماية و السماح لها او انهائها قبل ان يتم التخريب.
7 - مجلد tmp :
أغلق المجلدات التالية لأمكانية الهكر او اي شخص ان يصل إليها ويتحكم بها بشكل كامل:
/tmp
/var/tmp
/dev/shm
تستطيع تحديد صلاحيات المجلدات التالية من الملف /etc/fstab , إذا وجدت سطر يحوي مجلد tmp في هذا الملف قم ببحذف السطر وتبديل الي noexec,nosuid
مثال كتالي :
/dev/tmpMnt /tmp ext2 loop,noexec,nosuid,rw 0 0
وبهذه الطريقة تضمن عدم تنفيذ أي أمر في هذا المجلد أيضا إستخدم نفس الطريقة للمجلدات الأخرى واي اختصار لهذه المجلدات.
8 - نظام كشف التطفل "IDS" :
نظام كشف التطفل مثل جرس الانذار على سيرفرك يحتفظ بسجل كامل لتغيرات الملفات على السيرفر ليدرك اي تغير قد يطرأ , مهم جدا لانه الهكر المحترف قد يقوم بتغير اي ملف بينري مثل ps, top, netstat وغيرها , أعني عند تنفيذ اي من الاوامر التالية يقوم بعمل مغاير يخدم الهكر فيه ربما يقوم بتشغيل ملف مخفى آخر للهكر لا تسطيع معرفته بشكل عادي .
من البرامج المهمه : TripWire, Snort و AIDE.
9 - متابعة العمليات والبرامج :
من المهم جدا متابعة جميع العمليات على السيرفر وإزالة أو حذف البرامج الإضافية التي لاتفيد, لانك لاتستطيع حماية نظامك إذا لم تلم بجميع العمليات المنفذه عليه. وكما في الخطوه الثامنة ربما يقوم هكر بتشغيل برنامج خاص له على السيرفر فكيف تقوم بمعرفت العمليات ؟
الامر top او ps auxfww يساعدك بشكل كبير في معرفة العمليات المنفذه في الوقت الحالي على السيرفر تابع عمل السيرفر من وقت لآخر لتلاحظ العمليات الدخيلة المنفذه وقم بإنهائها فورا ً.
10- راقب سيرفرك بشكل يومي :
سرعة بداية التشغيل , البانوديث المستخدم يوميا , سرعة السيرفر , الضغط على السيرفر , راقب كل شي بشكل عام ربما تم إختراق موقع على سيرفرك وقام المخترق بإستغلالة بطريقة مخالفة لقواعد استضافتك..
الآن تستطيع بعد عمل هذه الخطوات أن تقول إنك محمي بشكل جيد لاكن تبقى أمور أخرى أكثر تفصيل وتعقيد من هذه ولكن بهذه الخطوات العشرة فقد قمت بعمل جميع الخطوات الاساسية لحماية سيرفرك
وايضا لاننسى تحديث الخدمات لدينا مع الكيرنل اما بالنسبة للـPHP فالطرق كثيره لمنعه سوا من بعض الدوال الخطيره (( والغير مشهوره)) او تفعيل الوضع الامن ولو انني سأقول ان الوضع الامن موضوع والدوال موضوع آخر .
بالنسبة لملفات اللوق هذا شئ مفيد جدا ومتابعتها بشكل يومي لزياده الامان ومتابعة حالة الخادم لديك ويوجد برامج كثيره تنظم سير ملفات اللوق وايضا تسجيلها .
وايضا حماية مجلد Tmp شئ ضروري وله عدة طرق اذا سمح لنا الوقت للتطرق لها ليس لدي مانع
وايضا التصاريح وغيره من الخدمات الكثيره التى لاتفيدك كا مدير ولكن مفيده للمخترق فا اغلاقها يثير الشفقه على المخترق
الجزء الثاني راقب اللود على سيرفرك
الكثير من أصحاب السيرفرات يعانون من ارتفاع اللود و بالتالي بطئ في السيرفر واضح مما يضعف الأداء ويزعج العملاء ( شعر ) :D
وهنالك عدة طرق نعرف من خلالها مقدار الضغط على السيرفر او نسبة اللود على السيرفر نستعرضها سريعا
1/ Service Status
من خلال لوحة تحكم السيرفر WHM
2/ من خلال الأمر uptime root@yoursite.com [~]# uptime
08:56:22 up 28 days, 10:33, 1 user, load average: 0.21, 0.53, 1.43
انسخوا المثال بالمفكرة حتى يتضح أكثر
3/ من خلال الأمر w root@yoursite.com [~]# w
09:07:26 up 28 days, 10:44, 1 user, load average: 0.86, 0.61, 0.98
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 63.171.19.208 8:56am 0.00s 0.06s 0.04s w
4/ وبما ان كل الطرق تؤدي الى مدريد فما راح نسترسل كثير حول كيفية استعراض اللود ولنختر افضل الطرق الا وهيا باستخدام الأمر top ..
لانها بتعرض لك بالتفصيل كل العمليات وزمن كل عملية وموقع الضغط في السيرفر ( على اي خدمة ) اضافة الى اللود على الذاكره و تعرض لك المعالجات حسب الاستخدام على كل معالج .. الخ
PID USER PRI NI SIZE RSS SHARE STAT %CPU %MEM TIME CPU COMMAND
4088 mysql 15 0 72164 56M 1424 S 99.9 2.8 3:51 1 mysqld
10 root 16 0 0 0 0 SW 7.7 0.0 15:44 1 kscand/HighMe
15136 root 19 0 1392 1392 856 R 3.8 0.0 0:00 1 top
4350 root 15 0 2800 2576 808 S 2.8 0.1 9:48 1 httpd
1 root 15 0 112 80 56 S 0.0 0.0 0:10 1 init
الان بعد ما استعرضنا كيفية معرفة اللود على السيرفر يحق لسائل ان يسال عن معرفة ما هو اللود المناسب للسيرفر طبعا برأيي ان اللود يكون في أفضل حالاته عندما يكون أقل من 1.0 لان الـ 1 يعني 100% وأستغرب لما اشوف بعض السيرفرات اللود يوصل فيها الى 50.0 او حولها :eek: مشكلة وقد تؤدي الى انهيار السيرفر باسوأ الاحتمالات ويجب معرفة مصدر الضغط وعمل ترقية مباشرة للسيرفر .. الخ
اما ان وصل اللود لاكثر من 2.0 فهنا لابد من ايجاد حل لهذه المشكلة اما بالترقيه او اصلاح المشكلة التي تسبب الضغط ويجب ان نستثني الضغط الناتج عن الباك اب او اي عمليه معروفة من قبلك قمت بها انت .. لاني اتكلم عن اللود الطبيعي للسيرفر من غير تدخل منك .
---------- الان نأتي لشرح برنامج رائع جدا لمراقبه اللود ومراقبة الاب تايم للخدمات الموجودة وله مميزات كثيرة منها ---------
مراقبة الخدمات كالـأباتشي HTTP والاف تي بي FTP والبايند DNS والـ Mysql .. الخ
وعمل ريستارت لاي خدمة فيها مشكلة او غير متوفره( Down ) تلقائيا ..
ومراقبة حجم اللوج للاباتشي اضافة الى سهولة تركيب و اعداد البرنامج والكثير من المميزات التي اترك لكم المجال لتستكشفوها بمحض تجاربكم |2| ..
البرنامج هوا SIM وهوا اختصار لـ System Integrity Monitor
طريقة تركيب البرنامج سهله جدا
root@yoursite.com [~]#wget http://www.r-fx.org/downloads/sim-current.tar.gz root@yourmail.com [~]# tar -zxvf sim-current.tar.gz
root@yoursite [~]# cd sim-2.5-3
root@yoursite [~/sim-2.5-3]# ls
./ ../ CHANGELOG CREDITS GPL install/ README setup* root@yoursite.com [~/sim-2.5-3]# ./setup
SIM 2.5-3 <sim@r-fx.org>
usage ./setup
-i Install
-q Quick install
-u Uninstall
-c Install/Uninstall cronjob
root@tl4s06 [~/sim-2.5-3]# ./setup -i
SIM 2.5-3 <sim@r-fx.org>
Press return, to view the GPL lisencing for SIM 2.5-3.
وبياخذ بكم لفة على اتفاقية الـ GNU ومن ثم ملف الـ README وبعدها بيطلب منكم تحديد بعض المسارات
Where is SIM installed ?
[/usr/local/sim]:
Where should the sim.log file be created ?
[/usr/local/sim/sim.log]:
Max size of sim.log before rotated ? (value in KB)
[128]:
... etc
طبعا لعشاق الـ Enter يشتغلوا انتر من غير لا يقروا شئ عشان يريحوا بالهم ( غير منصوح به :p ) حتى يتم التنصيب وانتهى وتابعوا ملف الـ README مع البرنامج لتتعرفوا اكثر على