DDoS for Web
HTTP katmanındaki DDoS saldırılarını her sunucuda çalışan otonom bir sistemle, merkezî onay beklemeden azaltır. Ücretsiz plan dahil sınırsız, ortalama üç saniyede devreye giriyor.
- DurumGenel kullanımda
- FiyatSınırsız (unmetered) — tüm planlarda dahil; gelişmiş eklenti ayrı
- Ücretsiz katmanvar
- Doğrulama
DDoS for Web nedir?
HTTP katmanındaki (L7) dağıtık hizmet reddi saldırılarına karşı, Cloudflare’in tüm planlarında sınırsız olarak verilen otomatik koruma.
Ürünü diğerlerinden ayıran iki şey var: sınırsız olması ve otonom çalışması.
Nasıl çalışır?
Azaltma request yolunun üzerinde değil
Bu, ürünle ilgili en yaygın yanlış anlatım ve düzeltilmesi gerekiyor.
Cloudflare’in faz listesinde ddos_l7 fazı var, ama yanında bir yıldız ve şu not duruyor:
”* This phase is for configuration purposes only — the corresponding rules will not be executed at this stage in the request handling process.”
Yani ddos_l7 bir yapılandırma yüzeyi, bir yürütme noktası değil.
Tespitten azaltmaya geçen süre: “Up to three seconds on average.”
Managed ruleset
| Öğe | Değer |
|---|---|
| HTTP DDoS managed ruleset ID | 4d21379b4f9f4bb088e0729962c8b3cf |
| L3/4 karşılığı | 3b64149bfa6e4220bbbc2bd6db589552 |
| Token yetkisi | HTTP DDoS Managed Ruleset Write |
Kural setinin kendisini düzenleyemiyorsun; override yazarak hassasiyet (sensitivity) ve aksiyon davranışını değiştiriyorsun.
Override sıralaması — sessizce her şeyi bozan tuzak
Ve ilgili bir uyarı: “Changing a rule from Block to Log may allow attack traffic to reach your web property.”
Adaptive DDoS Protection
Trafiğinin normal profilini öğrenip sapmayı yakalayan kural ailesi. GA tarihi 19 Eylül 2022.
| Kural | Kimlik |
|---|---|
| Locations | a8c6333711ff4b0a81371d1c444be2c3 |
| User-Agents | 7709d496081e458899c1e3a6e4fe8e55 |
| Origin errors | dd42da7baabe4e518eaf11c393596a9d |
Profilleme için gereken minimum istek hızı eşiği yayımlanmıyor. Düşük trafikli bir sitede bu kuralların anlamlı bir profil kurup kuramayacağı doğrulanamamıştır.
Loglama ve gözlemlenebilirlik
firewall_events Logpush dataset’inde:
| Alan | L7 DDoS değeri |
|---|---|
Source | l7ddos |
RuleID | managed rule ID (iç kurallarda boş olabiliyor) — yazım RuleID, RuleId değil |
Action | block · managedchallenge · challenge · log · connectionclose |
Ref | ddos_l7 giriş kuralına kendi koyduğun ref |
Saklama süreleri — demo planlarken kritik:
| Free | Pro | Business | Enterprise | |
|---|---|---|---|---|
| Security Events | 24 saat | 24 saat | 3 gün | 30 gün |
| Security Analytics | 7 gün | 7 gün | 31 gün | 90 gün |
Ücretsiz planda demo yapıyorsan ekran görüntülerini aynı gün almalısın.
Ne zaman kullanılır, ne zaman kullanılmaz
Kullanılır
Bu ürün için “kullanılır” listesi kısa, çünkü kapatılacak bir şey değil: proxy’li her zone’da zaten çalışıyor ve ücretsiz. Asıl soru “kullanmalı mıyım” değil, “ayarlarına dokunmalı mıyım”.
Ayarlarına dokunman gereken durumlar:
- Yanlış pozitif alıyorsan — meşru trafiğin engelleniyorsa hassasiyeti düşürmen gerekiyor.
- Belirli bir yol veya hostname için farklı davranış istiyorsan — ifadeli override.
- Adaptive kurallarını ayarlaman gerekiyorsa — trafik profilin sıra dışıysa.
Kullanılmaz — daha doğrusu, yetmez
Uygulama katmanı kötüye kullanımı DDoS değildir. Tek bir istemcinin API’ni dövmesi, kimlik doldurma (credential stuffing), kazıma veya stok kapma DDoS değil. Bunlar için doğru araçlar Rate Limiting, Bot Management ve WAF. DDoS koruması bunları yakalamaz ve yakalaması da beklenmemelidir.
Kaynak tükenmesi problemi DDoS koruması ile çözülmez. Origin’in meşru talep altında çöküyorsa sorun kapasite; cevap Waiting Room veya Load Balancing.
L3/L4 ağ saldırıları bu ürünün kapsamı değil. IP bloğunun tamamını korumak istiyorsan Magic Transit gerekiyor ve o ayrı bir ürün, ayrı fiyatlandırma.
HTTP olmayan servisler kapsamda değil. SSH, oyun sunucusu veya özel TCP protokolü için Spectrum.
DNS-only (gri bulut) kayıtlar korunmuyor. Trafik Cloudflare’den geçmiyorsa dosd de görmüyor.
Origin IP’n sızmışsa koruma atlanabilir. Saldırgan Cloudflare’i baypas edip doğrudan origin’e vurabiliyorsa hiçbir edge koruması işe yaramıyor. Origin’i yalnızca Cloudflare IP aralıklarına açman gerekiyor — ya da Tunnel kullanıp hiç açmaman.
Somut örnekler
Mevcut override’ları okumak
curl -sS "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/ddos_l7/entrypoint" \
-H "Authorization: Bearer $CF_API_TOKEN" \
| jq '.result.rules[] | {ref: .ref, ifade: .expression,
hassasiyet: .action_parameters.overrides.sensitivity_level,
aksiyon: .action_parameters.overrides.action}'
Doğru sıralı override
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/rulesets/phases/ddos_l7/entrypoint" \
--request PUT --header "Authorization: Bearer $CF_API_TOKEN" \
--json '{
"rules": [
{
"ref": "api-yolu-yuksek-hassasiyet",
"expression": "(http.host eq \"api.ornek.com.tr\")",
"action": "execute",
"action_parameters": {
"id": "4d21379b4f9f4bb088e0729962c8b3cf",
"overrides": { "sensitivity_level": "high", "action": "block" }
}
},
{
"ref": "geri-kalan-varsayilan",
"expression": "true",
"action": "execute",
"action_parameters": {
"id": "4d21379b4f9f4bb088e0729962c8b3cf",
"overrides": { "sensitivity_level": "default" }
}
}
]
}'
l7ddos olaylarını GraphQL ile çekmek
curl -sS https://api.cloudflare.com/client/v4/graphql \
-H "Authorization: Bearer $CF_API_TOKEN" -H 'Content-Type: application/json' \
--data '{"query":"
query($zone:String!,$bas:Time!,$bit:Time!){
viewer{ zones(filter:{zoneTag:$zone}){
firewallEventsAdaptive(
filter:{ datetime_geq:$bas, datetime_leq:$bit, source:\"l7ddos\" }
limit:100, orderBy:[datetime_DESC]
){ datetime action source ruleId clientIP userAgent clientRequestHTTPHost }
}}}",
"variables":{"zone":"'"$ZONE_ID"'",
"bas":"2026-09-01T00:00:00Z","bit":"2026-09-02T00:00:00Z"}}' \
| jq '.data.viewer.zones[0].firewallEventsAdaptive'
Logpush işi (firewall_events)
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/logpush/jobs" \
--request POST -H "Authorization: Bearer $CF_API_TOKEN" \
--json '{
"name":"guvenlik-olaylari",
"dataset":"firewall_events",
"destination_conf":"r2://loglar/guvenlik?account-id=...&access-key-id=...&secret-access-key=...",
"output_options":{
"field_names":["Datetime","Action","Source","RuleID","Ref","ClientIP",
"ClientRequestHost","ClientRequestPath","ClientRequestUserAgent"],
"timestamp_format":"rfc3339"
},
"enabled":true
}'
Source alanını mutlaka dahil et — l7ddos olaylarını ayırt etmenin tek yolu bu.
Demo 1: Override sırasının farkını kanıtlamak
Bu demo, sayfadaki en değerli operasyonel bilgiyi gösterilebilir hale getiriyor: yanlış sıra hiçbir hata üretmiyor ama korumayı tamamen etkisizleştiriyor.
Adım 1 — Başlangıç durumunu kaydet
curl -sS ".../zones/$ZONE_ID/rulesets/phases/ddos_l7/entrypoint" \
-H "Authorization: Bearer $CF_API_TOKEN" | jq '.result.rules' | tee ddos-baslangic.json
Adım 2 — DOĞRU sırayla kur
Yukarıdaki PUT çağrısını olduğu gibi çalıştır: özel ifadeli kural önce, "true" sonra.
Adım 3 — Trafik üretip Security Events’e bak
# Kendi zone'una, kendi IP'nden, ölçülü bir hacim
seq 1 500 | xargs -P 20 -I{} curl -sS -o /dev/null \
-w '%{http_code}\n' "https://api.ornek.com.tr/?t={}" | sort | uniq -c
Adım 4 — Şimdi TERS sırayla kur
curl ".../zones/$ZONE_ID/rulesets/phases/ddos_l7/entrypoint" \
--request PUT -H "Authorization: Bearer $CF_API_TOKEN" \
--json '{
"rules": [
{ "ref": "yakalayici-once-YANLIS", "expression": "true", "action": "execute",
"action_parameters": { "id": "4d21379b4f9f4bb088e0729962c8b3cf",
"overrides": { "sensitivity_level": "low", "action": "log" } } },
{ "ref": "api-yolu-hic-degerlendirilmeyecek",
"expression": "(http.host eq \"api.ornek.com.tr\")", "action": "execute",
"action_parameters": { "id": "4d21379b4f9f4bb088e0729962c8b3cf",
"overrides": { "sensitivity_level": "high", "action": "block" } } }
]
}'
Adım 5 — Aynı trafiği tekrar üret ve farkı göster
Adım 3 ile Adım 5’in ekran görüntülerini yan yana koy. Aynı trafik, aynı kurallar, tek fark sıra.
Adım 6 — Doğru yapılandırmayı geri yükle
curl ".../zones/$ZONE_ID/rulesets/phases/ddos_l7/entrypoint" \
--request PUT -H "Authorization: Bearer $CF_API_TOKEN" \
--json "$(jq -c '{rules: .}' ddos-baslangic.json)"
Bu demoda ölçülenler:
| Ölçüt | Doğru sıra | Ters sıra |
|---|---|---|
| API yanıtı | 200 | 200 — hata yok |
| Panelde uyarı | yok | yok |
| Değerlendirilen kural | ikisi de | yalnızca ilki |
api.ornek.com.tr hassasiyeti | high | low (yakalayıcıdan) |
| Olaylardaki aksiyon | block | log |
Olaylarda görünen Ref | ifadeli kuralın ref’i | yakalayıcının ref’i |
Demo 2: l7ddos olaylarını uçtan uca izlemek
Adım 1 — Panelde filtrele
Adım 2 — Aynı veriyi GraphQL’den al
Yukarıdaki firewallEventsAdaptive sorgusunu çalıştır.
Panel ile GraphQL çıktısını karşılaştır — sayılar tutmalı.
Adım 3 — Alan adlarının inceliğini göster
# YANLIŞ — bu alan yok, boş döner
jq '.[] | select(.ruleset == "ddos_l7")' olaylar.json
# DOĞRU
jq '.[] | select(.Source == "l7ddos") | {Action, RuleID, Ref}' olaylar.json
Adım 4 — connectionclose aksiyonunu ara
jq -r '.[] | select(.Source == "l7ddos") | .Action' olaylar.json | sort | uniq -c
connectionclose HTTP DDoS’a özgü. Diğer güvenlik ürünlerinin olaylarında görmüyorsun.
Adım 5 — Logpush’a aktar ve alanları doğrula
Adım 6 — Saklama sınırını göster
Ücretsiz planda 24 saatten öncesine gidemiyorsun. Bu, uzun soluklu bir olay incelemesinin neden Logpush gerektirdiğini gösteriyor.
Bu demoda ölçülenler:
| Ölçüt | Panel | GraphQL | Logpush |
|---|---|---|---|
l7ddos olay sayısı | X | X (eşleşmeli) | X |
| Aksiyon dağılımı | grafik | uniq -c | jq |
RuleID görünürlüğü | kısmi | ✅ | ✅ |
Ref alanı | ✘ | ✅ | ✅ |
| Saklama | plana bağlı | plana bağlı | sınırsız (kendi depon) |
Fiyatlandırma
| Kalem | Free | Pro | Business | Contract |
|---|---|---|---|---|
| Unmetered DDoS Protection | ✅ | ✅ | ✅ | ✅ |
| Free Managed Ruleset | ✅ | ✅ | ✅ | ✅ |
| WAF | ✅ | ✅ | ✅ | ✅ |
| Uptime SLA | — | — | %100 | %100 |
| L3 Network DDoS (Magic Transit) | — | — | — | Custom Pricing |
Temel HTTP DDoS koruması ücretsiz plan dahil her planda ve sınırsız.
Eskimiş rakamları alıntılama
| Kaynak | Söylediği | Bugün |
|---|---|---|
| 2017 unmetered yazısı | “over 15 terabits per second” | cloudflare.com/ddos/ 500 Tbps |
| 2021 derin inceleme | “200+ data centers” | 330+ şehir |
| 2021 derin inceleme | “%98,6 of all L3/4”, “%81 of all L7” | güncel oran yayımlanmıyor |
| 2021 yazısı | “Firewall > DDoS”, “Challenge (CAPTCHA)” | bu arayüz adları artık yok |
Lisanslama ve hukuki çerçeve
Hizmet tescillidir ve Cloudflare Hizmet Şartları’na tabidir. Unmetered DDoS Protection politikası sözleşmesel bir taahhüt olarak plans sayfasında yayımlanıyor.
Log verisi ve KVKK. firewall_events kayıtları istemci IP adresi ve User-Agent içeriyor —
yani kişisel veri. Logpush ile kendi deponuza aktarıyorsanız saklama süresi, erişim yetkisi ve
silme prosedürü sizin sorumluluğunuzda. Cloudflare’in kendi saklama süreleri plana bağlı ve kısa
(ücretsiz planda 24 saat), bu da veri minimizasyonu açısından lehinize.
Logları Türkiye’de tutmanız gerekiyorsa Logpush hedefini Türkiye’deki bir depolama sistemine yönlendirebilirsiniz. Ama Cloudflare’in kendi analitik ve olay verisini Türkiye’de tutmasını sağlayamazsınız — Customer Metadata Boundary Türkiye’yi desteklemiyor. Ayrıntı için CDN.
Sık yapılan hatalar
Yakalayıcı ("expression": "true") override’ı başa koymak. Sonraki hiçbir kural
değerlendirilmiyor ve hata alınmıyor.
L7 DDoS’u request yolunun bir aşaması gibi anlatmak. ddos_l7 fazı yalnızca yapılandırma için;
azaltma dosd içinde, yol dışında.
Yanlış pozitif ayıklarken kuralı kalıcı olarak Log’a çevirmek. “may allow attack traffic to reach your web property.”
Logpush’ta ruleset alanını aramak. Öyle bir alan yok; Source == "l7ddos" kullan.
RuleId yazmak. Doğrusu RuleID.
connectionclose aksiyonunu beklememek. HTTP DDoS’a özgü ve ayrıştırıcın onu bilmiyorsa
sınıflandırılamayan olay olarak düşüyor.
Ücretsiz planda demo yapıp ertesi gün ekran görüntüsü almaya çalışmak. Security Events 24 saat.
Rate limiting problemi ile DDoS’u karıştırmak. Tek istemcinin API’ni dövmesi DDoS değil.
Origin IP’sini açıkta bırakmak. Baypas edilebilen bir origin, hiçbir edge korumasıyla korunamaz.
DNS-only kayıtların korunduğunu sanmak. Trafik Cloudflare’den geçmiyorsa koruma da yok.
2017 ve 2021 blog rakamlarını güncel diye alıntılamak. 15 Tbps → 500 Tbps, 200 veri merkezi → 330+ şehir.
Türkiye sıralamasını “en çok saldırıya uğrayan 3. ülke” diye aktarmak. Metrik müşteri fatura ülkesi.
Adaptive DDoS kurallarının düşük trafikli bir sitede profil kuracağını varsaymak. Minimum eşik yayımlanmıyor.
Sıkça sorulan sorular
- Ücretsiz planda DDoS koruması gerçekten sınırsız mı?
- Evet.
cloudflare.com/plans/tablosunda Unmetered DDoS Protection satırı dört planın dördünde de “Evet” diyor. Saldırı büyüklüğüne göre ek fatura çıkmıyor ve plan yükseltmeye zorlanmıyorsun. Bu, 25 Eylül 2017'deki Unmetered Mitigation duyurusundan beri böyle. - DDoS azaltma request yolunun neresinde çalışıyor?
- Yolun üzerinde değil. Yaygın bir yanlış anlatım var: “L7 DDoS, Origin Rules ile WAF custom rules arasında çalışır.” Doküman fazlar listesinde
ddos_l7'yi yıldızla işaretleyip şunu diyor: “This phase is for configuration purposes only — the corresponding rules will not be executed at this stage in the request handling process.” Gerçek azaltmadosdadlı ayrı bir sistemde, “every single server in every one of Cloudflare global network's data centers” üzerinde oluyor. - Saldırı başladıktan ne kadar sonra azaltma devreye giriyor?
- Resmî rakam: “Up to three seconds on average.” Bunu mümkün kılan şey merkezî karar beklenmemesi — sistem “detect and mitigate DDoS attacks autonomously without requiring centralized consensus” şeklinde tasarlanmış.
- Override'ları hangi sırayla yazmalıyım?
- Sıra kritik ve tersi sessizce her şeyi bozuyor. Doküman birebir: “The overrides must be set in that order. Otherwise, it will not work… Setting the overrides in the wrong order would cause the Log override at a high sensitivity to match all instances. As a result, Cloudflare will never evaluate the Block override… causing all rules to be set in Log mode.” Altın kural: ifadesiz (
"expression": "true") override her zaman en sona. - Neden ifadesiz override sona konmalı?
- Çünkü birebir: “If an override without an expression matches, Cloudflare will not evaluate the expressions that follow it.” Yani yakalayıcı (catch-all) override kendinden sonraki her şeyi öldürüyor. Bu, kural motorunun genel davranışından farklı ve şaşırtıcı.
- Logpush'ta DDoS olaylarını nasıl bulurum?
firewall_eventsdataset'indeSourcealanıl7ddosolanlar.rulesetdiye bir alan yok — ilişkilendirmeyiSource == "l7ddos"artıRuleIDile yapıyorsun. Yazımına dikkat:RuleID,RuleIddeğil. GraphQL karşılığıfirewallEventsAdaptive, panelde ise Service equals HTTP DDoS.- Hangi aksiyonları görebilirim?
block·managedchallenge·challenge·log·connectionclose. Sonuncusu HTTP DDoS'a özgü ve çoğu kişinin beklemediği bir aksiyon — bağlantıyı doğrudan kapatıyor.- <code>Log</code> aksiyonunu kullanabilir miyim?
- Tartışmalı — beş resmî sayfa birbiriyle uyuşmuyor. İkisi “Enterprise + Advanced DDoS subscription” diyor, ikisi yalnızca “Enterprise plans” diyor, ana plan tablosu “Yes, with Log action” diyor. Bu sayfada tek bir cevap yazılmamıştır; kendi planında dene ve sonucu gör.
- Kuralı Block'tan Log'a çevirmenin riski ne?
- Cloudflare bunu açıkça yazıyor: “Changing a rule from Block to Log may allow attack traffic to reach your web property.” Yanlış pozitif ayıklarken bu geçişi geçici yap ve saldırı altındayken yapma.
- Demo yapacağım, olayları ne kadar süre görebilirim?
- Saklama süreleri planına bağlı ve kısa: Security Events — Free ve Pro 24 saat, Business 3 gün, Enterprise 30 gün. Security Analytics — Free ve Pro 7 gün, Business 31 gün, Enterprise 90 gün. Ücretsiz planda demo yapıyorsan ekran görüntülerini aynı gün al.
- Türkiye DDoS saldırılarında kaçıncı sırada?
- Doğru ifade: “Q2 2026 itibarıyla, müşteri fatura ülkesine göre 3. sırada.” Yaygın yanlış alıntı “Türkiye 2026'nın ilk yarısında en çok saldırıya uğrayan 3. ülke” — bu farklı bir iddia. Metrik, saldırıya uğrayan müşterilerin fatura adresine göre sıralama. Türkiye için yayımlanmış bir yüzde yok.
- Adaptive DDoS Protection nedir?
- Trafiğinin normal profilini öğrenip ondan sapmayı yakalayan kural ailesi. Belgelenmiş kural kimlikleri: Locations
a8c6333711ff4b0a81371d1c444be2c3, User-Agents7709d496081e458899c1e3a6e4fe8e55, Origin errorsdd42da7baabe4e518eaf11c393596a9d. 19 Eylül 2022'de GA oldu. Profilleme için gereken minimum istek hızı yayımlanmıyor. - 2017'deki “15 Tbps” rakamını kullanabilir miyim?
- Hayır, çok eskimiş. 2017 unmetered yazısı “over 15 terabits per second” diyordu; bugün
cloudflare.com/ddos/500 Tbps diyor. 2021 derin incelemesindeki “200+ data centers”, “%98,6 L3/4”, “%81 L7” rakamları da eskidi. Eski yazılardaki arayüz adları (“Firewall > DDoS”, “Challenge (CAPTCHA)”) da artık yok. - Managed ruleset'in kimliği ne?
- HTTP DDoS için
4d21379b4f9f4bb088e0729962c8b3cf. L3/4 karşılığı3b64149bfa6e4220bbbc2bd6db589552. Gereken token yetkisi:HTTP DDoS Managed Ruleset Write.
İlgili servisler
- WAFSQL injection, XSS ve bilinen zafiyet istismarlarını request origin’e ulaşmadan engeller.
- Rate LimitingIP, oturum veya özel anahtara göre request sayısını sınırlar.
- Bot ManagementHer request’e bot skoru verir; kazıyıcı, kimlik doldurma ve stok kapma trafiğini ayırır.
- AnalyticsTrafik, cache hit oranı, güvenlik olayları ve Core Web Vitals ölçümleri.
Bu sayfadaki fiyat ve özellik bilgileri 1 Eylül 2026 tarihinde Cloudflare’in resmî kaynaklarından doğrulanmıştır. Cloudflare fiyatlandırmasını önceden haber vermeden değiştirebilir; bağlayıcı bilgi içinresmî sayfaya bakın.