Cloudflare ile Scraper Bot Koruması: Adım Adım Yapılandırma Rehberi

Cloudflare ile Scraper Bot Koruması: Adım Adım Yapılandırma Rehberi

Kısa cevap: Cloudflare'i açmak tek başına yeterli değildir. Proxy katmanı devreye girer ama koruma kuralları varsayılan olarak sıfırdır. Scraper botlar, bot imzalarını değiştirerek ve IP rotasyonu yaparak gelmeye devam eder. Bu rehberde gerçek trafikten elde edilen verilerle hangi kuralların neden işe yaradığını, hangilerinin neden işe yaramadığını ve doğru yapılandırmayı adım adım ele alıyoruz.

Türkiye'de 250 web sitesini yöneten bir sunucu altyapısında yaşanan gerçek bir olaydan bahsedelim: Sabah 08:00'de sunucu load değeri 180'e çıktı. Siteler erişilemez oldu. Cloudflare açıktı, DNS kayıtlarında turuncu bulut görünüyordu. Yine de bot trafiği geçiyordu. Sorun neydi?

Cevap, Cloudflare'in mimarisinde yatar. Ve bu rehberi okuduktan sonra bir daha aynı sorunla karşılaşmayacaksınız.

1. Cloudflare Gerçekte Ne Yapar? (Proxy Katmanının Anatomisi)

Cloudflare'i DNS kayıtlarında etkinleştirdiğinizde, sitenizin trafiği artık doğrudan sunucunuza gelmez. Tüm HTTP/HTTPS istekleri önce Cloudflare'in 300'den fazla veri merkezinden birine yönlenir, orada işlenir ve ancak sonra origin sunucunuza iletilir. Bu "ters proxy" mimarisi sayesinde:

  • Ziyaretçiler sitenizin gerçek IP adresini göremez
  • DDoS trafiği Cloudflare'in ağında absorbe edilir
  • Statik içerikler Cloudflare CDN'inden servis edilir
  • SSL/TLS şifreleme Cloudflare kenarında sonlanır

Ancak burada kritik bir nokta var: Cloudflare sadece bir ağ geçididir. Kapıyı açar ama içeri kimi aldığını siz belirlemezseniz, herkesi alır. Varsayılan yapılandırmada Cloudflare şunu yapar:

Cloudflare Ücretsiz Plan — Varsayılan Durum (Hiçbir Ek Yapılandırma Yapılmamış)
ÖzellikVarsayılan DurumPratikte Ne Anlama Gelir
Temel DDoS Koruması (L3/L4)AçıkVolumetrik SYN flood, UDP flood gibi katman 3-4 saldırıları durdurulur
HTTP DDoS Koruması (L7)Açık ama pasifÇok aşırı volumetrik HTTP flood'ları yakalar, ancak scraper trafiği yakalamaz
Bot Fight ModeKapalıBilinen bot parmak izleri kontrol edilmez
Custom WAF KurallarıKapalı (0 kural)User-Agent, ASN veya path bazlı hiçbir filtreleme yok
Rate LimitingKapalıFlood koruması yok — tek IP saniyede 1000 istek atabilir
Managed ChallengeYalnızca manuel kuraldaCAPTCHA/JS challenge otomatik uygulanmaz
SSL/TLS ModuFlexibleCloudflare ile origin arasındaki bağlantı şifresiz kalır (güvenlik açığı)

Yani Cloudflare'i "açtım" demek, volumetrik DDoS'a karşı korundunuz anlamına gelir. Scraper botlara karşı değil. Bir scraper, geçerli bir HTTP isteği gönderir; Cloudflare varsayılan olarak bunu normal trafik sayar ve origin'e iletir.

2. Scraper Botlar Neden Sadece IP Engellemeyle Durdurulamaz?

Tipik bir site sahibinin yaptığı ilk şey şudur: Cloudflare Analytics'te veya sunucu loglarında kötü IP'leri tespit edip tek tek engeller. Bu yaklaşımın neden başarısız olduğunu matematikle açıklayalım.

