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

مشاهدة النسخة كاملة : دورة حماية السرفرات


فارس قطر
18-03-10, 04:31 AM
بسم الله الرحمن الراحيم

• سوف اقدم لكم في هذه الدورة خلاصة ما تعلمته في اخر 3 اشهر من الانترنت في مجال السيرفرات ارجو ان تنال هذه الدورة اعجابكم واعجاب عقولكم

ساطلق عل هذه الدورة :

CSS : Complete Servers Solutions


سوف تشمل الدورة التالي :
• اعداد السيرفر عند استلامه
• حماية السيرفر من الالف للياء


سوف تكون هذه الدورة خاصة فقط بسيرفرات Linux ولوحة التحكم CPenel


بسم الله بدانا :
عند تسلمك السيرفر لاول مرة سوف تقوم بالدخول ال WHM ونبدا بالاعداد سوف ندخل مستخدمين اي بي السيرفر

127.0.0.1:2087

مع تغير الـ 127.0.1.1 الى اي بي السيرفر

سوف تضهر لك هذه : في جهة اليسار اضغط كما هو مبين
http://www.sa3eka.com/image/server/css/1.png

في الجهة اليمن سوف تظهر كلام طويل هو الاتفاقية لشركة CPANEL اضغط هذا الزر بالاسفل :
http://www.sa3eka.com/image/server/css/2.png

ونكمل في هذه الخطوة نقوم :

http://www.sa3eka.com/image/server/css/3.png

عند خطوة DNS لا تنس الضغط على الزرين المحديددن والتاكد من DNS Zone لهما

قم بحفظ ما قمت به من تعديلات :
http://www.sa3eka.com/image/server/css/4.png

ثم في الجهة اليسرى اضغط :
http://www.sa3eka.com/image/server/css/5.png

سوف تفتح لك في الهة اليمنى كلام طويل عريض انتظر الى ان ينتهي وترى كلمة done في اسفل الا**بلوورر

ثم قم بالضغط http://www.sa3eka.com/image/server/css/5.png

http://www.sa3eka.com/image/server/css/6.png

يجب ان ترى هذه النتيجة :


كود PHP:
Starting named: [ OK ]
Restarting Nameserver
Starting named: [ OK ]
Restarting chkservd
Stopping chkservd: [ OK ]
Starting chkservd: [ OK ]



http://www.sa3eka.com/image/server/css/5.png

تجاهل هذه الخطوة Resolv

الان قم بوضع باس الروت لـ MySql يجب ان تكون صعبة ويمكنها وضعها عشوائيا بدون ان تحفظها فانت ما رح تحتاجها

http://www.sa3eka.com/image/server/css/7.png

ثم اضغط :
http://www.sa3eka.com/image/server/css/8.png
http://www.sa3eka.com/image/server/css/9.png

بعدها اذهب الى :

Main >> Networking Setup >> Hostname

تاكد من hostname ثم اضغط change

ثم اضغط :
http://www.sa3eka.com/image/server/css/10.png

سوف يضهر لك التالي :


كود PHP:
Found your hostname to be: host.traidnt.net
Found your short hostname to be: traidnt
Found your domain name to be: host.traidnt.net
Found your main ip to be: 75.126.228.120
If this looks correct,



ثم اضغط الزر Add The entry

تم الانتهاء من اعداد WHM الان قم باغلاق WHM واذهب الى SSH

الآن نروح نفتح شاشة الـ SSH

يجب عليك تحميل برنامج putty

اضغط هنا لتحميل البرنامج PUTTY (http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe)

وهذا شرح طريقة الدخول لمن لا يعرف الطريقة الدخول SSH

http://www.sa3eka.com/image/server/css/putty1.JPG

اول ما راح تكتب الأي بي وتسوي OPEN راح تظهر لك شاشة سوداء
يطلب منك اليوزر نيم والباسورد


طريقة ألصاق الكتابة في الـ SSH تضغط بالزر الأيمن للمواس راح تلقى الكلام الي نسخته تم كتابته في الـ SSH


الان تابع الخطوات


كود PHP:
pico /etc/nameserverips



ضع فيه التالي :

كود PHP:
75.126.228.120=ns1.traidnt.net
75.126.228.121=ns2.traidnt.net
75.126.228.122=0
75.126.228.123=0



وقم بوضع اي ايبي تابع لسيرفر وضع امام الايبيهات الغير مستخدمة 0
قم بحفظ الملف Ctrl+x


كود PHP:
service named restart
service chkservd restart
service cpanel restart



بعدها


كود PHP:
pico /etc/resolv.conf



domain traidnt.net
search traidnt.net
server.traidnt.net 127.0.0.1
ns1.traidnt.net 123.456.78.90
ns2.traidnt.net 123.456.78.91
ns3.traidnt.net 123.456.78.92
ns4.traidnt.net 123.456.78.93

بعدها نسوي حفظ Ctrl+x


كود PHP:
service named restart
service chkservd restart
service cpanel restart



بعدها نروح

كود PHP:
pico /etc/named.conf



نقوم بوضع تحت هذا السطر التالي :

كود PHP:
include "/etc/rndc.key";




كود PHP:
acl "trusted" {
72.46.145.32;72.46.145.33;72.46.145.34;7 2.46.145.35;127.0.0.1;
};



في منطقة Options ضع :

كود PHP:
allow-recursion { trusted; };
allow-notify { trusted; };
allow-transfer { trusted; };



ليصبح شكله كتالي :
http://www.sa3eka.com/image/server/css/name.JPG

