DDoS Saldırı Koruması: Web Sitenizi Nasıl Korursunuz?
zafer ak
Yazar
DDoS Saldırısı Nedir?
DDoS (Distributed Denial of Service), bir web sitesini veya sunucuyu aşırı trafikle bunaltarak hizmet dışı bırakmayı amaçlayan siber saldırı türüdür. Saldırganlar binlerce zombi bilgisayardan (botnet) eş zamanlı istek göndererek hedefi çökertir.
DDoS Saldırı Türleri
1. Volumetrik Saldırılar
Bant genişliğini tüketmeyi hedefler:
- UDP Flood: Rastgele portlara UDP paketleri gönderir
- ICMP Flood: Ping istekleriyle sunucuyu boğar
- DNS Amplification: DNS sunucularını kullanarak trafiği büyütür
2. Protokol Saldırıları
Sunucu kaynaklarını tüketir:
- SYN Flood: TCP handshake'i tamamlamayan bağlantılar
- Ping of Death: Büyük boyutlu ICMP paketleri
- Smurf Attack: Broadcast adreslerine ICMP
3. Uygulama Katmanı Saldırıları (Layer 7)
En tehlikeli ve tespit edilmesi zor olanlar:
- HTTP Flood: Sahte HTTP istekleri
- Slowloris: Bağlantıları yavaşça açık tutar
- POST Flood: Büyük form verileri gönderir
DDoS Korunma Yöntemleri
1. Cloudflare Entegrasyonu
Cloudflare, en popüler DDoS koruma çözümüdür:
# DNS'i Cloudflare'e yönlendirin
# Cloudflare Dashboard > DNS > Add Record
A @ YOUR_ORIGIN_IP (Proxied - Orange Cloud)
A www YOUR_ORIGIN_IP (Proxied - Orange Cloud)
# Security Level ayarlayın
# Security > Settings > Security Level: Medium veya High
2. Rate Limiting
İstek sayısını sınırlayın:
# NGINX rate limiting
http {
# Zone tanımla
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
server {
location / {
# Rate limit uygula
limit_req zone=one burst=20 nodelay;
limit_req_status 429;
}
# API için ayrı limit
location /api/ {
limit_req zone=one burst=5 nodelay;
}
}
}
3. IP Blacklisting
# NGINX IP engelleme
http {
# Kara liste dosyası
geo $blocked_ip {
default 0;
include /etc/nginx/blocked_ips.conf;
}
server {
if ($blocked_ip) {
return 403;
}
}
}
# /etc/nginx/blocked_ips.conf
1.2.3.4 1;
5.6.7.0/24 1;
4. Fail2Ban Yapılandırması
# /etc/fail2ban/jail.local
[nginx-limit-req]
enabled = true
filter = nginx-limit-req
action = iptables-multiport[name=ReqLimit, port="http,https"]
logpath = /var/log/nginx/error.log
findtime = 600
maxretry = 10
bantime = 7200
[nginx-http-auth]
enabled = true
filter = nginx-http-auth
port = http,https
logpath = /var/log/nginx/error.log
maxretry = 5
bantime = 3600
5. Web Application Firewall (WAF)
# ModSecurity kurulumu
apt install libapache2-mod-security2
# OWASP kurallarını indirin
git clone https://github.com/coreruleset/coreruleset.git
cp coreruleset/crs-setup.conf.example /etc/modsecurity/crs-setup.conf
# Aktif edin
Include /etc/modsecurity/crs-setup.conf
Include /etc/modsecurity/rules/*.conf
Laravel ile DDoS Koruması
// app/Http/Middleware/RateLimitMiddleware.php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\RateLimiter;
class DDoSProtection
{
public function handle($request, Closure $next)
{
$key = $request->ip();
if (RateLimiter::tooManyAttempts($key, 60)) {
abort(429, 'Too Many Requests');
}
RateLimiter::hit($key, 60);
return $next($request);
}
}
// routes/api.php
Route::middleware(['throttle:60,1', 'ddos'])->group(function () {
Route::get('/data', [DataController::class, 'index']);
});
Saldırı Tespiti
Şüpheli aktivite belirtileri:
- Anormal trafik artışı
- Belirli IP'lerden yoğun istek
- Yüksek CPU/RAM kullanımı
- Yavaş sayfa yükleme süreleri
- Bağlantı zaman aşımları
Acil Durum Planı
- Saldırıyı tespit edin (monitoring araçları)
- Cloudflare "Under Attack" modunu aktifleyin
- Saldırgan IP'lerini engelleyin
- ISP veya hosting sağlayıcınızı bilgilendirin
- Logları analiz edin
- Güvenlik önlemlerini güncelleyin
Sonuç
DDoS saldırıları her geçen gün artıyor. Proaktif koruma önlemleri alarak web sitenizi ve işletmenizi koruyun. Cloudflare gibi CDN hizmetleri, rate limiting ve WAF kombinasyonu en etkili koruma stratejisidir.