دورة ادارة السيرفرات
بتاريخ 15/02/2009

7- كيف تختار سيرفرك

8- الأعدادات الأوليه لسيرفر الأستضافه

9- إجراءات الحماية لسيرفر الأستضافه

10- عرض جميع مشاكل السيرفرات مع شرح لكيفية التعامل معها وحلها

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

7- كيف تختار سيرفرك

7- اختيارك للسيرفر المناسب لموقعك او حتى اختيار سيرفر لتقديم خدمة الاستضافة

تعتمد السيرفرات على سرعة المعالج وقوته وعدد الرام المستخدم بالسيرفر

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

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



كود:
Dual Core Xeon 3060
2 GB DDRII 667
1 x 250GB SATA II
4 أو 8 ip's
100 Mbps Public & Private Networks
2000 GB Bandwidth
cPanel/WHM with Fantastico and RVskin
CentOS 5 (32 bit)
Processor #1 Vendor: GenuineIntel
Processor #1 Name: Intel(R) Xeon(R) CPU 3060 @ 2.40GHz
Processor #1 speed: 2394.739 MHz
Processor #1 cache size: 4096 KB

Processor #2 Vendor: GenuineIntel
كود:
 
Processor #2 Name: Intel(R) Xeon(R) CPU 3060 @ 2.40GHz
Processor #2 speed: 2394.739 MHz
Processor #2 cache size: 4096 KB


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

عملائك ويمكنك تشغيل 50 موقع بحجم الوسط دون اي مشكلة


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

كود:
 
Disk Space 10 Gb Bandwidth 150 GB Guaranteed RAM 256 MB IPs 3 مواصفات السيرفر الاصلي Hardware Details: * Dual Core Dual Xeon Woodcrest Processors (4 Core Total) * 4 GB Registered ECC DDR RAM * SAS RAID 10 for optimal redundancy and performance * Redundant Power Supplies


او اختيار سيرفر مستقل " كامل "
كود:
 
Dual Core Xeon 3060 512MB او 512MB DDRII 667 1 x 80GB SATA II 4 ip's 100 Mbps Public & Private Networks 2000 GB Bandwidth cPanel/WHM with Fantastico and RVskin CentOS 5 (32 bit) Processor #1 Vendor: GenuineIntel Processor #1 Name: Intel(R) Xeon(R) CPU 3060 @ 2.40GHz Processor #1 speed: 2394.739 MHz Processor #1 cache size: 2048 KB
-----------------------------------------------------------------------------

8- الأعدادات الأوليه لسيرفر الأستضافه

حماية الاباتشي

بالبدايه ناخذ نسخة احتياطيه من الاباتشي بالامر

كود PHP:
cp /u sr/local/apache/conf/httpd.conf /u sr/local/apache/conf/httpd.conf.inv 
نفذ الامر

كود PHP:
pico /u sr/local/apache/conf/httpd.conf 
ابحث عن

كود PHP:
AllowOverride All 
وحولها الى

كود PHP:
AllowOverride None 
ابحث عن

واضف ان لم تجدها

كود PHP:
LoadModule php4_modulelibexec/libphp4.so 
الان سوف نقوم اخفاء معلومات الاباتشي من صفحة الملفات التي لا تحتوي على اندكس
ابحث عن


كود PHP:
ServerSignature on 
وحولها الى

كود PHP:
ServerSignature off 
الان اضغط ctrl +x لحفظ الملف

في النهايه اضف امر

كود PHP:
httpd restart 
انتهينا بحمد الله من الاباتشي


حماية mysql

نفذ الامر


كود PHP:
pico /e tc/my.cnf 
واضف هذا السطر

كود PHP:
set-variable=local-infile=
الان اضغط ctrl +x لحفظ الملفثم نفذ الامر


كود PHP:
service mysql restart 
حماية php


ندخل على البي اتش بي بالامر هذا


كود PHP:
pico /u sr/local/lib/php.ini 
الان قبل نبدا راح اعطيك كلمات تبحث عنها وطريقة البحث كنترول +w حط الكلمه وانتر الان ساضع القيم امامك اجعلها مطابقة في سيرفرك