اذا كان لديك ايبيهات اخرى لا تنسى وضعها
ثم احفظ الملف Ctrl+x وقم بالتالي :


كود PHP:
service named restart
service chkservd restart
service cpanel restart



نعود لـ WHM :

اذهب الى :
Main >> DNS Functions >> Edit Zone Templates

قم بالتعديل على كل القوالب الثلاثة : simple . standard . standardvirtualftp

سوف نقوم بالتعديل على :

كود PHP:
86400 ; *******, seconds
7200 ; retry, seconds
3600000 ; expire, seconds



86400 تصبح : 7200
3600000 تصبح : 2419200

ثم احفظ الملفات وعد للشل ونفذ هذه الاوامر


كود PHP:
service named restart
service chkservd restart
service cpanel restart



بعد ذلك نقوم بتحديث برامج السيرفر من خلال SSH كتالي :

تحديث لوحة التحكم CPANEL

كود PHP:
/scripts/upcp



ترقية الآكزايم exim


كود PHP:
/scripts/exim4



ترقية قواعد البيانات MYSQL

كود PHP:
/scripts/mysqlup --force



ترقية الأف تي بي FTP

كود PHP:
/scripts/ftpup --force



امر اصلاح البريد

كود PHP:
/scripts/mailperm



امر اصلاح المساحات

كود PHP:
/scripts/fixquotas



ترقية الأباتشي + PHP
شرح مفصل لترقية الأباتشي و تركيب البرامج الهامة
نكتب الأمر التالي :

كود PHP:
/scripts/easyapache



http://www.sa3eka.com/image/server/css/apche1.JPG

http://www.sa3eka.com/image/server/css/apche2.JPG

http://www.sa3eka.com/image/server/css/apche3.JPG

http://www.sa3eka.com/image/server/css/apche4.JPG

طبعا ينصح بتركيب اخر اصدار من الـ php

http://www.sa3eka.com/image/server/css/apche5.JPG

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

CURL
CURLWRAPPERS
OPENSSL
XSL
ZIP

واخير نختار SAVE AND BULED
سوف ياخذ وقت طويل تقريبا 10 دقائق الى 20 دقيقة تقريباً

بعد تحديث البرامج نقوم بإعادة ريستارت لها :


كود PHP:
# /scripts/restartsrv httpd

# /etc/rc.d/init.d/cpanel restart

# /scripts/restartsrv mysql

# /scripts/restartsrv named

# /scripts/restartsrv exim

# service chkservd restart

# /etc/init.d/crond restart



تحديث OpenSSH :


كود PHP:
cd /usr/src




كود PHP:
wget ftp://openbsd.secsup.org/pub/openbsd/OpenSSH/portable/openssh-5.1p1.tar.gz
tar -zxf openssh*
cd openssh*




كود PHP:
./configure --prefix=/usr --sysconfdir=/etc/ssh --without-zlib-version-check




كود PHP:
make
make test
make install




تحديث bind9


كود PHP:
cd /usr/src
wget http://ftp.isc.org/isc/bind9/9.4.1-P1/bind-9.4.1-P1.tar.gz
tar -zxf bind*
cd bind*
./configure
make
make test
make install




هذا الجزء متعلق بالحماية :

1 • الحماية ضد Dos , DDos

? تقوية sysctl.conf و host.conf


كود PHP:
cd /etc/
mv sysctl.conf sysctl.conf.css




كود PHP:
pico sysctl.conf



ضع فيه التالي :


كود PHP:
# Kernel sysctl configuration file for Red Hat Linux
#
# For binary values, 0 is disabled, 1 is enabled. See sysctl(8) and
# sysctl.conf(5) for more details.

# Controls IP packet forwarding
net.ipv4.ip_forward = 0

# Controls source route verification
net.ipv4.conf.default.rp_filter = 1
net.ipv4.conf.all.rp_filter = 1
net.ipv4.conf.lo.rp_filter = 1
net.ipv4.conf.eth0.rp_filter = 1

# Do not accept source routing
net.ipv4.conf.default.accept_source_rout e = 0
net.ipv4.conf.all.accept_source_route = 0
net.ipv4.conf.lo.accept_source_route = 0
net.ipv4.conf.eth0.accept_source_route = 0

# Disable ICMP Redirect Acceptance
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.lo.accept_redirects = 0
net.ipv4.conf.eth0.accept_redirects = 0
net.ipv4.conf.default.accept_redirects = 0

# Enable Log Spoofed Packets, Source Routed Packets, Redirect Packets
net.ipv4.conf.all.log_martians = 0
net.ipv4.conf.lo.log_martians = 0
net.ipv4.conf.eth0.log_martians = 0

# Lower retry rates
net.ipv4.tcp_synack_retries = 2
net.ipv4.tcp_syn_retries = 3

# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0

# Max File Handlers
fs.file-max = 8192
# Disable CTR+ALT+DEL Restart Keys
kernel.ctrl-alt-del = 1

# Controls whether core dumps will append the PID to the core filename.
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1

# Decrease the time default value for tcp_fin_timeout connection
net.ipv4.tcp_fin_timeout = 15

# Decrease the time default value for tcp_keepalive_time connection
net.ipv4.tcp_keepalive_time = 1800

# Turn off the tcp_window_scaling
net.ipv4.tcp_window_scaling = 0

# Turn off the tcp_sack
net.ipv4.tcp_sack = 0

# Turn off the tcp_timestamps
net.ipv4.tcp_timestamps = 0

# Enable TCP SYN ****** Protection
net.ipv4.tcp_syn******s = 1