Modern scraper servisleri residential proxy ağları ve datacenter IP rotasyonu kullanır:

  • Residential proxy: Gerçek ev internet bağlantıları üzerinden çalışan milyonlarca IP. Bu IP'leri engellerseniz gerçek kullanıcıları da engellersiniz.
  • Datacenter IP rotasyonu: AWS, Azure, Google Cloud, Hetzner gibi bulut sağlayıcıların on binlerce IP'si arasında döngüsel geçiş. Her istek farklı bir IP'den gelir.

Gerçek bir sunucuda yapılan analiz: 200.000 kötü niyetli istek, 847 farklı IP adresinden geldi. 847 IP'yi tek tek engellediğinizde, scraper servisi 848. IP'yi kullanmaya başlar. Bu bir "sonsuz döngü"dür ve kazanmanın yolu değildir.

Çözüm, IP'ye bakmak değil, davranışa ve köken altyapısına bakmaktır. Gerçek ziyaretçiler datacenter'dan gelmez. Gerçek kullanıcılar saniyede 50 istek atmaz. Gerçek tarayıcılar boş User-Agent göndermez.

3. Adım 1 — SSL/TLS Modunu Düzeltin (Güvenlik Temeli)

Cloudflare Dashboard → SSL/TLS → Overview

Varsayılan mod "Flexible"dır. Bu modda Cloudflare ile sunucunuz arasındaki bağlantı şifresiz HTTP üzerinden gerçekleşir. Ziyaretçi HTTPS ile bağlandığını sanır ama aslında Cloudflare ile origin arasındaki trafik açık gider. Bu ciddi bir güvenlik açığıdır.

  • Full: Cloudflare origin'e HTTPS ile bağlanır ama sertifikayı doğrulamaz. Self-signed sertifika kabul edilir.
  • Full (Strict): HTTPS bağlantısı + geçerli sertifika doğrulaması. Origin'inizde Let's Encrypt (ücretsiz) sertifikası varsa bu modu kullanın. Önerilen.

Ayrıca şunları da açın:

  • Always Use HTTPS: SSL/TLS → Edge Certificates → Always Use HTTPS: On. HTTP'den gelen tüm istekleri 301 ile HTTPS'e yönlendirir. Botların http:// üzerinden Cloudflare kurallarını atlamasını önler.
  • Minimum TLS Version: TLS 1.2. Eski TLS 1.0/1.1 kullanan bot araçlarını büyük ölçüde etkiler.
  • HSTS: Opsiyonel ama önerilen. Tarayıcıları HTTPS kullanmaya zorlar.

4. Adım 2 — Bot Fight Mode'u Açın

Cloudflare Dashboard → Security → Bots → Bot Fight Mode: On

Bot Fight Mode, Cloudflare'in kendi bot veritabanına dayanır. Bilinen bot parmak izleri (TLS fingerprint, HTTP/2 özellik sırası, davranış analizi) gerçek zamanlı olarak karşılaştırılır.

Ne yapar: Cloudflare'in veritabanında kayıtlı kötü niyetli botları otomatik olarak engeller. Ücretsiz planda temel seviyede çalışır; Pro/Business planlarda "Super Bot Fight Mode" ile çok daha gelişmiş davranışsal analiz ve headless browser tespiti de eklenir.

Önemli uyarı: Bu ayar açıldığında bazı meşru araçlar da etkilenebilir:

  • Uptime monitoring servisleri (UptimeRobot, Pingdom, vb.)
  • Postman veya curl tabanlı test araçları
  • Bazı third-party entegrasyon servisleri

Bu araçların IP'lerini Cloudflare'de "IP Access Rules" ile izin listesine ekleyin: Security → WAF → Tools → IP Access Rules → Add an IP → Allow.

5. Adım 3 — WAF Custom Kuralları (4+1 Katman)