كود PHP:
safe_mode On 
كود PHP:
open_basedir On 
كود PHP:
allow_url_fopen Off 
كود PHP:
expose_php Off 
كود PHP:
disable_functions="dl,passthru,pfsockopen,system,exec,passthru,popen,shell_exec,proc_close,proc_open,proc_nice,proc_terminate,proc_get_status,posix_getpwuid,posix_uname,openlog,syslog,ftp_exec,posix_uname,posix_getpwuid,posix_kill,posix_mkfifo,posix_setpgid,posix_setsid,posix_setuid,get_current_user,getmyuid,getmygid,listen,chgrp,chmod,apache_note,apache_setenv,apache_child_terminate,closelog,debugger_off,debugge_on,ini_restore,imap,tempnam,netscript,copy,curl_init,curl_exec,curl,escapeshellcmd,escapeshellarg,tmpfile,cmd,backtick,virtual,show_sourc,show_source,pclose,pcntl_exec,datasec,old_offset,ctrl_dir,ini_alter,passthru,leak,listen,chgrp,apache_setenv,define_syslog_variables,phpinfo,root,allow_url_fopen,diskfreespace,php_uname,disk_free_space,disk_total_space,posix_kill,getmyuid,getmygid,apache_child_terminate,mkdir,unlink,php_ini_scanned_files,ls,ps_aux,chown,realpath,fpassthru,getrusage,posixc,posame,chgrp,posix_setuid,posix_setsid,posix_setgid,set_time_limit,apache_note,apache_setenv,x_getuid,e_ini_file,nfo,SQL,mysql_list_dbs,glob,error_log,ini_get_all,fileowner,fileperms,filegroup,highlight_file,sscanf,tempnam,ilegetcontents,get_dir,popen,popens,pfsockopen,dos_conv,apache_get_modules,crack_check,crack_closedict,zip_read,rar_open,bzopen,bzread,bzwrite,shellcode,posix_isatty,posix_getservbyname,escapeshellarg,hypot,pg_host,pos,posix_access,inurl,posix_times,posix_mknod,passthru,pclose,ps_fill,posix_getegid,symlink,id 
واقدر اقولك هذي الدوال متنقيها نقوه بأذن الله انها تكون شامله

الان سو بحث على

كود PHP:
include_path ".:/u sr/local/lib/php" 
وحولها الى

كود PHP:
include_path "/u sr/lib/php:/u sr/local/lib/php:/tmp:/home" 
انتهينا من الشل نروح الى لوحة الرووت

نروح لـ WHM >> apache Update

ثم تضغط الزر الاول load Previous Config

بعدها نختار من القائمة :


php 4.4.7
SafeMode
Freetype Support
PHP suEXEC Support
Rewrite Module
suEXEC Module

وتضغط Start Build

انتظر الين ينتهي ويطلع لك Build Complete

انتهت حماية الـ php


حماية ssh " الشل "

بالبدايه نفذ امر


كود PHP:
pico -/e tc/ssh/sshd_config 
ابحث عن النص بالامر Ctrl +W

[php]#Protocol 2, 1 [/php

وحوله الى

كود PHP:
Protocol 2 
لاتنسا تشيل #
الان تغيير منفذ الاتصال وهذا شي راجعلك انا بحط الطريقه فقط علما ان المنفذ الاساسي 22

ابحث عن

كود PHP:
#Port 22 
وحولها الى

كود PHP:
Port 3567 
ضع مكان 3567 اي رقم يتكون من 4 ارقام فقط وسوف يكون هو منفذ الاتصال

**ملاحظه مهمه يجب ان تتأكد من المنافذ المستخدمه بالسيرفر مثلاا الافتيبي يستعمل منفذ 21 لكي لاتتعارض المنافذ وسوف اسرد لك قائمة بالمنافذ المستخدمه