# Enable ignoring broadcasts request
net.ipv4.icmp_echo_ignore_broadcasts = 1

# Enable bad error message Protection
net.ipv4.icmp_ignore_bogus_error_respons es = 1

# Log Spoofed Packets, Source Routed Packets, Redirect Packets
net.ipv4.conf.all.log_martians = 1

# Increases the size of the socket queue (effectively, q0).
net.ipv4.tcp_max_syn_backlog = 1024

# Increase the tcp-time-wait buckets pool size
net.ipv4.tcp_max_tw_buckets = 1440000

# Allowed local port range
net.ipv4.ip_local_port_range = 16384 65536 16384 65536



ثم نحفظ العمل


كود PHP:
/sbin/sysctl -p




كود PHP:
sysctl -w net.ipv4.route.flush=1




ثم


كود PHP:
cd /etc
mv host.conf host.conf.css




كود PHP:
pico host.conf




نضع فيه التالي :



كود PHP:
# Lookup names via DNS first then fall back to /etc/hosts
order hosts,bind
# Check for IP address spoofing.
nospoof on
# multiple IP addresses
multi on



ثم

كود PHP:
httpd restart




اعلاق الخدمات الغير ضرورية :


كود PHP:
service cups-config-daemon stop
chkconfig cups-config-daemon off
service iiim stop
chkconfig iiim off
service mDNSResponder stop
chkconfig mDNSResponder off
service nifd stop
chkconfig nifd off
service rpcidmapd stop
chkconfig rpcidmapd off
service bluetooth stop
chkconfig bluetooth off
service anacron stop
chkconfig anacron off
service gpm stop
chkconfig gpm off
service saslauthd stop
chkconfig saslauthd off
service avahi-daemon stop
chkconfig avahi-daemon off
service avahi-dnsconfd stop
chkconfig avahi-dnsconfd off
service hidd stop
service cups stop
chkconfig cups off
service xfs stop
chkconfig xfs off
service atd stop
chkconfig atd off
service nfslock stop
chkconfig nfslock off
service canna stop
chkconfig canna off
service FreeWnn stop
chkconfig FreeWnn off
chkconfig hidd off
service pcscd stop
chkconfig pcscd off
service sbadm stop
chkconfig sbadm off
service webmin stop
chkconfig webmin off



حماية ملفات النظام :


كود PHP:
echo 1 > /proc/sys/net/ipv4/tcp_syn******s




كود PHP:
chmod 750 /usr/bin/rcp
chmod 750 /usr/bin/wget
chmod 750 /usr/bin/lynx
chmod 750 /usr/bin/links
chmod 750 /usr/bin/scp




كود PHP:
chmod 000 /etc/httpd/proxy/
chmod 000 /var/spool/samba/
chmod 000 /var/mail/vbox/



تركيب LES لحماية ملفات النظام :

كود PHP:
cd /usr/src
wget http://www.r-fx.ca/downloads/les-current.tar.gz
tar -zxvf les-current.tar.gz
cd les*
sh install.sh
/usr/local/sbin/les -ea 1




اغلاق المترجمات

كود PHP:
chmod 000 /usr/bin/perlcc
chmod 000 /usr/bin/byacc
chmod 000 /usr/bin/yacc
chmod 000 /usr/bin/bcc
chmod 000 /usr/bin/cc
chmod 000 /usr/bin/gcc
chmod 000 /usr/bin/i386*cc




كود PHP:
/scripts/compilers off



حمايه أوامر الشل من خلال المجلد bin

أفتح الشل و قم بتنفيذ الأوامر التاليه :


كود PHP:
cd /bin




كود PHP:
chmod 700 basename
chmod 700 bash
chmod 700 cat
chmod 700 chmod
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



حماية tmp :

كود PHP:
/scripts/securetmp



ثم افتح

كود PHP:
pico /etc/fstab




امام كلمة defaults ضع ( noexec,nosuid ) ليصبح السطر هكذا :

كود PHP:
LABEL=/tmp /tmp ext3 defaults,noexec,nosuid
/tmp /var/tmp ext3 defaults,noexec,nosuid,bind,noauto
none /dev/shm tmpfs defaults,noexec,nosuid



ثم احفظ الملف ونفذ هذا الامر :

umount /dev/shm
mount /dev/shm


الحماية ضد spam



ضع تخت هذا السطر :


كود PHP:
#!!# cPanel Exim 4 Config



ضع تحتة :
log_selector = +arguments +subject

احفظ الملف وسوي ريستارت


كود PHP:
service exim restart
service cpanel restart




نإتي الآن الى حماية الـ php :

نكتب الامر التالي :

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



في اول سطر هو [php]
ضيف تحته مباشرة
reveal_php 0

وتإكد من القيم التالية :


كود PHP:
safe_mode = On




كود PHP:
allow_url_fopen = Off




كود PHP:
expose_php = Off




كود PHP:
enable_dl = Off




كود PHP:
include_path "/usr/lib/php:/usr/local/lib/php:/tmp:/home"




كود PHP:
register_globals = off




كود PHP:
display_errors = Off




كود PHP:
allow_call_time_pass_reference = off




كود PHP:
safe_mode_include_dir = /usr/local/php/include




كود PHP:
safe_mode_exec_dir = /usr/local/php/bin



ابحث عن :
disable_functions

وضع امام كتالي ليصبح شكله :

