سوق العرب | معهد سكيورتى العرب | وظائف خالية

نسخة كاملة: طرق حماية السيرفرات
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية.
السلام عليكم ورحمة الله وبركاته
أخواني الكرام أٌقدم لكم هذه المجموعة من الدروس المنتقاة لحماية و زيادة أمن السيرفر وجعله مستقرا وقد قمت بجمع هذه الدروس من أشهر المواقع الأجنبية في مجال حماية السيرفر


الدرس الأول:
===================


Root Check
=====================


يقوم بفحص وعمل سكان للنظام لمعرفة ما إذا كان هناك أي تروجان ويقوم بفحص البورتات ومعرفة إذا كان هناك أي مخترق كما يقوم بفحص اللوغ و السماحيات والكثير...


تعليمات التنصيب
-------
قم بالدخول إلى السيرفر كرووت
نفذ التعليمات التالية:





كود :
wget http://www.ossec.net/rootcheck/files/rootcheck-0.4.tar.gz


tar -xvzf rootcheck-0.4.tar.gz
cd rootcheck-0.4
./install

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





كود :
Compilation sucessfull. Ready to go.
---------------------------------------------------------
Thats it! If everything went ok, you should be ready to run RootCheck. If you any doubts
about installation, please refer to INSTALL file. You can also find additional information
at : http://www.ossec.net/rootcheck/ Improves, patches, comments are very welcome

.

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




فحص النظام
-------
الآن بعد ان قمت بالتنصيب يمكنك فحص النظام من خلال التعليمة التالية:



كود :
./rootcheck.pl

ستنتقل بعدها إلى شاشة تفاعلية وستخزن جميع المعلومات في الملف
results.txt
حيث ستجد معلومات واضحة عن الملفات المشتبه بها وما قام به البرنامج أثناء الفحص
إذا أردت معلومات أكثر عن الرووت تشيك يمكن أن تجدها في الموقع
http://www.ossec.net



الدرس الثاني
===============


Changing APF log for TDP/UDP drops
===============


إذ كنت مضجرا من رؤية ملف
/var/log/messages
ممتلئا من الرسائل المرسلة من قبل الـجدار الناري apf فيوجد حل بإنشاء ملف لوغ منفصل من أجل TCP/UDP OUTPUT and drops
وهذا سيحعل ملف لوغ الرسائل غير ممتلئ كثيرا وسهل التصفح


المتلطلبات:
-----
اصدار جادر ناري
APF Firewall 0.9.3 او أعلى كما انه يمكن أن يعمل على إصدار أدنى لكن ذلك لم يجرب لمعرفة إذا كان يعمل أم لا



تغيير إعدادات الـ APF Firewall
------------------------
1- قم بالدخول إلى السيرفر كرووت


2- انشئ ملف لوغ جديد فقط من أجل the TCP/UDP output/drops from APF





كود :
touch /var/log/iptables

3- قم بتغيير السماحيات من أجل تقييد النفاذ:





كود :
chmod 600 /var/log/iptables

4- يجب علينا القيام بعمل باك لملف الـ syslog من أجل الأمان في حال قمنا باي خطأ عبر التلعليمة:





كود :
cp /etc/syslog.conf /etc/syslog.conf.bak

5- تغيير الـ syslog ليجبر الـ iptables ليستخدم ملف اللوغ الجديد:



كود :
pico /etc/syslog.conf

6- أضف ما يلي في نهاية الملف:





كود :
# Send iptables LOGDROPs to /var/log/iptables
kern.=debug /var/log/iptables
- احفظ التغييرات
ctrl + X then Y
8- اعد تشغيل خدمة syslogd لتنفيذ التعديلات الجديدة :



كود :
/sbin/service syslog reload

9- عمل نسخة احتياطية للـ أ.ب.اف:





كود :
cp /etc/apf/firewall /etc/apf/firewall.bak

