انتقل إلى المحتوى الرئيسي
العودة إلى الفئة

هجمات DDoS من الطبقة 4 والطبقة 7: الكشف والحماية

دليل شامل للكشف والتحليل والحماية من هجمات TCP/UDP flood وSYN flood وHTTP flood وSlowloris وAmplification.

وقت القراءة: 16 دقيقة حماية DDoS والأمان
ddoslayer4layer7syn-floodhttp-floodslowlorisamplification

جدول المحتويات

هجمات DDoS من الطبقة 4 والطبقة 7: الكشف والحماية

تهدف هجمات DDoS (رفض الخدمة الموزع) إلى تعطيل خادمك أو شبكتك عن طريق إغراقها بحركة مرور مفرطة. تحدث هذه الهجمات على طبقات مختلفة من نموذج OSI. يغطي هذا الدليل أنواع هجمات الطبقة 4 (النقل) والطبقة 7 (التطبيق) وطرق الكشف واستراتيجيات الحماية.

توفر بنية REXE التحتية حماية على مستوى الشبكة ضد هجمات الطبقة 3/4 من خلال Path Panel. لحماية الطبقة 7، يمكن استخدام Cloudflare WAF أو تكوينات مخصصة.

نموذج OSI وطبقات DDoS

الطبقةالاسمأنواع الهجماتالهدف
الطبقة 3الشبكةIP flood, ICMP floodعرض النطاق الترددي
الطبقة 4النقلSYN flood, UDP flood, TCP floodجدول الاتصالات
الطبقة 7التطبيقHTTP flood, Slowloris, DNS queryموارد التطبيق

هجمات الطبقة 4

تستهدف هجمات الطبقة 4 بروتوكولات TCP وUDP لاستنفاد موارد اتصال الخادم.

SYN Flood

يستغل عملية المصافحة الثلاثية لـ TCP. يرسل المهاجم العديد من حزم SYN لكنه لا يستجيب أبدًا بـ ACK.

اتصال TCP عادي:
العميل → SYN → الخادم
العميل ← SYN-ACK ← الخادم
العميل → ACK → الخادم
✓ تم إنشاء الاتصال

SYN Flood:
المهاجم → SYN → الخادم
المهاجم ← SYN-ACK ← الخادم
المهاجم → (لا يرسل ACK)
✗ تتراكم الاتصالات نصف المفتوحة

كشف SYN Flood

hljs bash
# فحص الاتصالات نصف المفتوحة
ss -s

# قائمة اتصالات SYN-RECV
ss -tnp state syn-recv

# توزيع حالات الاتصال
ss -ant | awk '{print $1}' | sort | uniq -c | sort -rn

الحماية من SYN Flood

hljs bash
# تفعيل SYN cookies
sudo sysctl -w net.ipv4.tcp_syncookies=1

# زيادة SYN backlog
sudo sysctl -w net.ipv4.tcp_max_syn_backlog=65536

# تقليل محاولات إعادة SYN-ACK
sudo sysctl -w net.ipv4.tcp_synack_retries=2

# جعلها دائمة
cat >> /etc/sysctl.conf << 'EOF'
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 65536
net.ipv4.tcp_synack_retries = 2
net.core.somaxconn = 65536
EOF
sudo sysctl -p

UDP Flood

نظرًا لأن UDP بروتوكول بدون اتصال، يمكن إرسال كميات كبيرة من حزم UDP بعناوين IP مزيفة.

hljs bash
# مراقبة حركة UDP
sudo tcpdump -i eth0 udp -c 1000 -nn

# إغلاق منافذ UDP غير الضرورية
sudo iptables -A INPUT -p udp --dport 19 -j DROP   # chargen
sudo iptables -A INPUT -p udp --dport 69 -j DROP   # TFTP
sudo iptables -A INPUT -p udp --dport 111 -j DROP  # portmap