كود PHP:
disable_functions = dl,system,exec,passthru,popen,****l_exec ,proc_close,proc_open,proc_nice,proc_ter minate,pro_get_status,posix_getpwuid,pos ix_uname,openlog,syslog,ftp_exec,posix_u name,posix_getpwuid,posix_getpwnam,posix _kill,posix_mkfifo,posix_setpgid,posix_s etsid,posix_setuid,get_current_user,chgr p,apache_note,apache_setenv,apache_child _terminate,closelog,debugger_off,debugge r_on,ini_restore,curl_init,curl_exec,cur l,escape****lcmd,escape****larg,virtual, highlight_file,pclose,pcntl_exec,****lex ec,chgrp,apache_setenv,define_syslog_var iables,hw_root,allow_url_fopen,php_uname ,posix_kill,apache_child_terminate,php_i ni_scanned_files,ps_aux,chown,getrsage,p osixc,posame,chgrp,posix_setgid,apache_n ote,apache_setenv,mysql_list_dbs,glob,er ror_log,ini_get_all,fileowner,sscanf,pop en,popens,apache_get_modules,crack_check ,crack_closedict,crack_getlastmessage,cr ack_opendict,posix_isatty,posix_access,p osix_times,posix_mknod,get_cfg_var,getse rvbyname,



وابحث عن :

كود PHP:
max_execution_time



وغير القيمة الى 3600

وتحتها مباشرة غير القيمة الـ

كود PHP:
max_input_time



الى 3600
وتحتها مباشرة راح تلقى :

كود PHP:
memory_limit



غير القيمة الى 64M او 128M او 256M

بعد ذلك ابحث عن :

كود PHP:
upload_max_filesize



وغير القيمة الى 10M

هذا الخيار هام لوضع اقصى مساحة ملف ممكن رفعها من خلال السي بنال وهي الأفتراضي 2M ويفضل رفعها حسب رغبت مدير الأستضافة يفضل وضعها 5M او 10M


واخير ابحث عن :

كود PHP:
post_max_size



وضع القيمة مناسبة 50M


بعد ذلك اضف في نهاية الملف php.ini التالي :


كود PHP:
; Solution Problem VB
suhosin.request.max_vars = 1024
suhosin.post.max_vars = 1024






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

كود PHP:
pico /usr/local/apache/conf/php.conf



اضف هذا السطر :

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



وهذه صورة توضيحية لشكل الملف :

http://www.talkinweb.org/uploads/12c55c802a.png

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


كود PHP:
httpd restart





بعد ذلك حماية الأباتشي :

نروح لملف الأباتشي :

كود PHP:
pico /usr/local/apache/conf/httpd.conf



لتعطيل البيرل بالسيرفر :
ابحث عن :

كود PHP:
AddHandler cgi-script .cgi .pl



وسوي امامة علامة #
لتعطيل البيرل

وبعدين ابحث عن :

كود PHP:
<Directory "/">



وخلية زي كذا

كود PHP:
<Directory "/">
Options SymLinksIfOwnerMatch
AllowOverride All
</Directory>




وبحث عن :

كود PHP:
ServerSignature ON



وخلية off

وضع تحتها التالي :

كود PHP:
ServerTokens Full
SecServerSignature "Security by Host2Need.Com"



بعدين سوي حفظ للعمل وريستارت للأباتشي

كود PHP:
httpd restart




بعد ذلك تركيب برنامج ELS او Easy Linux Security

هذا البرنامج يحتوي على برامج اساسية للسيرفر وراح ناخذ منه بعض البرامج الهامة التي نحتاج اليها في السيرفر لتعزيز الحماية

للتركيب البرنامج اكتب الامر التالي :

كود PHP:
wget --output-********=installer.sh http://servermonkeys.com/projects/els/installer.sh; chmod +x installer.sh; sh installer.sh



راح نركب البرامج التالية :
Install RKHunter
Install RKHunter Cronjob which emails a user-set email address nightly
Install/update APF
Install/update BFD
Install CHKROOTKIT
Install CHKROOTKIT Cronjob which emails a user-set email address nightly
Disable Telnet
Secure /tmp
Tweak WHM Settings for security and stability
Optimize MySQL tables


نـبداء الشرح :
نقوم بتحديث سكربت ELS عن طريق الأمر التالي :

كود PHP:
els --update



اذا هناك تحديث سوف يقوم به تلقائيا اذا كانت لديك أخر نسخه من الاسكربت سوف تظهر هذه الرساله :

كود PHP:
ELS 3.0.0.3 is the latest release, there is no need to update.





اولا : تركيب برنامج الجدار الناري APF مع افضل اعدادات
نكتب الأمر التالي لتركيب البرنامج :

كود PHP:
els --apf



بعد تنزيل البرنامج نكتب الأمر التالي لضبط الأعدادات :

كود PHP:
pico /etc/apf/conf.apf



ونتإكد من القيم التالية بإنها :


كود PHP:
EGF="1"
USE_DS="1"
USE_AD= 1



بعد ذلك نسوي حفظ للعمل


بعد ذلك نذهب الى الملف التالي :

كود PHP:
pico /etc/apf/ad/conf.antidos



ونتأكد من القيم التالية :


كود PHP:
LP_KLOG="1"
CONAME="Your Company"
USR_*****="1"
USR="you@yourco.com"



بعد ذلك نسوي خفظ للملف

هذه اوامر مهمة للفايرول :
تشغيل الفايرول :


كود PHP:
/usr/local/sbin/apf -s



اعادة تشغيل الفايرول :


كود PHP:
/usr/local/sbin/apf -r



ايقاف الفايرول :


كود PHP:
/usr/local/sbin/apf -f



مشاهدة حالة الفايرول :


كود PHP:
/usr/local/sbin/apf -st



للسماح للأي بي


