حصرياً الطريقة الأحترافية لصد هجمات الدوس DDOS Attacks
شرحي راح يكون عن الطريقة الأحترافية في صد هجمات الدوس الطريقة مجربة 100% وتم حظر الكثير من هجمات الدوس على السيرفرات بواسطة الطريقة سهلة وبسيطة والتي تعبت جدا في البحث عنها وتمت تجربتها والحمد لله كل شيء صار تمام

تـــابــع الشرح
قبل كل شيء أنبه ان هنالك ثغرة خطيرة في برنامج bind9 وننصح بتركيب النسخة 9.3.4 لخلوها من الثغرة
1 • الحماية ضد Dos , DDos :
? تقوية sysctl.conf و host.conf
ندخل على الشيل
رمز PHP:
تـــابــع الشرح
قبل كل شيء أنبه ان هنالك ثغرة خطيرة في برنامج 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 عن طريق الأمر التالي :
نـبداء الشرح :
نقوم بتحديث سكربت 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
تنصيب البرنامج :
ثالثا : تركيب برنامج الحماية من هجمات DOS-Deflate
تنصيب البرنامج :
رمز PHP:
wget http://www.inetbase.com/scripts/ddos/install.sh chmod 0700 install.sh ./install.sh
بعد ذلك نقوم بضبط الأعدادات :
ونغير التالي :
نغيرها الى اي رقم تريده
هذا الخيار للوضع حدد لعدد الأتصالات بالسيرفر للأي بي الواحد
يفضل وضعها 300 او 250
وتإكد من القيم التالية :
لمعرفة المتصلين بالسيرفر نكتب الامر هذا
لحظر اي شخص ندخل هنا
تشغيل البرنامج :
ولجعل البرنامج يعمل بعد الريستارت نروح للملف :
ونضع في نهاية الملف التالي :
لو رغبت بحذف البرنامج اكتب الأمر التالي :
رمز PHP:
pico /usr/local/ddos/ddos.conf
ونغير التالي :
رمز PHP:
Set NO_OF_CONNECTIONS=150
هذا الخيار للوضع حدد لعدد الأتصالات بالسيرفر للأي بي الواحد
يفضل وضعها 300 او 250
وتإكد من القيم التالية :
رمز PHP:
APF_BAN=1EMAIL_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 يتعرض له السيرفر وكيفية معرفة ذلك
اكتب الأمر التالي لمعرفة عدد المتصلين بالسيرفر :
راح يظهر لك النتيجة كتالي :
هذا يعني ان الأي بي
41.235.239.187
مسوي فلود على السيرفر طيب الحين عرفنا مسبب الفلود الحين نجي نسوي له حظر
اكتب الأمر التالي :
اكتب الأمر التالي لمعرفة عدد المتصلين بالسيرفر :
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:
رمز 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
بعد كذا نكتب الامر
انتهى الشرح وهذا افضل طريقة للحظر هجمات الدوس وهي طريقة مجربة
عند عمل فلود راح توصلك رسالة كتالي على بريدك
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:
هذا لتحديد اقصى حد لعدد المتصلين بالسيرفر يجب تغيرها حسب ما ترغب يفضل ضعها بدل 100 غيرها 200
و الـ 150 غيرها 300
بعدين احفظ الملف وارفعه على السيرفر بإسم :
/sbin/iptables -A syn-flood -m limit --limit 100/second --limit-burst 150 -j RETURN
هذا لتحديد اقصى حد لعدد المتصلين بالسيرفر يجب تغيرها حسب ما ترغب يفضل ضعها بدل 100 غيرها 200
و الـ 150 غيرها 300
بعدين احفظ الملف وارفعه على السيرفر بإسم :
رمز Code:
ولتنصيب الملف اكتب الأمر التالي :ddos.sh
رمز Code:
للمعلوماية الطريقة الأخيرة مع المحتمل انها لا تعمل مع السيرفرات VPS
سلام
sh ddos.sh
للمعلوماية الطريقة الأخيرة مع المحتمل انها لا تعمل مع السيرفرات VPS
سلام