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:
| Özellik | Varsayılan Durum | Pratikte Ne Anlama Gelir |
|---|---|---|
| Temel DDoS Koruması (L3/L4) | Açık | Volumetrik 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 Mode | Kapalı | Bilinen bot parmak izleri kontrol edilmez |
| Custom WAF Kuralları | Kapalı (0 kural) | User-Agent, ASN veya path bazlı hiçbir filtreleme yok |
| Rate Limiting | Kapalı | Flood koruması yok — tek IP saniyede 1000 istek atabilir |
| Managed Challenge | Yalnızca manuel kuralda | CAPTCHA/JS challenge otomatik uygulanmaz |
| SSL/TLS Modu | Flexible | Cloudflare 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.
| ASN | Sağlayıcı | Risk Seviyesi |
|---|---|---|
| AS16509 | Amazon AWS | Çok Yüksek |
| AS14618 | Amazon AWS (ikincil) | Çok Yüksek |
| AS8075 | Microsoft Azure | Çok Yüksek |
| AS24940 | Hetzner | Çok Yüksek |
| AS14061 | DigitalOcean | Çok Yüksek |
| AS16276 | OVH | Yüksek |
| AS20473 | Vultr | Yüksek |
| AS51167 | Contabo | Yüksek |
| AS396982 | Google Cloud | Orta (cf.client.bot muaf) |
| AS15169 | Orta (cf.client.bot muaf) | |
| AS45102 | Alibaba Cloud | Çok Yüksek |
| AS132203 | Tencent Cloud | Yü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 | Tür | Önerilen Eylem | Neden |
|---|---|---|---|
| Googlebot, Bingbot | Arama motoru | İzin ver (cf.client.bot muafiyet) | SEO kritik, CF doğrular |
| Yandexbot, Baiduspider | Arama motoru | İzin ver (cf.client.bot muafiyet) | Arama motoru trafik kaynağı |
| DuckDuckBot, Applebot | Arama motoru | İzin ver (cf.client.bot muafiyet) | Meşru arama motoru |
| PerplexityBot | AI arama | İzin ver | AI arama motoru, trafik getirir |
| OAI-SearchBot, ChatGPT-User | AI arama | İzin ver | ChatGPT web arama, trafik getirir |
| YouBot | AI arama | İzin ver | You.com arama motoru |
| GPTBot | AI eğitim | Engelle | Yük oluşturur, trafik getirmez |
| CCBot | AI eğitim (Common Crawl) | Engelle | Çok agresif tarama |
| ClaudeBot, Anthropic-AI | AI eğitim | Engelle | Yük oluşturur, trafik getirmez |
| Google-Extended | AI eğitim (Google) | Engelle (isteğe bağlı) | Bard/Gemini eğitim verisi |
| AhrefsBot | SEO analiz | Engelle | Rakibinize veri sağlar, yük oluşturur |
| SEMrushBot | SEO analiz | Engelle | Aynı sebep |
| MJ12Bot (Majestic) | Backlink analizi | Engelle | Yük oluşturur |
| meta-externalagent | Facebook önizleme | Engelle veya sınırla | Çok agresif, yük oluşturur |
| ByteSpider (TikTok/ByteDance) | AI/veri | Engelle | Çok agresif |
| SQLMap, WPScan, Nikto | Saldırı aracı | Engelle | Güvenlik tehdit |
| Boş User-Agent | Bot/otomasyon | Engelle | Gerç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.