عرض مشاركة واحدة
  #7  
قديم أضيفت بتاريخ 04-11-2008, 07:23 AM
الزعيم الزعيم غير متواجد حالياً
عضو مشارك
 
تاريخ التسجيل: 21-02-2008
المشاركات: 85
معدل تقييم المستوى: 18
الزعيم will become famous soon enoughالزعيم will become famous soon enough
افتراضي

بعد تركيب برنامج الحماية الآن نإتي الى شرح الحماية السيرفر من عمليات الفلود وهجمات الـ DDOS ATTACK :


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

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 Centos 5.x
# http://www.securecentos.com
# See sysctl(8) and sysctl.conf(5) for more details.
kernel.panic 60
net
.ipv4.ip_forward=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
net
.ipv4.conf.default.accept_source_route 0
net
.ipv4.conf.all.rp_filter 1
net
.ipv4.conf.lo.rp_filter 1
net
.ipv4.conf.eth0.rp_filter 1
net
.ipv4.conf.default.rp_filter 1
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
net
.ipv4.conf.all.log_martians 0
net
.ipv4.conf.lo.log_martians 0
net
.ipv4.conf.eth0.log_martians 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
net
.ipv4.conf.default.accept_source_route 0
net
.ipv4.conf.all.rp_filter 1
net
.ipv4.conf.lo.rp_filter 1
net
.ipv4.conf.eth0.rp_filter 1
net
.ipv4.conf.default.rp_filter 1
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
kernel
.sysrq 0
net
.ipv4.tcp_fin_timeout 15
net
.ipv4.tcp_keepalive_time 1800
net
.ipv4.tcp_window_scaling 0
net
.ipv4.tcp_sack 0
net
.ipv4.tcp_timestamps 0
net
.ipv4.tcp_syncookies 1
net
.ipv4.icmp_echo_ignore_broadcasts 1
net
.ipv4.icmp_ignore_bogus_error_responses 1
net
.ipv4.conf.all.log_martians 1
net
.ipv4.tcp_max_syn_backlog 1024
net
.ipv4.tcp_max_tw_buckets 1440000
net
.ipv4.ip_local_port_range 16384 65536
net
.ipv4.conf.all.arp_announce 2
net
.ipv4.conf.all.arp_ignore 
ثم نحفظ العمل


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

ثم

كود 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:
echo > /proc/sys/net/ipv4/tcp_syncookies 

الي مركب البرنامج احنا راح ننزل برنامج APF + BFD مع افضل الأعدادات :


نـبداء الشرح :


اولا : تركيب برنامج الجدار الناري APF مع افضل اعدادات
نكتب الأمر التالي لتركيب البرنامج :
كود PHP:
els --apf 
بعد تنزيل البرنامج نكتب الأمر التالي لضبط الأعدادات :
كود PHP:
pico /etc/apf/conf.apf 
ونتإكد من القيم التالية بإنها :

كود PHP:
EGF="1"
USE_DS="1"
USE_AD
بعد ذلك نسوي حفظ للعمل


بعد ذلك نذهب الى الملف التالي :
كود PHP:
pico /etc/apf/ad/conf.antidos 
ونتأكد من القيم التالية :

كود PHP:
LP_KLOG="1"
CONAME="Your Company"
USR_ALERT="1"
USR="you@yourco.com"
ARIN_ALERT="1" 
بعد ذلك نسوي خفظ للملف

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

كود PHP:
/usr/local/sbin/apf -
اعادة تشغيل الفايرول :

كود PHP:
/usr/local/sbin/apf -
ايقاف الفايرول :

كود PHP:
/usr/local/sbin/apf -
مشاهدة حالة الفايرول :

كود 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 -


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


لتركيب البرنامج اكتب الأمر التالي :
كود PHP:
els --bfd 

ولضبط اعدادات البرنامج نكتب الأمر التالي :
كود PHP:
pico -/usr/local/bfd/conf.bfd 
يجب انت تكون القيم كتالي :
كود PHP:
ALERT_USR="1"
EMAIL_USR=you@yoursite.com 
مع استبدال البريد الإلكتروني

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

لتشغيل البرنامج نكتب الأمر التالي :
كود PHP:
/usr/local/sbin/bfd -
معلومة هامة حول البرنامج :
للسماح بالأي بي
كود PHP:
pico -/etc/apf/allow_hosts.rules 
ونضع الأي بي داخل الملف ونسوي له حفظ

ولحظر اي بي نروح الى
كود PHP:
pico -/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 
هذا الرقم 150 يفضل وضعها في السيرفر وعدم تغيرها اذا حاب تزيد في قيمة الحد الأقصى لعدد الأتصال بالسيرفر للأي بي الواحد بتغير الرقم 150
يفضل وضعها 150 او 250 او 300
اذا صار هجوم قوي جدا على السيرفر قم بتغير القيمة الى 45 او 35 لكي يتم حجب الفلود بشكل سريع

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

