صهيب الفهداوي
20-02-2010, 09:00 مساءً
http://img181.imageshack.us/img181/5140/11069446aq6.gif (http://up.3eyon.net/)
السـلام عليكم ورحمة الله وبركاتــه
درسنا اليـوم مهم ويعتبر من دروس حماية السيرفرات
وهي خطوه لاعداد ملف PHP.INI وتأمينه وعمل حماية من الشلات وماشابـه ..
أيضاً حماية السيرفر من الشيل وتخطي السيف مود وهذه الأمور
في بادئ الأمر ينصح وبشدة تركيب هذه البرامج
Mod SuPHP
Mod Security
Suhosin for PHP
ويتم تركيبها من خلال لوحة التحكم WHM من الخيار
EasyApache (Apache Update)
إعادة بناء الأباتشي
وعند تحديث الآباتشي و البي اتش بي يتم تحديثها الى آخر اصداره متوفره لآغلاق الثغرات
عند تركيب برنامج Suphp يجب عليك ان تقوم بالتالي لكي لا تحدث لديك مشاكل :
نذهب الى ملف الآعدادات البرنامج suphp
pico /home/cpeasyapache/src/suphp.conf
وعدل القيم التالية
; Security options
allow_file_group_writeable=true
allow_file_others_writeable=false
allow_directory_group_writeable=true
allow_directory_others_writeable=false
check_vhost_docroot=true
userdir_overrides_usergroup=false
full_php_process_display=true
[handlers]
;Handler for php-scripts
application/x-httpd-php="php:/usr/bin/php"
application/x-httpd-php4="php:/usr/php4/bin/php"
application/x-httpd-php5="php:/usr/bin/php"
;Handler for CGI-scripts
;x-suphp-cgi="execute:!self"
[phprc_paths]
;Uncommenting these will force all requests to that handler to use the php.ini
;in the specified directory regardless of suPHP_ConfigPath settings.
;application/x-httpd-php=/usr/local/lib/
;application/x-httpd-php4=/usr/local/php4/lib/
application/x-httpd-php5=/usr/local/lib/
حذفت علامة
;
بعد ذلك
pico /usr/local/apache/conf/httpd.conf
أبحث عن
AddHandler cgi-script .cgi .pl
ضع أمامها # لتصبح
#AddHandler cgi-script .cgi .pl
وإبحث عن
<Directory "/">
وتأكد من أنه على النحو الآتي
<Directory "/">
Options -ExecCGI -FollowSymLinks -Includes IncludesNOEXEC Indexes -MultiViews SymLinksIfOwnerMatch
AllowOverride AuthConfig Indexes Limit FileInfo Options=IncludesNOEXEC,Indexes,Includes,MultiViews ,SymLinksIfOwnerMatch,FollowSymLinks
</Directory>
بعد ذلك تركيب رولز للمود سكيورتي
وينصح بعمل رولز خاصة بسيرفرك لما يناسب إحتياجاتك
ومن ثم غير تصاريح الملفات
cd /bin
chmod 700 pwd
chmod 700 ls
chmod 700 uname
chmod 700 ln
chmod 700 cat
chmod 700 domainname
chmod 700 more
chmod 700 netstat
chmod 700 passwd
chmod 700 sh
chmod 700 su
chmod 700 touch
chmod 700 kill
chmod 700 ls
chmod 700 vi
chmod 750 /usr/bin/wget
chmod 750 /usr/bin/scp
cd
chmod 700 /usr/bin/perl
chmod 700 /usr/local/bin/perl
chown root:root /usr/local/bin/perl
chown root:root /usr/bin/perl
chmod 4755 /etc/passwd
chmod 400 /etc/shadow-
chmod 400 /etc/shadow
ومن ثم
/scripts/compilers off
تعطيل التلنت بطريقة يدوية :
pico /etc/xinetd.d/krb5-telnet
أو
pico /etc/xinetd.d/telnet
أبحث عن
disable=no
أجعله
disable=yes
ولا تنسى تفعيل
cPHulk Brute Force Protection
PHP open_basedir Tweak
Apache mod_userdir Tweak
Shell Fork Bomb Protection
وتعطيل
Compilers Tweak
ويتم تفعيلها وتعطيلها من الخيار داخل WHM اسمه Security Center
ENABLE تعني تفعيل
Disable يعني تعطيل
الآن
أكتب هالأمر
pico /usr/local/lib/php.ini
أبحث عن
safe_mode
وغير قيمتها من off الى on
ثم ابحث عن
open_basedir
وضع القيمه on
ابحث عن
safe_mode_gid
وضع القيمه off
ابحث عن
allow_url_fopen
وضع القيمه off
ابحث عن
expose_php
القيمه off
أبحث عن
register_globals
وضع القيمه off
الان حماية بعض الدوال
ابحث عن
disable_functions
واضف الدوال التاليه بعد علامة = وبين علامتي الاقتباس " "
symlink,shell_exec,exec,proc_close,proc_open,popen ,system,dl,passthru,escapeshellarg,escapeshellcmd, posix_getgid,posix_getgrgid,dl,exec,pclose,proc_ni ce,proc_terminate,proc_get_status,pfsockopen,leak, apache_child_terminate,posix_kill,posix_mkfifo,pos ix_setpgid,posix_setsid,posix_setuid,hypot,pg_host ,pos,posix_access,posix_getcwd,posix_getservbyname ,myshellexec,getpid,posix_getsid,posix_getuid,posi x_isatty,posix_kill,posix_mknod,posix_setgid,posix _setsid,posix_setuid,posix_times,posix_uname,ps_fi ll,posix_getpwuid,global,ini_restore,zip_open,zip_ read,rar_open,bzopen,bzread,bzwrite,apache_get_mod ules,apache_get_version,phpversionphpinfo,php_ini_ scanned_files,get_current_user,error_log,disk_tota l_space,diskfreespace,leak,imap_list,hypo,filedump ,gethostbyname,safe_mode,ob_clean,getmygid,php_una me,apache_getenv,apache_setenv,bzread,bzwrite,posi x_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_se t,getmicrotime,float,shver,c99sh_surl,timelimit,su rl_autofill_include,base64_decode,gzinflate,encode 64,ln
اعمل Ctrl+x اضغط y وانتر لحفظ الاعدادات
قم بتنفيذ الامر
pico /etc/httpd/conf/php.conf
أبحث عن
suPHP_Engine on
وضع تحته
SuPHP_ConfigPath /usr/local/lib/php.ini
اعمل Ctrl+x اضغط y وانتر لحفظ الاعدادات
الآن قمنا بحماية السيرفر حماية جيده من خطر الشلات والبيرل وتخطي السيف مود وما إلى ذلك من خطوات مهمة
طبعا ولايعتبر حماية كامله للسيرفر انما جزأ بسيط
إنتضروا الدروس القادمه إن شاء الله
في حال حدوث أي مشاكل معكم
فنحن هنا والموضوع مفتوح لجميع الأسئلة والإستفسارات
تحياتي وإحترامي لكم
صهيب الفهداوي
http://img364.imageshack.us/img364/5291/34787798xm6xo8jc5.gif (http://up.3eyon.net/)
السـلام عليكم ورحمة الله وبركاتــه
درسنا اليـوم مهم ويعتبر من دروس حماية السيرفرات
وهي خطوه لاعداد ملف PHP.INI وتأمينه وعمل حماية من الشلات وماشابـه ..
أيضاً حماية السيرفر من الشيل وتخطي السيف مود وهذه الأمور
في بادئ الأمر ينصح وبشدة تركيب هذه البرامج
Mod SuPHP
Mod Security
Suhosin for PHP
ويتم تركيبها من خلال لوحة التحكم WHM من الخيار
EasyApache (Apache Update)
إعادة بناء الأباتشي
وعند تحديث الآباتشي و البي اتش بي يتم تحديثها الى آخر اصداره متوفره لآغلاق الثغرات
عند تركيب برنامج Suphp يجب عليك ان تقوم بالتالي لكي لا تحدث لديك مشاكل :
نذهب الى ملف الآعدادات البرنامج suphp
pico /home/cpeasyapache/src/suphp.conf
وعدل القيم التالية
; Security options
allow_file_group_writeable=true
allow_file_others_writeable=false
allow_directory_group_writeable=true
allow_directory_others_writeable=false
check_vhost_docroot=true
userdir_overrides_usergroup=false
full_php_process_display=true
[handlers]
;Handler for php-scripts
application/x-httpd-php="php:/usr/bin/php"
application/x-httpd-php4="php:/usr/php4/bin/php"
application/x-httpd-php5="php:/usr/bin/php"
;Handler for CGI-scripts
;x-suphp-cgi="execute:!self"
[phprc_paths]
;Uncommenting these will force all requests to that handler to use the php.ini
;in the specified directory regardless of suPHP_ConfigPath settings.
;application/x-httpd-php=/usr/local/lib/
;application/x-httpd-php4=/usr/local/php4/lib/
application/x-httpd-php5=/usr/local/lib/
حذفت علامة
;
بعد ذلك
pico /usr/local/apache/conf/httpd.conf
أبحث عن
AddHandler cgi-script .cgi .pl
ضع أمامها # لتصبح
#AddHandler cgi-script .cgi .pl
وإبحث عن
<Directory "/">
وتأكد من أنه على النحو الآتي
<Directory "/">
Options -ExecCGI -FollowSymLinks -Includes IncludesNOEXEC Indexes -MultiViews SymLinksIfOwnerMatch
AllowOverride AuthConfig Indexes Limit FileInfo Options=IncludesNOEXEC,Indexes,Includes,MultiViews ,SymLinksIfOwnerMatch,FollowSymLinks
</Directory>
بعد ذلك تركيب رولز للمود سكيورتي
وينصح بعمل رولز خاصة بسيرفرك لما يناسب إحتياجاتك
ومن ثم غير تصاريح الملفات
cd /bin
chmod 700 pwd
chmod 700 ls
chmod 700 uname
chmod 700 ln
chmod 700 cat
chmod 700 domainname
chmod 700 more
chmod 700 netstat
chmod 700 passwd
chmod 700 sh
chmod 700 su
chmod 700 touch
chmod 700 kill
chmod 700 ls
chmod 700 vi
chmod 750 /usr/bin/wget
chmod 750 /usr/bin/scp
cd
chmod 700 /usr/bin/perl
chmod 700 /usr/local/bin/perl
chown root:root /usr/local/bin/perl
chown root:root /usr/bin/perl
chmod 4755 /etc/passwd
chmod 400 /etc/shadow-
chmod 400 /etc/shadow
ومن ثم
/scripts/compilers off
تعطيل التلنت بطريقة يدوية :
pico /etc/xinetd.d/krb5-telnet
أو
pico /etc/xinetd.d/telnet
أبحث عن
disable=no
أجعله
disable=yes
ولا تنسى تفعيل
cPHulk Brute Force Protection
PHP open_basedir Tweak
Apache mod_userdir Tweak
Shell Fork Bomb Protection
وتعطيل
Compilers Tweak
ويتم تفعيلها وتعطيلها من الخيار داخل WHM اسمه Security Center
ENABLE تعني تفعيل
Disable يعني تعطيل
الآن
أكتب هالأمر
pico /usr/local/lib/php.ini
أبحث عن
safe_mode
وغير قيمتها من off الى on
ثم ابحث عن
open_basedir
وضع القيمه on
ابحث عن
safe_mode_gid
وضع القيمه off
ابحث عن
allow_url_fopen
وضع القيمه off
ابحث عن
expose_php
القيمه off
أبحث عن
register_globals
وضع القيمه off
الان حماية بعض الدوال
ابحث عن
disable_functions
واضف الدوال التاليه بعد علامة = وبين علامتي الاقتباس " "
symlink,shell_exec,exec,proc_close,proc_open,popen ,system,dl,passthru,escapeshellarg,escapeshellcmd, posix_getgid,posix_getgrgid,dl,exec,pclose,proc_ni ce,proc_terminate,proc_get_status,pfsockopen,leak, apache_child_terminate,posix_kill,posix_mkfifo,pos ix_setpgid,posix_setsid,posix_setuid,hypot,pg_host ,pos,posix_access,posix_getcwd,posix_getservbyname ,myshellexec,getpid,posix_getsid,posix_getuid,posi x_isatty,posix_kill,posix_mknod,posix_setgid,posix _setsid,posix_setuid,posix_times,posix_uname,ps_fi ll,posix_getpwuid,global,ini_restore,zip_open,zip_ read,rar_open,bzopen,bzread,bzwrite,apache_get_mod ules,apache_get_version,phpversionphpinfo,php_ini_ scanned_files,get_current_user,error_log,disk_tota l_space,diskfreespace,leak,imap_list,hypo,filedump ,gethostbyname,safe_mode,ob_clean,getmygid,php_una me,apache_getenv,apache_setenv,bzread,bzwrite,posi x_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_se t,getmicrotime,float,shver,c99sh_surl,timelimit,su rl_autofill_include,base64_decode,gzinflate,encode 64,ln
اعمل Ctrl+x اضغط y وانتر لحفظ الاعدادات
قم بتنفيذ الامر
pico /etc/httpd/conf/php.conf
أبحث عن
suPHP_Engine on
وضع تحته
SuPHP_ConfigPath /usr/local/lib/php.ini
اعمل Ctrl+x اضغط y وانتر لحفظ الاعدادات
الآن قمنا بحماية السيرفر حماية جيده من خطر الشلات والبيرل وتخطي السيف مود وما إلى ذلك من خطوات مهمة
طبعا ولايعتبر حماية كامله للسيرفر انما جزأ بسيط
إنتضروا الدروس القادمه إن شاء الله
في حال حدوث أي مشاكل معكم
فنحن هنا والموضوع مفتوح لجميع الأسئلة والإستفسارات
تحياتي وإحترامي لكم
صهيب الفهداوي
http://img364.imageshack.us/img364/5291/34787798xm6xo8jc5.gif (http://up.3eyon.net/)