10- فتح الـ أ.ب.ف وعمل تعديلات عليه:





كود :
pico /etc/apf/firewall


11-





قم بالبحث عن
DROP_LOG
ستجد المقطع التالي

كود :
if [ "$DROP_LOG" == "1" ]; then
# Default TCP/UDP INPUT log chain
$IPT -A INPUT -p tcp -m limit --limit $LRATE/minute -i $IF -j LOG --log-prefix "** IN_TCP DROP ** "
$IPT -A INPUT -p udp -m limit --limit $LRATE/minute -i $IF -j LOG --log-prefix "** IN_UDP DROP ** "





قم بتبديله بالتالي:





كود :
if [ "$DROP_LOG" == "1" ]; then
# Default TCP/UDP INPUT log chain
$IPT -A INPUT -p tcp -m limit --limit $LRATE/minute -i $IF -j LOG --log-level debug
$IPT -A INPUT -p udp -m limit --limit $LRATE/minute -i $IF -j LOG --log-level debug


12- ابحث عن DROP_LOG أكثر من مرة حتى تجد المقطع التالي:





كود :
if [ "$DROP_LOG" == "1" ] && [ "$EGF" == "1" ]; then

# Default TCP/UDP OUTPUT log chain
$IPT -A OUTPUT -p tcp -m limit --limit $LRATE/minute -o $IF -j LOG --log-prefix "** OUT_TCP DROP ** "
$IPT -A OUTPUT -p udp -m limit --limit $LRATE/minute -o $IF -j LOG --log-prefix "** OUT_UDP DROP ** "




قم بتبديله إلى







كود :
if [ "$DROP_LOG" == "1" ] && [ "$EGF" == "1" ]; then
# Default TCP/UDP OUTPUT log chain
$IPT -A OUTPUT -p tcp -m limit --limit $LRATE/minute -o $IF -j LOG --log-level debug
$IPT -A OUTPUT -p udp -m limit --limit $LRATE/minute -o $IF -j LOG --log-level debug



13- احفظ التغييرات على الجدار الناري:



Ctrl + X then Y
14- أعد تشغيل الـجدار الناري لتنفيذ التعليماتت الجديدة عبر الأمر:





كود :
/etc/apf/apf –r



15- نفذ الأمر للتأكد من أن ملف اللوغ الجديد يستقبل الرسائل:





كود :
tail –f /var/log/iptables

ستجد أشياء مكتوبة كهذه:





كود :
Aug 27 15:48:31 fox kernel: IN=eth0 OUT= MAC=00:0d:61:37:76:84:00:d0:02:06:08:00:08:00 SRC=192.168.1.1 DST=192.168.1.1 LEN=34 TOS=0x00 PREC=0x00 TTL=118 ID=57369 PROTO=UDP SPT=4593 DPT=28000 LEN=14


كذلك يمكن فحص ملف اللوغ الأساسي بانه لا يتسقبل معلومات من الجدار الناري عبر الأمر





كود :
tail –f /var/log/messages


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

http://www.rfxnetworks.com/apf.php





الدرس الثالث

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




How to Disable Telnet




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

بعض مزودي خدمة الاستضافة لا يقومو بتعطيل هذه الخدمة بشكل افتراضي ويجب الانتباه إلى ذلك وتعطيلها كما ان التيلنيت تصغي إلى الرسائل الداخلة والخارجة عبر البورت رقم 23 وإليكم كيفية إلغاء تفعيل هذه الخدمة:
1- قم بالدخول إلى السيرفر كرووت من خلال اس اس اتش
2- قم بتنفيذ الأمر التالي:






كود :
pico /etc/xinetd.d/telnet


3- ابحث عن السطر

disable = no
وغيره إلى
disable = yes
4- قم بإعادة تشغيل خدمة inetd service عبر الأمر:






كود :
/etc/rc.d/init.d/xinetd restart