كود PHP:
20,21,22,25,53,80,110,143,443,465,953,993,995,2077,2078,2082,2083,2086,2087,2095,2096 
الحين ابي اعرض عليكم فكره بالحمايه قويه بس هذي راجعه لك وهي تخص حماية ssh والفكره هي جع السيرفر لايقبل اتصال ssh الا من ايبي معين يعني لو اي واحد ثاني معه باسوورد الروت ماراح يدخل على الشل نهائيا ولكن شروطها اما انك تتصل من سيرفر ثاني لان سيرفرات الاستضافه ايبياتها ثابته او انك تشتري ايبي ثابت لجهازك بالبيت من الشركة الاتصال المزوده لك اذا اخترت الخيار الاول فأمر الاتصال من سيرفر لسيرفر هو:


كود PHP:
ssh 11.11.111.111 -lroot 
اذا اخترت الخيار الثاني اتصل من البيوتي مباشره من جهزك والطريقه هي في نفس الملف ابحث عن

كود PHP:
#ListenAddress 0.0.0.0 
وحولها الى

كود PHP:
ListenAddress 0.0.0.0 
وحط الايبي الثابت اللي لك ولاتنسى تشيل #

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

كود PHP:
#PermitRootLogin yes 
وعدلها الى

كود PHP:
PermitRootLogin no 
لاتنسى تشيل #
بعد الانتهاء نفذ الامر

كود PHP:
/e tc/rc.d/init.d/sshd restart 
حماية perl

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

كود PHP:
cp /u sr/local/apache/conf/httpd.conf /u sr/local/apache/conf/httpd.conf.inv 
الطريقه نفذ الامر

كود PHP:
pico /u sr/local/apache/conf/httpd.conf 
ابحث عن

كود PHP:
AddHandler cgi-script .cgi .pl 
وضع امامها # ليكون الناتج

كود PHP:
#AddHandler cgi-script .cgi .pl 
الان اضغط ctrl +x لحفظ الملف ثم

كود PHP:
httpd restart 
ثم قم بتنفيذ الامر

كود PHP:
chmod 744 /u sr/bin/perl 
هكذا تم ايقاف البيرل نهائيا ولتشغيله نفذ الامر

كود PHP:
chmod 755 /u sr/bin/perl 
الحماية من ال spam

نفذ الامر

كود PHP:
 pico /e tc/exim.conf 
ابحث عن

كود PHP:
 spamd_address 127.0.0.1 783 


وضع فوقها

كود PHP:
log_selector = +arguments +subject 
ليصبح الشكل النهائي

كود PHP:
log_selector = +arguments +subject 
 spamd_address 
127.0.0.1 783 
ثم نفذ الامرين كل واحد على حدى

كود PHP:
service exim restart 
service cpanel restart 



حماية مجلد الـ tmp


نفذ الامر

كود PHP:
pico /e tc/fstab 
ابحث عن

كود PHP:
LABEL=/t mp  /t mp   ext3   defaults 
/t mp   v ar/t mp  ext3    defaults,bind,noauto 
راح تحصل ان كل وحده بسطر وقادم السطر فيه كلمة defaults قدام هالكلمة اضف


كود PHP:
noexec,nosuid 
راح تحصل ان الشكل النهئي صار

كود PHP:
LABEL=/t mp  /t mp  ext3  defaults,noexec,nosuid 
/t mp  /v ar/t mp  ext3    defaults,noexec,nosuid,bind,noauto 
ثم نفذ هالامرين

كود PHP:
umount /d ev/shm 
mount 
/d ev/shm 



حماية ملفات ومجلدات النظام


نفذ الاوامر التاليه

كود PHP:

echo > /proc/sys/net/ipv4/tcp_synies 
chmod 750 
/u sr/bin/rcp 
chmod 750 
/u sr/bin/wget  
chmod 750 
/u sr/bin/scp 
chmod 000 
/e tc/httpd/proxy
chmod 000 /v ar/spool/samba/  
chmod 000 /v ar/mail/vbox/  
chmod 000 /u sr/bin/perlcc  
chmod 000 
/u sr/bin/byacc  
chmod 000 
/u sr/bin/yacc  
chmod 000 
/u sr/bin/bcc  
chmod 000 
/u sr/bin/cc  
chmod 000 
/u sr/bin/gcc  
chmod 000 
/u sr/bin/i386*cc 
/scripts/compilers off 
الجدار النارى مهم جدا لاصحاب السيرفرات ويوجد من اكتر جدار نارى ولكن اخترت لكم اليوم هذا الجدار القوى والسهل فى التعامل وهو CsF