كود PHP:
/usr/local/sbin/apf -a 124.11.11.11



لحظر أي بي شخص بالفيرول


كود PHP:
/usr/local/sbin/apf -d 124.11.11.11



بعد الانتهاء نقوم بتشغيل الفايرول اكتب الأمرين التالين :

كود PHP:
/etc/apf/ad/antidos -a
/usr/local/sbin/apf -r







ثانيا : بعد الانتهاء من تركيب الفايرول نقوم بتركيب برنامج الحماية BFD (Brute Force Detection)


لتركيب البرنامج اكتب الأمر التالي :

كود PHP:
els --bfd




ولضبط اعدادات البرنامج نكتب الأمر التالي :

كود PHP:
pico -w /usr/local/bfd/conf.bfd



يجب انت تكون القيم كتالي :

كود PHP:
*****_USR="1"
EMAIL_USR=you@yoursite.com



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

نسوي حفظ للملف

لتشغيل البرنامج نكتب الأمر التالي :

كود PHP:
/usr/local/sbin/bfd -s



معلومة هامة حول البرنامج :
للسماح بالأي بي

كود PHP:
pico -w /etc/apf/allow_hosts.rules



ونضع الأي بي داخل الملف ونسوي له حفظ

ولحظر اي بي نروح الى

كود PHP:
pico -w /usr/local/bfd/ignore.hosts



ونضع الأي بي داخل الملف ونسوي له حفظ


ثالثا : تركيب برنامج الحماية من هجمات DOS-Deflate


تنصيب البرنامج :


كود PHP:
wget http://www.inetbase.com/scripts/ddos/install.sh
chmod 0755 install.sh
./install.sh



بعد ذلك نقوم بضبط الأعدادات :

كود PHP:
pico /usr/local/ddos/ddos.conf



ونغير التالي :

كود PHP:
Set NO_OF_CONNECTIONS=150



نغيرها الى اي رقم تريده
هذا الخيار للوضع حدد لعدد الأتصالات بالسيرفر للأي بي الواحد
يفضل وضعها 300 او 250

وتإكد من القيم التالية :


كود PHP:
APF_BAN=1
EMAIL_TO=xxx@xxx.com
هذا عدد الوقت بالثانية للحظر 600 ثانية
BAN_PERIOD=600




لمعرفة المتصلين بالسيرفر نكتب الامر هذا


كود PHP:
cd /usr/local/ddos/;./ddos.sh
sh /usr/local/ddos/ddos.sh



لحظر اي شخص ندخل هنا


كود PHP:
pico /usr/local/ddos/ignore.ip.list



ونضع الأي بي داخل الملف ونسوي له حفظ


تشغيل البرنامج :


كود PHP:
/usr/local/ddos/ddos.sh -c
iptables -F



ولجعل البرنامج يعمل بعد الريستارت نروح للملف :

كود PHP:
pico /etc/rc.d/rc.local



ونضع في نهاية الملف التالي :


كود PHP:
## Add the following lines at the bottom of the file
/usr/local/ddos/ddos.sh -c



لو رغبت بحذف البرنامج اكتب الأمر التالي :


كود PHP:
wget http://www.inetbase.com/scripts/ddos/uninstall.ddos
sh uninstall.ddos



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

اكتب الأمر التالي لمعرفة عدد المتصلين بالسيرفر :


كود PHP:
netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -nk 1
or
netstat -ntu | awk ‘{print $5}’ | cut -d: -f1 | sort | uniq -c | sort -n



راح يظهر لك النتيجة كتالي :


كود PHP:
1 195.229.235.36
1 195.229.235.39
1 195.229.236.214
1 195.229.237.39
1 195.229.242.53
1 195.229.242.55
1 195.229.242.56
1 196.12.217.252
1 196.20.126.97
1 41.200.213.119
1 86.60.97.145
1 89.108.0.85
2 195.229.235.41
2 41.201.175.161
2 41.248.162.42
2 77.30.118.133
2 94.97.78.197
3 84.11.138.148
400 41.235.239.187



هذا يعني ان الأي بي
41.235.239.187
مسوي فلود على السيرفر طيب الحين عرفنا مسبب الفلود الحين نجي نسوي له حظر

اكتب الأمر التالي :


كود PHP:
pico /usr/local/ddos/ignore.ip.list



وضع الأي بي الشخص المسبب للحظر

ولحظر الأي بي بواسطة برنامج BFD
ولحظر اي بي نروح الى


كود PHP:
pico -w /usr/local/bfd/ignore.hosts



ونضع الأي بي داخل الملف ونسوي له حفظ

وايضا نروح للبرنامج APF ونحط الأي بي


كود PHP:
/usr/local/sbin/apf -d 41.235.239.187



وهذه طريقة اخرى لخظر الشخص


كود PHP:
iptables -I INPUT -s 41.235.239.187 -j DROP



بعد كذا نكتب الامر

كود PHP:
service iptables save
service iptables restart





تركيب برنامج الفايرول CSF :

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

راح اشرحه للي يرغب بتركيبه على سيرفره :)


كود PHP:
cd /usr/src
wget http://www.configserver.com/free/csf.tgz
tar -xzf csf.tgz
cd csf
sh disable_apf_bfd.sh
sh install.sh



نجي نضبط اعداداته :

كود PHP:
pico /etc/csf/csf.conf



تاكد من هذه الخيارات انها على ذات القيم الموضحة :



كود PHP:
TESTING = "0"




كود PHP:
AUTO_UPDATES = "1"