Bu bölüm bu rehberin özüdür. Cloudflare Dashboard → Security → WAF → Custom Rules → Create Rule

Ücretsiz planda 5 kural sınırı vardır. Aşağıdaki stratejide 3 büyük tehdit kategorisini tek kurala konsolide ederek 5 kural içinde kalınır ve 1 kural da WordPress'e özel tehditler için ayrılır.

Kural 1: Sahte Arama Motoru Botları

Bazı scraper araçları Googlebot, Bingbot gibi meşru arama motoru kimliğine bürünür. Cloudflare'in doğruladığı gerçek arama motorları cf.client.bot özelliğini taşır. Bu özelliği taşımayan ama arama motoru adını kullananlar sahtedir.

(lower(http.user_agent) contains "googlebot" or
 lower(http.user_agent) contains "bingbot" or
 lower(http.user_agent) contains "yandex" or
 lower(http.user_agent) contains "baiduspider" or
 lower(http.user_agent) contains "duckduckbot" or
 lower(http.user_agent) contains "applebot") and not cf.client.bot

Action: Block

Bu kural, gerçek Googlebot'u (ki cf.client.bot taşır) serbest bırakır, sahte olanları engeller. SEO etkilenmez.

Kural 2: Bilinen Scraper ve AI Eğitim Botları

Kendini açıkça tanıtan ama meşru amacı olmayan botlar. SEO analiz araçları (Ahrefs, SEMrush), AI eğitim veri toplayıcıları (GPTBot, CCBot, ClaudeBot), sosyal medya önizleme crawlerları (Meta External Agent) ve büyük veri toplayıcıları bu kategoriye girer.

(lower(http.user_agent) contains "ahrefsbot") or
(lower(http.user_agent) contains "semrushbot") or
(lower(http.user_agent) contains "mj12bot") or
(lower(http.user_agent) contains "dotbot") or
(lower(http.user_agent) contains "dataforseo") or
(lower(http.user_agent) contains "blexbot") or
(lower(http.user_agent) contains "barkrowler") or
(lower(http.user_agent) contains "serpstat") or
(lower(http.user_agent) contains "sistrix") or
(lower(http.user_agent) contains "seokicks") or
(lower(http.user_agent) contains "linkdex") or
(lower(http.user_agent) contains "rogerbot") or
(lower(http.user_agent) contains "majestic") or
(lower(http.user_agent) contains "gptbot") or
(lower(http.user_agent) contains "ccbot") or
(lower(http.user_agent) contains "claudebot") or
(lower(http.user_agent) contains "anthropic-ai") or
(lower(http.user_agent) contains "google-extended") or
(lower(http.user_agent) contains "bytespider") or
(lower(http.user_agent) contains "amazonbot") or
(lower(http.user_agent) contains "meta-externalagent") or
(lower(http.user_agent) contains "meta-externalfetcher") or
(lower(http.user_agent) contains "diffbot") or
(lower(http.user_agent) contains "cohere-ai") or
(lower(http.user_agent) contains "timpibot") or
(lower(http.user_agent) contains "petalbot") or
(lower(http.user_agent) contains "zoominfo") or
(lower(http.user_agent) contains "screaming frog")

Action: Block

Not: PerplexityBot, OAI-SearchBot, ChatGPT-User, YouBot gibi AI arama botlarını bu listeye eklemeyin. Bunlar AI arama motorlarının crawlerlarıdır ve sitenize gerçek trafik getirebilir. Sadece eğitim amaçlı veri toplayanları engelleyin.

Kural 3: Saldırı Araçları ve Boş User-Agent

Gerçek bir tarayıcı, her zaman bir User-Agent string'i gönderir. Boş UA gönderen istek, ya bir test aracıdır ya da bottur. Saldırı araçlarının imzaları da bu kurala eklenir.