كود 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 
-
ولجعل البرنامج يعمل بعد الريستارت نروح للملف :
كود PHP:
pico /etc/rc.d/rc.local 
ونضع في نهاية الملف التالي :

كود PHP:
## Add the following lines at the bottom of the file
/usr/local/ddos/ddos.sh -
لو رغبت بحذف البرنامج اكتب الأمر التالي :

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


وهذا اعدادات للحماية من الفلود :

وهذا ملف لتعزيز الحماية من هجمات الدوس وتعطيل بعض الخدمات وحصرها :
كود PHP:
#!/bin/bash

/sbin/modprobe ip_tables
/sbin/modprobe ip_conntrack
/sbin/modprobe ip_conntrack_ftp

rm 
/root/.dyn*

echo 
"Setting kernel tcp parameters to reduct DoS effects"

#Reduce DoS'ing ability by reducing timeouts
echo 30 > /proc/sys/net/ipv4/tcp_fin_timeout
echo 1800 > /proc/sys/net/ipv4/tcp_keepalive_time
echo > /proc/sys/net/ipv4/tcp_window_scaling
echo > /proc/sys/net/ipv4/tcp_sack
echo 1280 > /proc/sys/net/ipv4/tcp_max_syn_backlog

#ANTISPOOFING
for a in /proc/sys/net/ipv4/conf/*/rp_filter;
do
echo 1 > $a
done

##
#NO SOURCE ROUTE
for z in /proc/sys/net/ipv4/conf/*/
accept_source_route;
do
echo 
$z
done
#SYN COOKIES
echo > /proc/sys/net/ipv4/tcp_syncookies
echo > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts
#echo $ICMP_ECHOREPLY_RATE > /proc/sys/net/ipv4/icmp_echoreply_rate
echo "1" > /proc/sys/net/ipv4/icmp_ignore_bogus_error_responses
echo "1" > /proc/sys/net/ipv4/conf/all/accept_redirects
echo "1" > /proc/sys/net/ipv4/conf/all/log_martians

# NUMBER OF CONNECTIONS TO TRACK
echo "65535" > /proc/sys/net/ipv4/ip_conntrack_max

# Set default policies
/sbin/iptables -P INPUT ACCEPT
/sbin/iptables -P OUTPUT ACCEPT
/sbin/iptables -P FORWARD DROP

/sbin/iptables -F
/sbin/iptables -F INPUT
/sbin/iptables -F OUTPUT
/sbin/iptables -F FORWARD
/sbin/iptables --t mangle
/sbin/iptables -X

/sbin/iptables -A INPUT -i lo -j ACCEPT
/sbin/iptables -A INPUT -d 127.0.0.0/-j REJECT

/sbin/iptables -A INPUT -i eth0 -j ACCEPT

/sbin/iptables -A INPUT -m state --state INVALID -j DROP

### chains to DROP too many SYN-s ######
/sbin/iptables -N syn-flood
/sbin/iptables -A syn-flood -m limit --limit 100/second --limit-burst 150 -RETURN
/
sbin/iptables -A syn-flood -j LOG --log-prefix "SYN flood: "
/sbin/iptables -A syn-flood -j DROP 
طبعا انصح الجميع بالتعديل في اخر السطور :
كود PHP:
/sbin/iptables -A syn-flood -m limit --limit 100/second --limit-burst 150 -RETURN 
هذا لتحديد اقصى حد لعدد المتصلين بالسيرفر يجب تغيرها حسب ما ترغب يفضل ضعها بدل 100 غيرها 200
و الـ 150 غيرها 300

بعدين احفظ الملف وارفعه على السيرفر بإسم :
كود PHP:
ddos.sh 
ولتنصيب الملف اكتب الأمر التالي :
كود PHP:
sh ddos.sh 
للمعلوماية الطريقة الأخيرة مع المحتمل انها لا تعمل مع السيرفرات VPS


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


بعد الانتهاء من اعداد برامج الحماية السيرفر والفايرول افضل اعدادات اقدم لكم معلومات لكيفة صد اي هجوم 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 -sort -
راح يظهر لك النتيجة كتالي :

كود 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 -/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,993,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





اضغط على


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



واخيرا :



نعود الى الشل ونحرر ملف 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 


انتهى الشرح وهذا افضل طريقة للحظر هجمات الدوس وهي طريقة مجربة

عند عمل فلود راح توصلك رسالة كتالي على بريدك
IP addresses banned on Wed Aug 13 17:10:07 AST 2008

كود PHP:
Banned the following ip addresses on Wed Aug 13 17:10:01 AST 2008

41.249.56.19 with 205 connections 
[/CENTER]


تــــابع الشرح :


التعديل الأخير تم بواسطة الزعيم ; أضيفت بتاريخ 04-11-2008 الساعة 07:38 AM
رد مع اقتباس