كود PHP:
TCP_IN = "20,21,22,25,53,80,110,143,443,465,953,99 3,995,2077,2078,2082,2083,2086,2087,2095 ,2096,6102"




كود PHP:
TCP_OUT = "20,21,22,25,37,43,53,80,110,113,443,587, 873,953,2087,2089,2703,6102"



ملاحظة لا تنسى وضع بورت الشل ضمن هذه الارقام وذلك وبضع , ويليها ارقم بدون مسافات
ملاحظة : 6102 هو بروت الشل الي وضحته في الشرح لا تضعه ضمن البروتات

ثم احفظ الملف


كود PHP:
service csf restart




نذهب الى WHM :

Main >> Plugins >> ConfigServer Security & Firewall



http://www.sa3eka.com/image/server/css/11.png

اضغط على
http://www.sa3eka.com/image/server/css/12.png

في هذه الخانة اضغط hight

http://www.sa3eka.com/image/server/css/13.png

واخيرا :

http://www.sa3eka.com/image/server/css/14.png

نعود الى الشل ونحرر ملف csf.conf


كود PHP:
pico /etc/csf/csf.conf



ctrl + w >> LF_MODSEC

اجعلها هكذا :


كود PHP:
LF_MODSEC = "10"



او ضع مكان الرقم 10 اي عدد يفضل ان لا يكون اقل من 5

احفظ الملف ثم

كود PHP:
service csf restart




ولحظر اي شخص من خلال برنامج csf

اكتب الأمر التالي :

كود PHP:
csf -d 124.11.11.11





رابعا : بعد الأنتهاء من تركيب برامج الفايرول والحماية نقوم بتركيب برنامج chkrootkit

اكتب الأمر التالي لتركيبة :

كود PHP:
els --chkrootkit



ولجعل البرنامج يعمل بشكل يومي ويرسل كل 24 ساعة تقرير عن الفحص الملفات السيرفر

اكتب الأمر التالي وضع ايميلك :

كود PHP:
els --chkrootkitcron



سوف يطلب منك اضافه بريدك
اكتب بريدك و أضغط enter
سوف تظهر هذه الرساله :

كود PHP:
Ensure this is correct.
Proceed? (y/n):




أضغط علي مفتاح Y للتأكيد .



خامساً : ضبط تصاريح مجلدات الروت الخطره :

اكتب الأمر التالي :

كود PHP:
els --chmodfiles




سادساً : لتعطيل التلنت :

اكتب الأمر التالي :

كود PHP:
els --disabletelnet




سابعاً : تركيب imagemagick برنامج محرر الصور علي السيرفر :

اكتب الأمر التالي :

كود PHP:
els --imagemagick



سوف يقوم بتركيب البرنامج و اذا كان موجود مسبقا سوف يقوم بتحديثه علي سيرفرك .


قد يستغرق التحديث بعض الوقت انتظر لحين الانتهاء ...


ثامناً : تركيب rkhunter :


يقوم هذا البرنامج :

* بمقارنة MD5 Hash وفحصها .
* البحث عن الملفات المستخدمة من قبل الروت كيت بشكل دائم.
* التأكد من تصريحات الملفات المهمة بالنظام .
* فحص ملفات LKM و ملفات KLD .
* البحث عن الملفات المخفية .

لتركيب اكتب الأمر التالي :


كود PHP:
els --rkhunter




سوف تظهر هذي الرساله تطلب منك تأكيد التركيب :


كود PHP:
ELS can now install RKHunter.
Proceed? (y/n):



أضغط Y ثم Enter لتأكيد التركيب ...

سوف يقوم الأسكربت بتركيب البرنامج الخطوه التاليه لنقوم بأعداد البريد الخاص بك ليصلك تقرير يومي :


كود PHP:
els --rkhuntercron



تظهر هذه الرساله تطلب ادخال بريدك الالكتروني :

أكتب بريدك بعدها enter سوف تظهر هذه الرساله :

أضغط مفتاح Y للتأكيد ثم Enter ...

لتشغيل الاسكربت يدوي اكتب الامر التالي في الشل :


كود PHP:
rkhunter -c




سوف يقوم البرنامج بعمل فحص النظام وعرض الأخطاء أو العمليات المشبوهة باللون الأحمر والسليمة بالأخضر .


الخطوة رقم تسعة : تركيب برنامج zend :


كود PHP:
els --zendopt



سوف تظهر امامك خيارات Yes , Exit أضغط Enter بشكل متواصل لحين الانتهاء ...



الخطوة رقم عشرة : ضغط ووضع اعدادات للملف قواعد البيانات /etc/my.cnf


كود PHP:
els --optimizemysqlconf



الخطوة رقم 11 : حماية ملف التيمب بواسطة البرنامج els

كود PHP:
els --securepartitions



الخطوة الأخيرة اكتب الامر التالي لضبط اعدادات Tweak Settings
اكتب الأمر


كود PHP:
els --tweakcpsettings



واكتب الامر التالي لأصلح الأخطاء :


كود PHP:
els --fixrndc




بعد ذلك نقوم بتعزيز الحماية ووضع الصلاحيات البيرل في السيرفر للروت
اكتب الأمر التالي :


كود PHP:
chmod 700 /usr/bin/perl



بعد ذلك نقوم بتغير الكلام الي يظهر اثناء ما تدخل بمعلومات SSH

اكتب الإمر هذا


كود PHP:
pico /etc/motd



واكتب الأمر التالي :


كود PHP:
Welcome To SSH Host2NeeD.Com Web Servers

Now You Can Use Your Server

Tack your Time



بعد كذا احفظ العمل