(http.user_agent eq "") or
(lower(http.user_agent) contains "sqlmap") or
(lower(http.user_agent) contains "nikto") or
(lower(http.user_agent) contains "nmap") or
(lower(http.user_agent) contains "masscan") or
(lower(http.user_agent) contains "zgrab") or
(lower(http.user_agent) contains "nuclei") or
(lower(http.user_agent) contains "wpscan") or
(lower(http.user_agent) contains "dirbuster") or
(lower(http.user_agent) contains "gobuster") or
(lower(http.user_agent) contains "hydra") or
(lower(http.user_agent) contains "acunetix") or
(lower(http.user_agent) contains "nessus") or
(lower(http.user_agent) contains "openvas") or
(lower(http.user_agent) contains "feroxbuster") or
(lower(http.user_agent) contains "ffuf") or
(lower(http.user_agent) contains "w3af") or
(lower(http.user_agent) contains "arachni")

Action: Block

Dikkat: Monitoring servisleriniz boş UA gönderiyorsa bu kural onları da bloke eder. Uptime servisi IP'lerini önceden izin listesine ekleyin.

Kural 4: WordPress Kritik Endpoint'leri

WordPress çalıştıran siteler için bu endpointler sürekli saldırı altındadır:

(http.request.uri.path eq "/xmlrpc.php") or
(starts_with(http.request.uri.path, "/wp-json/wp/v2/users")) or
(http.request.uri.path contains "/.env") or
(http.request.uri.path contains "/.git") or
(http.request.uri.path contains "/config.php") or
(http.request.uri.path contains "/wp-config.php")

Action: Block (xmlrpc, .env, .git, config dosyaları için) veya Managed Challenge (wp-login için)

xmlrpc.php'yi tamamen kapatabilirsiniz — modern WordPress bunu kullanmaz. wp-login.php için Block yerine Managed Challenge kullanmak daha iyi bir denge sağlar: gerçek admin kullanıcıları JS challenge'ı geçebilir, botlar geçemez.

Kural 5 (En Güçlüsü): ASN Bazlı Datacenter Challenge

Bu kural, User-Agent'tan bağımsız çalışır. Temiz Chrome UA kullanan, kendini hiç tanıtmayan ama bir AWS veya Hetzner sunucusundan gelen trafiği yakalar. IP rotasyonundan etkilenmez çünkü IP'ye değil, o IP'nin hangi ağa ait olduğuna bakar.

ASN Nedir?

Autonomous System Number (Otonom Sistem Numarası), bir İnternet servis sağlayıcısının veya büyük ağın benzersiz tanımlayıcısıdır. AWS'nin tüm IP'leri AS16509 altındadır. Hetzner'inkiler AS24940. Azure'unkiler AS8075. Bu numaralar değişmez ve IP döndürmek bu ağ kimliğini değiştirmez.

Gerçek bir Türk ziyaretçi, AS9121 (Türk Telekom), AS34984 (Superonline), AS8386 (Vodafone TR) gibi bir ISP'den gelir. Amazon datacenter'ından gelmez. Dolayısıyla bir istek AS16509 (Amazon) üzerinden geliyorsa, bu ya bir scraper, ya bir bulut tabanlı izleme aracı, ya da bir saldırı aracıdır. Gerçek ziyaretçi değildir.

(ip.geoip.asnum in {16509 14618 8075 24940 396982 15169 14061 16276
 20473 45102 132203 51167 63949 9009 60068 49505 20940 16625 3356
 206264 394711 62240 208046 210644 202018 53667 35916 36352 25820})
and not cf.client.bot

Action: Managed Challenge (Block değil!)

Neden Managed Challenge, Block değil?

Bu listenin çok büyük ASN'leri içerdiğini fark ettiniz mi? AS15169 (Google), AS396982 (Google Cloud) burada. Ama not cf.client.bot koşulu sayesinde gerçek Googlebot muaf tutulur. Cloudflare, Googlebot'u doğruladığında cf.client.bot özelliğini true yapar.