5- قد تبقى هذه الخدمة فعالة بعد الذي فعلناه لذلك لضمان أنها ليست فعالة نفذ الامر:






كود :
/sbin/chkconfig telnet off

6- اعمل سكان للسيرفر للتأكد من أن البورت 23 مغلق:






كود :
nmap -sT -O localhost


7- نفذ الأمر التالي لكي تتأكد من انه لا يوجد اي عملية خاصة بالتيلينت فعالة وإذا وجدت اي واحدة دمرها ب kill:






كود :
ps -aux | grep telnet


الدرس الرابع




=======================




How to install BFD (Brute Force Detection




=================




ماهو ال BDF أو Brute Force Detection؟

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




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

المتطلبات:
-----
يجب ان تكون قد ركبت الجدار الناري APF حيث أن الBFD لا يمكنه العمل بدونه




التركيب----

1- أدخل إلى السيرفر عن طريق الـ ssh




2-انشئ مجلد جديد أو أدخل إلى المكان الذي تخزن عليه الملفات المؤقتة :






كود :
cd /root/downloads



3- قم بجلب الملف إلى السيرفر عن طريق الأمر:






كود :
wget http://www.rfxnetworks.com/downloads/bfd-current.tar.gz


4- قم بفك ضغط الملفات عن طريق الأمر:






كود :
tar -xvzf bfd-current.tar.gz


5-نفذ الأمر:

cd bfd-0.7




6- قم بالتركيب والتنصيب عن طريق الامر:






كود :
./install.sh


سوف تتلقى رسالة مفادها أنه تم التثبيت:






كود :
.: BFD installed





Install path: /usr/local/bfd





Config path: /usr/local/bfd/conf.bfd





Executable path: /usr/local/sbin/bfd



تعديل إعدادات ال BFD:



-----------
1- افتح ملف الإعدادات عن طريق الامر:






كود :
pico /usr/local/bfd/conf.bfd

2- فعل إعطاء الإنذار في حال حدوث محاولة اختراق:

ابحث عن ALERT_USR="0" وغيرها إلى ALERT_USR="1"




3- ضع البريد الالكتروني الذي تريد تلقي الإنذار عليه:

ابحث عن EMAIL_USR="root" وغيرها إلى EMAIL_USR="your@yourdomain.com"




4- احفظ التغييرات Ctrl+X then Y




5- يجب ان تضع الاي بي ادريس IP Address الخاص بك عندما تدخل إلى السيرفر حتى لا يعمل لك بلوك:






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

ثم اكتب عناون الاي بي الذي تدخل به مثال:192.168.1.1

6- احفظ التغييرات Ctrl+X then Y
الآن قم بتشغيل البرنامج عن طريق الأمر:






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

7- يمكنك أن تتحكم بطريقة عمل بعض البرامج على السيرفر عن طريق تفحص الدليل






كود :
/usr/local/bfd


الدرس الخامس




=================================




Stop PHP nobody Spammers

============ ==================




لا تستطيع بي اتش بي و لا الأ*****ي منذ إصداراتها الأولى مراقبة ومتابعة الاشخاص اللذين يرسلون البريد الالكتروني عبر PHP mail function و ذلك عبر مستخدم nobody user والاشخاص الحقودين والماكرين يستغلون هذه النقطة لإرسال رسائل السبام بواسطة سكريتات بي اتش بي أوغيرها دون ان تعرف من يقوم بذلك من هؤلاء الاشخاص

إن مراقبة exim_mainlog لا يساعدك كثيرا في هذا الأمر لأنك سترى أن هناك من يرسل رسائل لكن لا تدري من هو المستخدم الذي يرسل هذه الرسائل و أين تقع السيكريبت التي ترسل هذه الرسائل
أذا فحصت ملف PHP.ini ستجد أن برنامج البريد موضوع بشكل افتراضي على المسار
/usr/sbin/sendmail
ستجد ان اغلب سكريبتات الـphp تستخدم هذا المسار لإرسال الرسائل عبر التابع mail(); لذلك فإن اغلب الرسائل سترسل عبر
/usr/sbin/sendmail =)