حماية SSH وتغير البورت الخاص بالـssh


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



سوف نقوم بالتعيدل على هذه الاسطر :


كود PHP:
#Port 22
#Protocol 2,1
#ListenAddress 0.0.0.0
#ListenAddress ::



نروح نغيرها القيم الى التالي :


كود PHP:
Port 3322
Protocol 2
Protocol 2
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::



مع تغير الـ 3322 الى بورت الشيل الذي ترغب به المهم ان يكون البورت من 4 ارقام وما يكون من ضمن هذه القائمة من البورتات

كود PHP:
20,21,22,25,53,80,110,143,443,465,953,99 3,995,2077,2078,2082,2083,2086,2087,2095 ,2096



الآن نقوم بعمل أعداد للنسخ الأحتياطي للسيرفر

اولا لازم تروح الشل وتكتب التالي :


كود PHP:
cd /



ثم


كود PHP:
mkdir backup



ثم



كود PHP:
cd backup



ثم


كود PHP:
mkdir cpbackup



ثم


كود PHP:
cd cpbackup



ثم


كود PHP:
mkdir daily



ثم


كود PHP:
mkdir weekly



ثم



كود PHP:
mkdir monthly





ثم اعطي المجلدات التصريح 711


كود PHP:
chmod 711 /backup
chmod 711 /backup/cpbackup
chmod 711 /backup/cpbackup/daily
chmod 711 /backup/cpbackup/weekly
chmod 711 /backup/cpbackup/monthly



بعدين تروح whm >> Main >> Backup >> Configure Backup :


ونضع الخيارات كما هي بالصور التالية :

http://www.sa3eka.com/image/server/css/Backup.PNG


تركيب برنامج يساعد على ترتيب العمليات في البروسيس وراح تلاحظ معدل انخفاض 5-25%
البرنامج SPRI (Priority Scheduler)

طريقة تركيب البرنامج :


كود PHP:
cd /root
wget http://www.rfxnetworks.com/downloads/spri-current.tar.gz
tar xvfz spri-current.tar.gz
cd spri-0.5
./install.sh
spri -v




ندخل لـ WHM لننهي اخر الخطوات :

نروح للمود سيكورتي من خلال WHM

Main >> Plugins >> Mod Security

نضغط على Edit Config

ونضع فيها الرولز التالي :

نسوي نسخ للمحتوى النوتة ونسوي لصق في المود سيكورتي

لتحميل الرولز من هنا
http://sa3eka.com/forum/attachment.p...1&d=1218997258 (http://sa3eka.com/forum/attachment.php?attachmentid=1220&stc=1&d=1218997258)

بعدين نسوي حفظ للعملية


ونروح الى الخيار Background Process Killer
Main >> System Health >> Background Process Killer

ونسوي علامة صح للكل الخيارات


كود PHP:
[x]BitchX
[x]bnc
[x]eggdrop
[x]generic-sniffers
[x]guardservices
[x]ircd
[x]psyBNC
[x]ptlink
[x]services




1 •
http://www.sa3eka.com/image/server/css/15.png
نذهب الى :
Main >> Security >> Modify Apache Memory Usage

http://www.sa3eka.com/image/server/css/16.png

اضغط الزر كما هو مبين لتحصل على نتيجة مماثلة لهذه :


كود PHP:
Apache Limiter by cPanel, Inc.
Checking for BSD Accounting ....
Calculating Memory Limit .......2074332..1037166..4192924......
Largest Webserver child cgi/ssi/php is now limited to 396 meg




Main >> Security >> Security Center


Configure cPHulk http://www.sa3eka.com/image/server/css/17.gif

اضغط : http://www.sa3eka.com/image/server/css/19.png


PHP open_basedir Tweak http://www.sa3eka.com/image/server/css/18.gif

[x] Enable php open_basedir Protection

ثم اضغط : http://www.sa3eka.com/image/server/css/4.png


Apache mod_userdir Tweak http://www.sa3eka.com/image/server/css/20.gif


[x] Enable mod_userdir Protection.

ثم اضغط : http://www.sa3eka.com/image/server/css/4.png


****l Fork Bomb Protection http://www.sa3eka.com/image/server/css/21.gif


اضغط : http://www.sa3eka.com/image/server/css/22.png


2 •
http://www.sa3eka.com/image/server/css/23.png



Main >> Service Configuration >> Configure PHP and SuExec

نضع الأعداد كما في الصورة
http://www.sa3eka.com/image/server/css/Suexec.PNG


Main >> Service Configuration >> FTP Configuration


اضغط على هذا الزر : http://www.sa3eka.com/image/server/css/28.png


Main >> Service Configuration >> Service Manager

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


كود PHP:
antirelayd : [x] Enabled [x] Monitor
exim : [x] Enabled [x] Monitor
eximstats : [x] Enabled [x] Monitor
ftpd : [x] Enabled [x] Monitor
imap : [x] Enabled [x] Monitor
mysql : [x] Enabled [x] Monitor
named : [x] Enabled [x] Monitor
pop : [x] Enabled [x] Monitor
spammd : [x] Enabled [x] Monitor
syslogd : [x] Enabled



ثم اضغط : save


3 •
http://www.sa3eka.com/image/server/css/24.png




Main >> Server Configuration >> Tweak Settings

ضع نفس هذه الاعدادات :

http://www.sa3eka.com/image/server/css/25.png
• Stats Programs


كود PHP:
[x] Analog Stats
[x] Awstats Stats
[x] Webalizer Stats




• System :