Managed Challenge, bir JavaScript challenge'ı sunar. Gerçek bir tarayıcı (headless olmayan) bunu otomatik geçer. Bir scraper scripti genellikle geçemez. Bu sayede nadir de olsa datacenter'dan gelen meşru bir araç veya uptime servisi yanlışlıkla bloke edilmez.

ASN Listesi Seçimi: Bu listeye hangi ASN'leri ekleyeceğiniz, sitenizin kullanıcı kitlesine göre değişir. Türkiye pazarına yönelik siteler için yukarıdaki liste agresif ama etkilidir. Uluslararası B2B SaaS çalıştırıyorsanız ve müşterileriniz kurumsal ağlardan erişiyorsa bazı ASN'leri çıkarmanız gerekebilir. Bunun için Cloudflare Analytics'ten gelen trafiğin ASN dağılımına bir hafta bakın.

Önemli Hosting ASN'leri ve Sahipleri
ASNSağlayıcıRisk Seviyesi
AS16509Amazon AWSÇok Yüksek
AS14618Amazon AWS (ikincil)Çok Yüksek
AS8075Microsoft AzureÇok Yüksek
AS24940HetznerÇok Yüksek
AS14061DigitalOceanÇok Yüksek
AS16276OVHYüksek
AS20473VultrYüksek
AS51167ContaboYüksek
AS396982Google CloudOrta (cf.client.bot muaf)
AS15169GoogleOrta (cf.client.bot muaf)
AS45102Alibaba CloudÇok Yüksek
AS132203Tencent CloudYüksek

6. Adım 4 — Rate Limiting

Cloudflare Dashboard → Security → WAF → Rate Limiting Rules → Create Rule

ASN kuralı datacenter kökenli trafiği keser. Rate limiting ise bu filtreyi geçen ama agresif davranan her kaynağı yakalar. Residential proxy kullanan scraperlar bu kategoriye girer.

Önerilen kural:

  • Path: / (tüm URL'ler)
  • Karakteristik: IP başına, Cloudflare colo bazında
  • Eşik: 10 saniyede 200 istek
  • Aksiyon: Managed Challenge
  • Süre: 60 saniye

Gerçek bir kullanıcı 10 saniyede 200 sayfa görüntülemez. Bu eşik yalnızca agresif tarama araçları ve flood saldırısı gönderenler için tetiklenir.

Ücretsiz plan notu: Ücretsiz planda tek rate limit kuralı hakkınız var. Bu kuralı tüm sitenize genel olarak uygulayın. Belirli path'lere özel rate limiting için Pro plan gerekir.

7. Adım 5 — Origin IP'yi Gizleyin (En Kritik Adım)

Tüm kuralları doğru kurmanıza rağmen sunucu yükü düşmüyorsa, scraper botlar büyük ihtimalle Cloudflare'i tamamen atlayarak origin sunucu IP'nize direkt bağlanıyordur.

Bu nasıl olur? Cloudflare'e geçmeden önce sitenizin IP adresi DNS kayıtlarında görünürdü. Bu IP, arama motorlarının indekslerinde, arşiv sitelerinde, güvenlik araştırma veritabanlarında (Shodan, Censys, SecurityTrails) kayıtlıdır. Botlar bu IP'yi bulur ve Cloudflare'i bypass eder.

Kontrol yöntemi:

curl -sk -o /dev/null -w '%{http_code}' http://[SUNUCU-IP]/

Eğer bu komut 200 dönüyorsa, botlar IP'yi bilip doğrudan bağlanabiliyordur. 403 veya timeout dönmesi gerekir.

Çözüm — Güvenlik duvarı kuralı (sunucu tarafında):

Sunucunuzda (CSF, UFW veya iptables) 80 ve 443 portlarına yalnızca Cloudflare IP aralıklarından izin verin. Cloudflare'in güncel IP listesi: cloudflare.com/ips

CSF kullananlar için /etc/csf/csf.allow dosyasına Cloudflare IPv4 ve IPv6 bloklarını ekleyin, ardından csf -r ile yenileyin. Bu adım uygulandıktan sonra origin IP'ye direkt erişim fiziksel olarak imkânsız hale gelir.

Önemli uyarı: Bu adımı uygulamadan ÖNCE, sunucunuzdaki tüm sitelerin Cloudflare arkasında olduğundan emin olun. Cloudflare'e taşınmamış tek bir site bile varsa, o sitenin trafiği de kesilebilir. Karma bir altyapıda (bazı siteler CF'de, bazıları doğrudan) per-vhost tabanlı bir kural tercih edin.

