حصرياً الطريقة الأحترافية لصد هجمات الدوسDDOS Attacks

حصرياً الطريقة الأحترافية لصد هجمات الدوس DDOS Attacks


شرحي راح يكون عن الطريقة الأحترافية في صد هجمات الدوس الطريقة مجربة 100% وتم حظر الكثير من هجمات الدوس على السيرفرات بواسطة الطريقة سهلة وبسيطة والتي تعبت جدا في البحث عنها وتمت تجربتها والحمد لله كل شيء صار تمام
http://www.gfi.com/blog/wp-content/uploads/2012/02/DDoS-attacks.jpg
تـــابــع الشرح

قبل كل شيء أنبه ان هنالك ثغرة خطيرة في برنامج bind9 وننصح بتركيب النسخة 9.3.4 لخلوها من الثغرة

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_route = 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 Cookie Protection  net.ipv4.tcp_syncookies = 1
# Enable ignoring broadcasts request  net.ipv4.icmp_echo_ignore_broadcasts = 1
# Enable bad error message Protection  net.ipv4.icmp_ignore_bogus_error_responses = 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 
ثم نحفظ العمل
رمز 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:

 echo 1 > /proc/sys/net/ipv4/tcp_syncookies  
بعد ذلك نقوم بتركيب برنامج Easy Linux Security

لتركيب البرنامج اكتب الأمر التالي :
رمز PHP:
 wget --output-document=installer.sh http://servermonkeys.com/projects/els/installer.sh; chmod +x installer.sh; sh installer.sh 
الي مركب البرنامج احنا راح ننزل برنامج APF + BFD مع افضل الأعدادات :


نـبداء الشرح :
نقوم بتحديث سكربت ELS عن طريق الأمر التالي :
رمز PHP:
  els --update 
اذا هناك تحديث سوف يقوم به تلقائيا اذا كانت لديك أخر نسخه من الاسكربت سوف تظهر هذه الرساله :
رمز PHP:
 [color="DarkGreen"]ELS 3.0.0.3 is the latest release, there is no need to update.[/color] 

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

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


بعد ذلك نذهب الى الملف التالي :
رمز PHP:
 EGF="1" USE_DS="1" USE_AD= 1  

ونتأكد من القيم التالية :
رمز PHP:
  LP_KLOG="1" CONAME="Your Company" USR_ALERT="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:
 ALERT_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 0700 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 chmod 0700 uninstall.ddos ./uninstall.ddos 
بعد الانتهاء من اعداد برامج الحماية السيرفر والفايرول افضل اعدادات اقدم لكم معلومات لكيفة صد اي هجوم DOS يتعرض له السيرفر وكيفية معرفة ذلك

اكتب الأمر التالي لمعرفة عدد المتصلين بالسيرفر :
 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

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

        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 بعدم تركيبه لأن ما ينفع مع سيرفرات VPS ويسبب مشاكل ولكن يعمل بشكل جيد مع السيرفرات الكاملة 
بعد كذا نكتب الامر


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

عند عمل فلود راح توصلك رسالة كتالي على بريدك
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  

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

وهذا ملف لتعزيز الحماية من هجمات الدوس وتعطيل بعض الخدمات وحصرها :
رمز 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 1 > /proc/sys/net/ipv4/tcp_window_scaling echo 0 > /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 0 > $z
done #SYN COOKIES echo 1 > /proc/sys/net/ipv4/tcp_syncookies echo 1 > /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 -F -t mangle /sbin/iptables -X
/sbin/iptables -A INPUT -i lo -j ACCEPT /sbin/iptables -A INPUT -d 127.0.0.0/8 -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 -j 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 -j RETURN  

هذا لتحديد اقصى حد لعدد المتصلين بالسيرفر يجب تغيرها حسب ما ترغب يفضل ضعها بدل 100 غيرها 200
و الـ 150 غيرها 300
بعدين احفظ الملف وارفعه على السيرفر بإسم :
رمز Code:
ddos.sh
ولتنصيب الملف اكتب الأمر التالي :
رمز Code:
sh ddos.sh

للمعلوماية الطريقة الأخيرة مع المحتمل انها لا تعمل مع السيرفرات VPS


سلام







أصدقاء(تطوير ويب)
تعليقات Facebook
0تعليقات Blogger

لا توجد تعليقات على موضوع "حصرياً الطريقة الأحترافية لصد هجمات الدوسDDOS Attacks"

إرسال تعليق

التعليقات متاحه لمستخدمي حساب جوجل فقط.ولاضافة كود: أستعن بهذه الأداة السريعة Encode/HTML .