كود PHP:
[x] Always redirect users to the ssl/tls ports when visiting /cpanel, /webmail, etc.
[x] Use native SSL support if possible, negating need for Stunnel
[x] Do not start deprecated Melange 1.10 chat server



4 •
http://www.sa3eka.com/image/server/css/26.png


Main >> Server Contacts >> Change System Mail Preferences

http://www.sa3eka.com/image/server/css/27.png



ثم اضغط change وقم بعمل نفس الشيء لكل من :

nobody's mail . cpanel's mail



بعد الأنتهاء من اعداد السيرفر نقوم بعمل ريبورت للسيرفر


كود PHP:
reboot









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


كود PHP:
cat /proc/meminfo



ولمعرفة حجم الميموري راح يظهر لك كلام كثير نروح لأول واحد
MemTotal: 524288 kB

هذا يعني ان الرام 512 ميجا

نقوم بعملية قسم رياضية :
قسمة 524288 على 1024 راح يطلع الناتج 512

وبكذا تعرف الرام المخصصة للسيرفر الخاص بك او الـ VPS

وطريقة اخرى من خلال الأمر

كود PHP:
free -m



راح يظهر لك TOTAL 512



ولمعرفة مواصفات السيرفر ونوع البروسيس نكتب الأامر التالي :


كود PHP:
cat /proc/cpuinfo




طريقة اضافة الخطط في السيرفر :

نروح ندخل على WHM :
Main >> Packages >> Add Packages
http://www.sa3eka.com/image/server/css/plan1.PNG
http://www.sa3eka.com/image/server/css/plan2.PNG




(( طريقة عمل ريسيلر من السيرفر ))
قم بعمل حساب جديد
Main >> Account Functions >> Create a New Account


وتأتي خطوة ملئ البيانات للاكاونت الجديد
Domain : إسم الدومين
نكتبه مثلا trial.com
UserName : إسم اليوزر
Password : الباسوورد
Contact Email : الإيميل
Choose a Package : نختار الخطة المناسبة للريسيلر
وسوف تجد
Reseller Settings
Give Reseller Privileges
وقم بعمل علامه صح عليها
ثم الضغط علي Create


بعد الأنتهاء من عمل حساب الريسيلر الحين نروح نعطية الصلاحيات وهي كتالي :
نروح من WHM :
Main >> Resellers >> Reseller Center
http://www.sa3eka.com/image/server/css/reseller1.PNG

هذه هي الصلاحيات الريسيلر :
http://www.sa3eka.com/image/server/css/reseller2.PNG
http://www.sa3eka.com/image/server/css/reseller3.PNG
http://www.sa3eka.com/image/server/css/reseller4.PNG





سكربت كاشف ملفات الشل علي السيرفر


الاسكربت ممتاز و يحميك بنسبه 98% من ملفات الشل

التركيب أفتح الشل بسيرفرك و طبق الخطوات التالية :

كود PHP:
cd /root
wget http://www.modelayer.com/exploit.sh.txt
mv exploit.sh.txt exploit.sh
chmod 755 exploit.sh




و لجدولة الاسكربت ليصلك تبليغ في حين رفع شل علي سيرفرك أتبع التالي :

كود PHP:
export EDITOR=pico

crontab -e



و من ثم نروح لاخر سطر و نقوم بأضافة التالي


كود PHP:
0 7,19 * * * /root/exploit.sh -c -m admin@host2need.com




و بدل البريد admin@host2need.com (admin@host2need.com) الى بريدك
و من ثم تضغط x + ctrl

لتشغيل الاسكربت بشكل يدوي طبق الاوامر التالية بالشل

كود PHP:
cd /root
sh exploit.sh




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

افتح الشل و طبق الامر التالي :
pico /etc/passwd


شوف مخرجات المواقع اذا حصلت كل يوزر بالشكل التالي

gogo:x:0:0::/home/modelayer:/bin/bash


احذف اليوزرات و اجعلها بالشكل التالي

gogo:x:32043:32045::/home/modelayer:/usr/local/cpanel/bin/no****l

توضيح :

:x:0:0::/ تعني صلاحيات الروت كامله

موقع عادي :x:32043:32045::/

فقط قم بتبديل gogo باليوزر تبع الموقع



للبحث عن الشيلات المشفرة اكتب الأمر التالي :

كود PHP:
find /home/*/public_html -name "*.php" -print | xargs egrep -l ' base64_' >> /root/result.txt



بعدها تجد النتيجة في /root/result.txt

كود PHP:
pico /root/result.txt




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

كود PHP:
awk -F: '$2 == "" { print $1, "has no password!" }' /etc/shadow



للبحث عن المستخدمين الذين لديهم صلاحيات مشابهة الى root

كود PHP:
awk -F: '$3 == 0 { print $1, "is a superuser!" }' /etc/passwd



awk -F: '$3 == 0 { print $1, "is a superuser!" }' /etc/passwd

للتحقق من الملفات التي تحمل صلاحيات SUID و SGID

كود PHP:
find /dir -xdev -type f -perm +ug=s -print



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

كود PHP:
find /dir -xdev -perm +o=w ! ( -type d -perm +o=t ) ! -type l -print



للتحقق من الكلمات السرية الغير جيدة

كود PHP:
john /etc/shadow




طريقة لحظر المخترق بشكل احترافي :

على فرض إنه IP المخترق هو 222.13.4.55 قم بعمل التالي:

route add 222.13.4.55 127.0.0.1

وعشان تشوف اكتب :
netstat -nr

تسمى هذه الطريقة … طريقة حجب المخترق من خلال الــ null route … أي مسار يؤدي الى الفراغ أو المجهول


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