8. Hangi Botlara İzin Vermeli, Hangilerini Engellemelisiniz?

Bot Karar Matrisi — Kapsamlı Sınıflandırma
BotTürÖnerilen EylemNeden
Googlebot, BingbotArama motoruİzin ver (cf.client.bot muafiyet)SEO kritik, CF doğrular
Yandexbot, BaiduspiderArama motoruİzin ver (cf.client.bot muafiyet)Arama motoru trafik kaynağı
DuckDuckBot, ApplebotArama motoruİzin ver (cf.client.bot muafiyet)Meşru arama motoru
PerplexityBotAI aramaİzin verAI arama motoru, trafik getirir
OAI-SearchBot, ChatGPT-UserAI aramaİzin verChatGPT web arama, trafik getirir
YouBotAI aramaİzin verYou.com arama motoru
GPTBotAI eğitimEngelleYük oluşturur, trafik getirmez
CCBotAI eğitim (Common Crawl)EngelleÇok agresif tarama
ClaudeBot, Anthropic-AIAI eğitimEngelleYük oluşturur, trafik getirmez
Google-ExtendedAI eğitim (Google)Engelle (isteğe bağlı)Bard/Gemini eğitim verisi
AhrefsBotSEO analizEngelleRakibinize veri sağlar, yük oluşturur
SEMrushBotSEO analizEngelleAynı sebep
MJ12Bot (Majestic)Backlink analiziEngelleYük oluşturur
meta-externalagentFacebook önizlemeEngelle veya sınırlaÇok agresif, yük oluşturur
ByteSpider (TikTok/ByteDance)AI/veriEngelleÇok agresif
SQLMap, WPScan, NiktoSaldırı aracıEngelleGüvenlik tehdit
Boş User-AgentBot/otomasyonEngelleGerçek tarayıcı her zaman UA gönderir

9. Cloudflare Analytics ile Sonuçları İzleyin

Kurallar aktif olduktan sonra Cloudflare Analytics size gerçek veriyi gösterir:

Cloudflare Dashboard → Security → Overview

  • Total Events: Kaç isteğin güvenlik kuralı tetiklediğini gösterir
  • Managed Challenges Solved/Failed: Kaç botun challenge'ı çözemediğini gösterir (çözemeyenler scraperlar)
  • Top Sources: En çok engellenen ASN'ler ve ülkeler
  • Top Rules Triggered: Hangi kuralın en çok çalıştığını gösterir — bu veriye göre kuralları optimize edin

Sunucu tarafında doğrulama: Cloudflare analytics isteği saydığında gerçek yük düşmeli. Top komutunda load average değerini izleyin. İyi bir yapılandırmadan sonra scraperların yoğun vurduğu dönemlerde bile load sabit kalmalıdır.

10. Yapılandırmayı Test Edin

Kural ekledikten hemen sonra şu testleri yapın:

Normal ziyaretçi testi:

curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 Chrome/120.0.0.0 Safari/537.36" -s -o /dev/null -w '%{http_code}' https://siteniz.com

200 dönmeli.

AhrefsBot testi:

curl -A "AhrefsBot/7.0; +http://ahrefs.com/robot/" -s -o /dev/null -w '%{http_code}' https://siteniz.com

403 dönmeli.

Boş UA testi:

curl -A "" -s -o /dev/null -w '%{http_code}' https://siteniz.com

403 dönmeli.

Datacenter IP testi (ASN kuralı):
Hetzner veya DigitalOcean'da bir test VPS'ten aşağıdaki komutu çalıştırın:

curl -A "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" https://siteniz.com

Managed Challenge tetiklenmeli (403 veya CF challenge sayfası).

Google Search Console'u izleyin: 1-2 gün sonra crawl hataları raporunu kontrol edin. Googlebot engellenmişse buraya yansır. Düzgün yapılandırmada Googlebot kurallardan muaf olduğundan sıfır crawl hatası görmelisiniz.

11. Yaygın Hatalar ve Çözümleri

Hata 1: "Cloudflare açık ama yük düşmüyor"

Neden: WAF kuralları eklenmemiş. Bot Fight Mode kapalı. Origin IP sızdırılmış.

Çözüm: Bu rehberdeki tüm adımları sırayla uygulayın. Özellikle ASN kuralı ve origin IP kilidi.

Hata 2: "Googlebot engellendi, SEO trafiği düştü"

Neden: ASN kuralına not cf.client.bot koşulu eklenmemiş. Veya Kural 1'e (sahte arama motoru) yanlışlıkla meşru botlar dahil edilmiş.

Çözüm: ASN kuralındaki not cf.client.bot ifadesinin doğru yazıldığından emin olun. Google Search Console'da Googlebot erişimini kontrol edin.

Hata 3: "Uptime monitoring uyarıları geliyor"

Neden: UptimeRobot, Pingdom gibi araçlar Cloudflare kurallarına takılıyor.

Çözüm: Monitoring servisinin IP aralıklarını IP Access Rules'da "Allow" olarak ekleyin. Çoğu monitoring servisi IP listesini dökümantasyonunda yayınlar.

Hata 4: "Kural sınırı aşıldı" (5 kural limiti)

Neden: Ücretsiz planda 5 custom WAF kuralı sınırı var ve her biri için ayrı kural oluşturulmuş.

Çözüm: Birden fazla ifadeyi or operatörüyle tek kurala birleştirin. Kural 1, 2, 3 yukarıdaki gibi konsolide edilebilir.

Hata 5: "Kural ekledim ama hiç etki yok"

Neden: Kural sırası yanlış. Cloudflare kuralları sırayla değerlendirilir; daha yukarıdaki bir "bypass" kuralı sonraki "block" kuralını devre dışı bırakabilir.

Çözüm: Kural sırasını kontrol edin. En özel kurallar (IP whitelist, özel path izinleri) en üstte, genel blok kuralları altta olmalı.

12. Gerçek Hayat Sonuçları

250 web sitesini barındıran bir Hetzner sunucusunda bu yapılandırmayı uyguladıktan sonra elde edilen sonuçlar:

  • Kurulum öncesi sunucu load: 180 (peak, site servis dışı)
  • ASN kuralı aktif olduktan 10 dakika sonra: 8
  • Tam yapılandırma + origin kilidi sonrası kararlı değer: 2.0
  • Engellenen istek oranı: toplam trafiğin yaklaşık %84'ü
  • Google Search Console'da crawl hatası: 0
  • Gerçek kullanıcı trafiği: etkilenmedi

Bu sonuçlar, tek bir IP bloğunun bile yapılmadığı bir yapılandırmadan geldi. Hiçbir IP kara listesi kullanılmadı. Yalnızca davranış ve altyapı tespiti.

Bu Yapılandırmayı Sizin İçin Kuralım

Cloudflare WAF kurulumu, ASN kural optimizasyonu, origin kilidi ve 7/24 bot trafik izleme dahil tam bot koruma mimarisini yazilim.pro ekibi sizin için kurar ve yönetir. Teklif Alın

13. Sıkça Sorulan Sorular

Bu kurallar uygulandıktan sonra Google indexleme etkilenir mi?