المتطلبات

-----
سنفترض أنك تستخدم الإصدارات التالية:
Apache 1.3x, PHP 4.3x and Exim
الوقت اللازم:
------
عشر دقائق تقريبا




طريقة التنفيذ:-------

1- الدخول إلى السيرفر عبر SSh
2- قم بايقاف Exim لمنع اي تأثيرات جانبية:






كود :
/etc/init.d/exim stop


3-قم بعمل نسخة احتياطية للملف الافتراضي /usr/sbin/sendmail عبر الأمر:






كود :
mv /usr/sbin/sendmail /usr/sbin/sendmail.hidden

4- قم بإنشاء سكريبت مراقبة للإيميلات الجديدة المرسلة:






كود :
pico /usr/sbin/sendmail


انسخ ما يلي:











كود :
#!/usr/local/bin/perl






# use strict;





use Env;





my $date = `date`;





chomp $date;





open (INFO, ">>/var/log/spam_log") || die "Failed to open file ::$!";





my $uid = $>;





my @info = getpwuid($uid);





if($REMOTE_ADDR) {





print INFO "$date - $REMOTE_ADDR ran $SCRIPT_NAME at $SERVER_NAME n";





}





else {






print INFO "$date - $PWD - @infon";






}





my $mailprog = '/usr/sbin/sendmail.hidden';





foreach (@ARGV) {





$arg="$arg" . " $_";





}






open (MAIL,"|$mailprog $arg") || die "cannot open $mailprog: $!n";





while (<STDIN> ) {





print MAIL;





}





close (INFO);





close (MAIL);



والصقه






5- قم بتغيير السماحيات عبر الأمر:






كود :
chmod +x /usr/sbin/sendmail


6- انشئ ملف لوغ جديد :






كود :
touch /var/log/spam_log






chmod 0777 /var/log/spam_log


7- أعد تشغيل exim






كود :
/etc/init.d/exim start


8- راقب ملف spam_log وجرب قبل ذلك ان ترسل أي رسالة مثلا من أي صفحة اتصل بنا :






كود :
tail - f /var/log/spam_log


لمنع جعل ملف اللوغ كبير يجب ضبط إعدادات Log Rotation Details

وذلك عبر مايلي:
1- افتح الملف logrotate.conf عبر الامر:






كود :
pico /etc/logrotate.conf

2- ابحث عن:






كود :
# no packages own wtmp -- we'll rotate them here





/var/log/wtmp {





monthly





create 0664 root utmp





rotate 1





}


أضف بعدها:




كود :
# SPAM LOG rotation





/var/log/spam_log {





monthly





create 0777 root root





rotate 1





}


الدرس السادس




============================




E-mail Alert on Root SSH Login




====================




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

1- إدخل إلى السيرفر كرووت عن طريق SSh
2- نفذ الأمر :






كود :
cd /root


3- افتح الملف .bashrc للكتابة:






كود :
pico .bashrc


4- أضف ما يلي في نهاية الملف مع تغيير الايميل والهوست:






كود :
echo 'ALERT - Root Shell Access (YourserverName) on:' `date` `who` |





mail -s "Alert: Root Access from `who | cut -d"(" -f2 | cut -d")" -