# تحديد معدل UDP
sudo iptables -A INPUT -p udp -m limit --limit 100/s --limit-burst 200 -j ACCEPT
sudo iptables -A INPUT -p udp -j DROP

هجمات Amplification

يرسل المهاجم طلبات صغيرة لتوليد استجابات كبيرة، مستخدمًا IP الضحية كمصدر.

البروتوكولمعامل التضخيمالمنفذ
DNS28-54x53
NTP556x123
Memcached51000x11211
hljs bash
# تعطيل NTP monlist
echo "disable monitor" >> /etc/ntp.conf
sudo systemctl restart ntpd

# ربط Memcached بـ localhost فقط
echo "-l 127.0.0.1" >> /etc/memcached.conf
sudo systemctl restart memcached

هجمات الطبقة 7

تستهدف هجمات الطبقة 7 بروتوكول HTTP/HTTPS لاستنفاد موارد تطبيق خادم الويب.

HTTP Flood

يُثقل خادم الويب بإرسال العديد من طلبات HTTP GET أو POST.

hljs bash
# مراقبة عدد طلبات HTTP (Nginx)
tail -f /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -rn | head -20

الحماية من HTTP Flood (Nginx)

hljs nginx
limit_req_zone $binary_remote_addr zone=general:10m rate=10r/s;
limit_req_zone $binary_remote_addr zone=api:10m rate=5r/s;
limit_conn_zone $binary_remote_addr zone=addr:10m;

server {
    limit_req zone=general burst=20 nodelay;
    limit_conn addr 50;
    
    location /api/ {
        limit_req zone=api burst=10 nodelay;
    }
}

Slowloris

يستنفد Slowloris مجموعة اتصالات الخادم عن طريق إبقاء اتصالات HTTP مفتوحة لأطول فترة ممكنة.

الحماية من Slowloris (Nginx)

hljs nginx
http {
    client_header_timeout 10s;
    client_body_timeout 10s;
    send_timeout 10s;
    keepalive_timeout 15s;
    
    limit_conn_zone $binary_remote_addr zone=conn:10m;
    limit_conn conn 20;
}

استراتيجيات الحماية العامة

تحسين معلمات النواة

hljs bash
cat >> /etc/sysctl.conf << 'EOF'
net.ipv4.tcp_syncookies = 1
net.ipv4.tcp_max_syn_backlog = 65536
net.ipv4.tcp_synack_retries = 2
net.netfilter.nf_conntrack_max = 1000000
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.core.netdev_max_backlog = 65536
net.core.somaxconn = 65536
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.conf.all.rp_filter = 1
EOF
sudo sysctl -p

حماية DDoS باستخدام iptables

hljs bash
#!/bin/bash
# إسقاط الحزم غير الصالحة
iptables -A INPUT -m state --state INVALID -j DROP

# فحص SYN للاتصالات الجديدة
iptables -A INPUT -p tcp ! --syn -m state --state NEW -j DROP

# إسقاط حزم XMAS
iptables -A INPUT -p tcp --tcp-flags ALL ALL -j DROP

# إسقاط حزم NULL
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP

# حماية SYN flood
iptables -A INPUT -p tcp --syn -m limit --limit 100/s --limit-burst 200 -j ACCEPT

# حد الاتصالات لكل IP
iptables -A INPUT -p tcp --dport 80 -m connlimit --connlimit-above 50 -j DROP
iptables -A INPUT -p tcp --dport 443 -m connlimit --connlimit-above 50 -j DROP

الخلاصة

تتطلب هجمات DDoS من الطبقة 4 والطبقة 7 استراتيجيات مختلفة. يتم حظر هجمات الطبقة 4 على مستوى الشبكة (Path Panel, iptables)، بينما يتم تصفية هجمات الطبقة 7 على مستوى التطبيق (rate limiting, WAF, Cloudflare). يوفر نهج الحماية متعدد الطبقات الدفاع الأكثر فعالية.