Hayır. Kural 5'teki not cf.client.bot koşulu, Cloudflare'in kriptografik olarak doğruladığı gerçek Googlebot, Bingbot, Yandexbot gibi meşru arama motorlarını tüm kurallardan muaf tutar. Cloudflare bu doğrulamayı IP adresi + TLS fingerprint + davranış analizi kombinasyonuyla yapar. Google Search Console'da crawl istatistiklerini bir hafta boyunca izleyin; herhangi bir düşüş gözlemlemeyeceksiniz.

Ücretsiz Cloudflare planı yeterli mi, Pro'ya geçmeli miyim?

Bu rehberdeki yapılandırmayla ücretsiz plan büyük ölçüde yeterlidir. Pro planın eklediği başlıca özellikler: Super Bot Fight Mode (headless browser tespiti dahil daha gelişmiş bot analizi), 5 yerine 25 custom WAF kuralı, daha ayrıntılı analytics ve 25'e kadar rate limit kuralı. Ayda 10.000'den fazla bot isteği engelliyorsanız veya çok sayıda path için özel kurallar gerekiyorsa Pro'ya geçmeyi değerlendirin. Aylık ~$20.

Managed Challenge ile Block arasındaki fark nedir?

Block: isteği anında reddeder, 403 döner. Managed Challenge: Cloudflare bir JavaScript challenge sunar. Modern gerçek tarayıcılar bunu 1-2 saniyede otomatik geçer (kullanıcı bir şey görmez veya kısa bir "kontrol ediliyor" ekranı görür). Headless browser olmayan scraper scriptleri genellikle geçemez. Managed Challenge'ı, bir ASN'de nadiren de olsa meşru trafik geçebilecek durumlar için kullanın. Kesinlikle bot olan UA'lar için direkt Block kullanın.

Cloudflare kural sırası nasıl çalışır?

Custom WAF kuralları sırayla değerlendirilir. İlk eşleşen kural uygulanır. Bir "Allow" kuralı, sonraki bir "Block" kuralını geçersiz kılar. Bu nedenle monitoring servisi IP'lerinizi veya güvenilir kaynaklarınızı listenin EN ÜSTÜNE Allow kuralı olarak ekleyin. Block/Challenge kuralları bunların altında olmalı.

ASN listesine hangi numaraları ekleyebilirim?

ASN numarasını bulmak için https://bgp.he.net veya https://ipinfo.io/AS[numara] adreslerini kullanabilirsiniz. Cloudflare Analytics'te "Top ASNs" bölümüne bakarak sitenize gelen kötü niyetli trafiğin hangi ASN'lerden geldiğini görün ve o numaraları listeye ekleyin. Genel kural: datacenter ve hosting ASN'leri (AWS, Azure, GCP, Hetzner, OVH, DO, Vultr, Contabo) → challenge. ISP/Telco ASN'leri (Türk Telekom, Vodafone, Superonline) → asla engellemeyin.

Bu kurulum e-ticaret sitelerinde güvenli mi?

Evet, ancak dikkat edilmesi gereken noktalar var. Ödeme gateway callback'leri (PayPal IPN, Stripe webhook) datacenter IP'lerinden gelir. Bu IP'leri veya ASN'lerini IP Access Rules'da Allow olarak ekleyin. Ayrıca ödeme sayfalarına (/checkout, /payment, /webhook) ASN kuralı uygulanırken bu path'ler için bypass oluşturun. Bunu Kural 5'e and not starts_with(http.request.uri.path, "/webhook") gibi ek koşullar ekleyerek yapabilirsiniz.

A
Admin
Yazılım.pro ekibi — kurumsal web, özel yazılım, mobil uygulama ve sunucu yönetimi projelerindeki saha deneyimiyle yazıldı.

Projenizi konuşalım

Bu yazıdaki konularla ilgili bir projeniz mi var? Kısaca anlatın; 24 saat içinde size özel, şeffaf bir değerlendirme iletelim.