f1`" you@yourdomain.com


5- أحفظ الملف Crtl + X then Y




6- يمكنك الآن الخروج من الـ اس اس اتش والدخول مرة ثانية للتجريب

وهذه نهاية الفكرة






الدرس السابع

===================




How to install APF (Advanced Policy Firewall

======================================
برنامج الجدار الناري من أقوى برامج الحماية يصلح لأن يكون راكبا على كل سيرفر يقوم بحماية أكيدة وفعالة للسيرفر وهو سهل الاعداد ولمزيد من المعلومات يمكن الإطلاع على الرابط:
http://www.rfxnetworks.com/apf.php




طريقة التركيب:

1- الدخول إلى السيرفر كرووت عن طريق SSh
2- انشئ مجلدا لتحميل الملف المضغوط عليه و فك ضغط هذا الملف وليكن هذا المجلد اسمه downloads
3- إدخل إلى هذا المجلد عن طريق الامر:






كود :
cd /root/downloads


4- قم بجلب ملف الجدار الناري غلى السيرفر عن طريق الأمر:






كود :
wget http://www.rfxnetworks.com/downloads/apf-current.tar.gz

5- فم بفك ضغط هذا الملف:






كود :
tar -xvzf apf-current.tar.gz

6- حسب الإصدار الأخير للبرنامج نفذ الأمر






كود :
cd apf-0.9.5-1/


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






كود :
./install.sh


8- سوف تتلقى رسالة بانتهاء التنصيب:






Installing APF 0.9.5-1: Completed.




Installation Details:

Install path: /etc/apf/
Config path: /etc/apf/conf.apf
Executable path: /usr/local/sbin/apf
AntiDos install path: /etc/apf/ad/
AntiDos config path: /etc/apf/ad/conf.antidos
DShield Client Parser: /etc/apf/extras/dshield/





Other Details:

Listening TCP ports: 1,21,22,25,53,80,110,111,143,443,465,993,995,2082, 2083,2086,2087,2095,2096,3306

Listening UDP ports: 53,55880

Note: These ports are not auto-configured; they are simply presented for information purposes. You must manually configure all port options.




9- سنقوم الآن بضبط إعدادات الجدار الناري فنفتح الملف التالي للتعديل:






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


10- ابحث عن USE_DS="0"

وغيرها إلى USE_DS="1"




11- إعدادات بورتات الجدار الناري:

من اجل cpanel
من اجل بورتات الاستقبال inbound ports:
أضف مايلي






كود :
# Common ingress (inbound) TCP ports -3000_3500 = passive port range for Pure FTPD





IG_TCP_CPORTS="21,22,25,53,80,110,143,443,2082,2083, 2086,2087, 2095, 2096,3000_3500"





#





# Common ingress (inbound) UDP ports





IG_UDP_CPORTS="53"


بورتات الإرسال Outbound ports






كود :
# Egress filtering [0 = Disabled / 1 = Enabled]





EGF="1"






# Common egress (outbound) TCP ports





EG_TCP_CPORTS="21,25,80,443,43,2089"





#





# Common egress (outbound) UDP ports





EG_UDP_CPORTS="20,21,53"



من اجل سيرفرات Ensim :أضف مايلي



من اجل بورتات الاستقبال inbound ports:




كود :
# Common ingress (inbound) TCP ports





IG_TCP_CPORTS="21,22,25,53,80,110,143,443,19638"





#





# Common ingress (inbound) UDP ports





IG_UDP_CPORTS="53"



من اجل بورتات الإرسال Outbound ports:





كود :
# Egress filtering [0 = Disabled / 1 = Enabled]





EGF="1"






# Common egress (outbound) TCP ports





EG_TCP_CPORTS="21,25,80,443,43"





#





# Common egress (outbound) UDP ports





EG_UDP_CPORTS="20,21,53"


أحفظ الملف Crtl + X then Y




12- شغل الجدار الناري عبر الأمر:






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

هناك أوامر اخرى مثل:

إعادة تشغيل الجدار الناري:







كود :
-s|--start ......................... load firewall policies





-r|--restart ....................... flush & load firewall


إعادة التشغيل






-f|--flush|--stop .................. flush firewall توقيف الجدار الناري





-l|--list .......................... list chain rules إظهار القواعد التي يعمل عليها الجدار الناري





-st|--status ....................... firewall status حالة الجدار الناري






13-تعديل خيار الـ DEV

بعد التأكد من ان الجدار الناري يعمل بشكل صحيح يجب إلغاء خيار ايقاف الجدار الناري كل خمس دقائق من الكرون جوب cron وذلك بفتح الملف :






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

ابحث عن

DEVM="1" وغيرها إلى DEVM="0"




14- إعداد الجدار الناري من اجل AntiDOS :

افتح الملف:






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

إذهب إلى القسم # [E-Mail Alerts] و ضع الإعدادات التالية:

ضع هنا اسم شركتك:







كود :
# Organization name to display on outgoing alert emails



CONAME="Your Company"


من أجل أن يرسل لك رسالة عند حصول محاولة اختراق او دوس اتاك dos attack غير ما يلي إلى 1






كود :
# Send out user defined attack alerts [0=off,1=on]



USR_ALERT="0"


ثم ضع بريدك هنا






كود :
# User for alerts to be mailed to






USR="your@email.com"


أحفظ الملف Crtl + X then Y




15- أعد تشغيل الجدار الناري:






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


16- فحص ملف اللوغ للجدار الناري:






كود :
tail -f /var/log/apf_log



Example output:

Aug 23 01:25:55 ocean apf(31448): (insert) deny all to/from 185.14.157.123
Aug 23 01:39:43 ocean apf(32172): (insert) allow all to/from 185.14.157.123

17- تشغيل جدار الناري عند كل إعادة تشغيل للسيرفر:






كود :
chkconfig --level 2345 apf on


لمنع الجدار الناري من العمل اتوماتيكيا عند تشغيل السيرفر:






كود :
chkconfig --del apf


18- عمل بلوك لاي بي معين:

هناك طريقتين:
الطريقة الاولى







كود :
/etc/apf/apf -d IPHERE COMMENTHERENOSPACES

السويتش او اللاحقة d- تعني عمل بلوك لأي بي محدد

IPHERE ضع بدلا عنها عنوان الاي بي الذي تريد حذفه
COMMENTHERENOSPACES يمكنك الكتابة بدلا عنها سبب المنع لكن أكتب كلمات بدون فراغ بينها
مثال:






كود :
./apf -d 185.14.157.123 TESTING

افتح بعدها الملف:






كود :
pico /etc/apf/deny_hosts.rules


ستجد:







# added 185.14.157.123 on 08/23/05 01:25:55


# TESTING

185.14.157.123





الطريق الثانية لمنع اي بي:



افتح الملف






كود :
pico /etc/apf/deny_hosts.rules


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






كود :
/etc/apf/apf -r


السماح لاي بي محجوب بإمكانية وإلغاء البلوك عليه:

عن طريق التعليمة:






كود :
/etc/apf/apf -a IPHERE COMMENTHERENOSPACES
الخيار او اللاحقة a- تعني إلغاء الحجب عن اي بي معين

IPHERE ضع بدلا عنها عنوان الاي بي الذي تريد إلغاء حجبه
COMMENTHERENOSPACES يمكنك الكتابة بدلا عنها سبب إلغاء الحجب لكن أكتب كلمات بدون فراغ بينها






مثال:

./apf -a 185.14.157.123 UNBLOCKING




pico /etc/apf/allow_hosts.rules




# added 185.14.157.123 on 08/23/05 01:39:43

# UNBLOCKING
185.14.157.123



الدرس الثامن

=============




تغيير الرسالة الترحيبية عند دخول المستخدمين إلى السيرفر

===================




يمكن وضع رسالة ترحيبية تظهر عند دخول أي مستخدم إلى السيرفر عن طريق الـ SSh




ويكون ذلك بتعديل ملف motd




والطريقة:

1- ادخل غلى السيرفر كرووت عن طريق الـ SSh
2- افتح الملف التالي:






كود :
pico /etc/motd



3- اكتب الرسالة الترحيبية التي تريدها ان تظهر



4-أحفظ الملف Crtl + X then Y
انتهت الفكرة


منقول


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