وهو يعمل على انظمة اللينكس التاليه

كود PHP:
RedHat v7.3v8.0v9.0
RedHat Enterprise v3
v4v5 (32/64 bit)
CentOS v3v4v5 (32/64 bit)
Fedora Core v1v2v3v4v5v6v7v8 (32/64 bit)
     
openSUSE v10
Debian v3.1 
(sarge)
Unbuntu v6.06 LTS 
افتح الشل ونسحب البرنامج

كود PHP:
su
then tabe rootpasswd 
كود PHP:
wget http://www.configserver.com/free/csf.tgz 
ثم فك الضغط بالامر التالى

كود PHP:
tar -xzf csf.tgz 
بعد فك الضغط ادخل على المجلد

كود PHP:
cd csf 
لبدء عمليه التثبت ولكن عليك اذا كنت تستخدم فايرول اخر عليك بايقافه

كود PHP:
sh install.sh 
واذا كنت تملك whm تستطيع التعديل فى الملفات تحت المسار التالى لتشغيلها فى لوحة التحكم

كود PHP:
/etc/csf/* 
للمزيد
ConfigServer Security & Firewall


بعد التثبيت لا تنسى

2- اعادة تشغيل csf &lfd

3- تغير حاله التجربه من ملف csf.conf
TESTING = "1"
غير الى 0


لمزيد من المعلومات اطبع الامر التالى

كود PHP:
/usr/sbin/csf -
كود PHP:
[root@mylap csf]# /usr/sbin/csf -h
ConfigServer Security Firewall (http://www.configserver.com/cp/csf/)
csfv3.23 (generic)
(
c)2006Way to the Web Limited (http://www.waytotheweb.com)

Usage: /usr/sbin/csf [option] [value]

Option Meaning
-h, --help Show this message
-l, --status-s, --start Start firewall rules
-f, --stop Flush/Stop firewall rules
-r, --restart Restart firewall rules
-a, --add ip Add an IP address to be whitelisted to /etc/csf.allow
-d, --deny ip Add an IP address to be blocked to /etc/csf.deny
-c, --check Checks for updates to csf+lfd but does not perform an upgrade
-t, --temp Displays the current list of temporary IP bans and their TTL
-tr, --temprm ip Remove an IP address from the temporary IP ban list
-
td, --tempdeny ip ttl [-p port] [-d direction]
                    
Add an IP address to the temporary IP ban list. ttl is how
                    long to blocks 
for in secondsOptional portOptional
                    direction of block can be one of in
out or inout. Default
                    
is in
-tf, --tempf Flush all IP addresses from the temporary IP ban list
-
u, --update Checks for updates to csf+lfd and performs an upgrade if
                    
available
-x, --disable Disable csf and lfd
-e, --enable        Enable csf and lfd if previously disabled
-v, --version       Show csf version 



ntop من أقوى الأدوات التي تعمل على مراقبة الاتصالات التي تحث في الجهاز فهي تستطيع
التعامل مع أغلب البروتوكولات وتقوم باعطائك أدق التفاصيل بشكل منظم وبسيط, فالأداة
تعمل عن طريق المتصفح وتستطيع تركيبها على أي سيرفر وهي متوفرة للينوكس والويندوز
و تحوي بعض الاضافات التي تساعد مدير الشبكة في معرفة أسباب المشاكل التي قد تحدث
في الشبكة وتظهر لك آخر الأجهزة التي تم الاتصال بها وعن طريق أي منفذ وعدد مرات الاتصال
وكمية البيانات المرسلة و المستقبلة بالاضافة الى حالة الاتصال بساعة معينة أو في اليوم أو
كامل الشهر والكثير من التفاصيل الأخرى أترككم لتكتشفوها بأنفسكم…
صور للأداة وهي تعمل (من جهازي)








الأداة متوفرة في أغلب مخازن التحميل الخاصة بالتوزيعات مثل openSUSE, Ubuntu, Mandriva
ويمكن تحميلها من هناك بكل سهولة أو القيام بتحميلها من الموقع الرسمي (الرابط الموجود بالأسفل)
بعد القيام بتحميلها نطبق الأمر

كود PHP:
ntop –set-admin-password 
للقيام بتعيين باسورد الأدمن ثم نطبق
الأمر

كود PHP:
ntop -u USER --i eth0 
مع استبدال USER بالمستخدم المراد وليكن root واستبدال eth0
بكرت الشبكة الذي تستخدمه, ولمشاهدة النتائج قم بزيارة الصفحة

كود PHP:
http://SERVER-IP:3000 
مع القيام

باستبدال SERVER-IP بأيبي الجهاز المركب عليه الأداة أو الأيبي 127.0.0.1 في حال كانت مركبة
على نفس الجهاز ومثل ماهو واضح الأداة تستعمل المنفذ 3000



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

10- عرض جميع مشاكل السيرفرات مع شرح لكيفية التعامل معها وحلها

حل مشكلة أختفاء أحد المواقع من Whm

اذا دخلت WHM و اكتشفت ان موقع من المواقع شرد من علي السيرفر

او راح يشرب شاي مع واحد من اصحابه

افتح الشل و اطبع الامر التالي :

كود PHP:
/scripts/updateuserdomains 
وراح يظهر ان شاء الله


حل اختفاء www في رابط الموقع

الكثير يعاني من اختفاء وتحول روابط ب http://www.yoursite.com/ إلى http://yoursite.com/
وهذا تعديل بسيط لتفادي هذه المشكلة

من الشيل
حرر ملف httpd.conf عن طريق :

كود PHP:
 pico /etc/httpd/conf/httpd.conf 
ثم اضغط CTRL + W وابحث عن :

كود PHP:
 UseCanonicalName 
وغير قيمته من On إلى Off

بعدها اضغط CTRL +X ثم Y أنتر لحفظ التعديلات
ثم ريسترات للأباتشي عن طريق :

كود PHP:
 service httpd restart 

حل مشكلة إرسال البريد من cPanel

هل تصادفك مشكلة ارسال الرسائل من موقعك ..أو تواجه عملاءك ؟؟ الحقيقة ان سبب هذه المشكلة هو موفر خدمة الانترنت لديك (ISP) ..والسبب هو ان بعض مزودي خدمة الانترنت يقومون بحجب المنفذ 25 للسيرفرات مما يؤدي الى ظهور هذه المشكلة..وهم بذلك يجبرونك على استخدام سيرفراتهم لارسال رسائلك مما يتيح لهم مراقبة رسائلك الالكترونية , كما انه ايضا يقوم بحمايتك وحمايتهم من عملية ال SPAM .


ويكون الخطأ الناتج كالتالي:

The connection to the server has failed. Account 'mail.yourdomain.com', Server: 'mail.yourdomain.com', Protocol: SMTP, Port: 25, Secure(SSL): No, Socket Error: 10051, Error Number: 0x800CCC0E

وحقيقة فإنه يمكنك حل هذه المشكلة بأحد طريقتين:

1) الطريقة الاولى وهي جعل المستخدم يستعمل عنوان ال SMTP الخاص بمزود الخدمة.

2) الطريقة الثانية اعداد منفذ ثانوي للSMTP لسيرفرك ..وبالتالي يمكن للمستخدمين الارسال عن طريق الدوران حول مزودي الخدمة .


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

1) قم بالدخول الى ال WHM بالمستخدم root

2) قم بالضغط على Service Manager

3) قم بالتوجه الى الاسفل ...واختر exim on another port ...واتركه كما هو 26

4) قم بالضغط على الزر save

5) الان توجه الى أسفل اليسار ..واضغط على Mail Server (EXIM

6) والان قم بالضغط على Service Status ويجب الان أن تشاهد العبارة التالية exim-26

7) والان تم بحمد الله تعالى حل المشكلة ...مع ملاحظة أنه لو كان سيرفرك يعمل خلف جدار ناري فيجب عليك أن تقوم بالسماح للمنفذ 26 وذلك حتى لا يعترض عليه الجدار الناري