WordPress Güvenliğini Cloudflare ile Katmanlı Kurmak

WordPress Cloudflare güvenlik
Cloudflare ücretsiz plan, doğru yapılandırıldığında kurumsal seviye güvenlik sağlar. 34 WordPress sitesini yönetirken geliştirdiğim katmanlı WAF yapısını, aldığım kararların gerekçelerini ve her adımın pratikte ne fark yarattığını bu yazıda paylaşıyorum.

Sahadan Notlar

📌 Bu yazı WordPress güvenlik ve performans serimizin bir parçasıdır.

1. Cloudflare WAF: Kural Hiyerarşisi ve Mantığı

İzin Verilenler → Doğrulananlar → Engellenenler

Güvenlik kurallarını rastgele sıralamak ciddi sorunlara yol açar. Arama motorlarını engellemek, ödeme bildirimlerini kesmek veya meşru kullanıcıları kapıda bırakmak bunların başında geliyor.

Tüm sitelerde WAF kurallarını şu mantıksal huni üzerine kurdum:

  • 1. Katman — İzin Verilenler (Skip/Allow): Kesinlikle geçmesi gereken trafik. En üst sıraya yerleştirilir.
  • 2. Katman — Doğrulananlar (Managed Challenge): Şüpheli ama engellemek istemediğimiz trafik. Captcha ile süzülür.
  • 3. Katman — Engellenenler (Block): Kesinlikle istemediğimiz trafik. En alta yerleştirilir.
💡 Kural sıralaması neden bu kadar önemli? Cloudflare kuralları yukarıdan aşağıya işler ve ilk eşleşende durur. Whitelist kuralınız en üstte değilse, aşağıdaki bir engelleme kuralı meşru trafiği kesebilir. Bu hatayı yapan ajansların WooCommerce ödeme bildirimleri kesilmiş, fark edilmesi günler almıştır.

2. Geo-Fencing: Yurt Dışı Bot Trafiğini Kapıda Kesmek

Problem

Yönettiğim sitelerin büyük çoğunluğu Türkiye’ye hizmet veriyor. Ama saldırıların kaynağına baktığımda Fransa, Hollanda, Rusya, Çin gibi ülkelerin ön sıralarda yer aldığını gördüm.

Bu ülkelerden gelen meşru ziyaretçi oranı sıfıra yakın. Ama sunucuya yükledikleri anlamsız bot trafiği çok yüksekti.

Çözüm ve iş sonucu

Türkiye dışından gelen tüm trafiğe Managed Challenge (doğrulama zorunluluğu) koşulunu getirdim. Gerçek bir insan bu doğrulamayı birkaç saniyede geçer. Bot ise geçemez.

İş sonucu: Yurt dışı kaynaklı bot trafiği neredeyse sıfıra indi. Sunucu CPU kullanımı belirgin biçimde düştü. Meşru yurt dışı ziyaretçiler doğrulama adımını geçerek içeri giriyor — erişim tamamen kesilmiyor.

Arama Motoru İstisnası — Kritik Detay

Geo-fencing kuralını koyduktan sonra fark ettim ki Googlebot ve Yandex da yurt dışından geliyor. Bu kuralı istisna olmadan uygulamak SEO’yu doğrudan etkiler.

Çözüm: Geo-fencing kuralına “Known Bots” istisnası ekledim. Cloudflare’in tanıdığı arama motoru botları doğrulama ekranıyla karşılaşmıyor, doğrudan içeri giriyor.

⚠️ Bu istisnayı eklemeyi unutmak çok yaygın bir hata. Googlebot’u yanlışlıkla engelleyen sitelerin arama sıralamaları sessizce düşer. Search Console’da crawl hataları görünene kadar sorunun fark edilmesi haftalar alabilir.

3. WooCommerce Whitelist: Ödeme Bildirimlerini Korumak

WooCommerce kullanan sitelerde güvenlik kuralları beklenmedik bir soruna yol açabiliyor: PayPal ve Stripe gibi ödeme sistemlerinin webhook bildirimleri WAF kurallarına takılıyor.

Sonuç: Ödeme gerçekleşiyor ama site bunu öğrenemiyor. Sipariş durumu güncellenmez, stok düşmez, müşteriye onay maili gitmez.

Çözüm

wc-api parametresi içeren tüm isteklere en üst sıradan Skip (geç) izni tanımladım. Bu istekler hiçbir WAF kuralına takılmadan doğrudan sunucuya ulaşıyor.

💡 Bu kuralın kural hiyerarşisinin en üstünde olması şart. Whitelist kuralı altına yerleştirilmiş bir engelleme kuralı ödeme bildirimlerini kesebilir. E-ticaret sitelerinde bu hata sessizce binlerce liralık sipariş kaybına yol açabilir.

4. Yapay Zeka Botu İstisnası

Cloudflare’in AI bot engelleme özelliği varsayılan olarak birçok yapay zeka tarayıcısını blokluyor. Bu kimi zaman istenen bir şey, kimi zaman değil.

Google NotebookLM gibi araçları içerik araştırması için aktif olarak kullanıyorum. Bu botun siteye erişememesi kendi iş akışımı engelliyor.

Cloudflare AI engelleme listesinden belirli botları istisna olarak tanımlamak mümkün. Bu şekilde istemediğin botları engellerken, aktif kullandıklarına izin veriyorsun.

💡 Bu karar her site için farklılaşabilir. İçeriğinin yapay zeka eğitim veri setlerine girmesini istemiyorsan tüm AI botlarını engellemek mantıklı. Kendi araştırma iş akışında kullandığın botlara ise seçici istisna tanıyabilirsin.

5. Wordfence: Cloudflare’in Geçirdiği Trafiği Süzmek

Neden hem Cloudflare hem Wordfence?

Cloudflare dış katmanda çalışır — sunucuya ulaşmadan trafiği filtreler. Ama her şeyi tutamaz. Meşru görünen ama kötü niyetli istekler içeri girebilir.

Wordfence bu durumda devreye giriyor: WordPress uygulama katmanında, PHP motorundan önce yüklenerek son savunma hattını oluşturuyor.

Rate limiting: 404 taramasına anlık tepki

Kötü niyetli botların en yaygın davranışlarından biri açık tarama — var olmayan URL’lere art arda istek göndererek sistemdeki açıkları tespit etmeye çalışmak.

Wordfence’te şu kuralı tanımladım: Saniyede 1’den fazla 404 hatası üreten IP adresi anında 10 günlük bloğa alınır.

İş sonucu: Açık taraması yapan botlar ilk birkaç istekte bloke ediliyor. Sunucuya yük bindirme fırsatı bulamadan eleniyorlar. 10 günlük blok süresi kısa vadeli saldırıların tekrarını da engelliyor.

Statik ve dinamik yük ayrımı

Wordfence’in her sayfa yüklemesinde devreye girmesi gereksiz kaynak tüketimine yol açar. Statik sayfalar için bu maliyet anlamsız.

Yapılandırmayı şu şekilde optimize ettim: HTML önbelleği ile statik sayfalar Wordfence’i devre dışı bırakarak servis ediliyor. Wordfence yalnızca form gönderimleri, giriş işlemleri ve dinamik POST isteklerinde devreye giriyor.

💡 Bu ayrım hem güvenliği korur hem de performansı artırır. Statik sayfa ziyaretleri için ekstra PHP yükü oluşmuyor. Gerçek güvenlik riski taşıyan dinamik işlemler ise tam koruma altında.

Sonuç: Ücretsiz Planda Kurumsal Güvenlik Mümkün

Bu yapıyı kurduğumda elde ettiğim sonuçları somut olarak şöyle özetleyebilirim:

  • Yurt dışı kaynaklı bot trafiği neredeyse sıfıra indi.
  • Sunucu CPU kullanımı saldırı dönemlerinde bile kontrol altında kaldı.
  • Arama motorları kesintisiz içeri girmeye devam etti — SEO etkilenmedi.
  • WooCommerce ödeme bildirimleri hiçbir zaman kesilmedi.
  • Sayfa yükleme süreleri milisaniye düzeyinde kaldı.

Bütün bunlar Cloudflare ücretsiz planı ile elde edildi. Ücretli bir güvenlik çözümüne gerek kalmadı.

Bir sonraki yazımda bu güvenlik katmanının sunucu tarafındaki tamamlayıcısını anlatacağım: merkezi cron mimarisi, Redis object cache, Nginx ve WP Fastest Cache kombinasyonu ve DNS çıkış IP optimizasyonu.

Birden fazla WordPress sitesinin güvenlik ve performans yönetimini profesyonel olarak devretmek istiyorsanız bize ulaşabilirsiniz.

 

📋 Kısa Özet: Cloudflare + Wordfence Yapısı

  • Kural hiyerarşisi: İzin Verilenler → Doğrulananlar → Engellenenler sırasına uy
  • Geo-fencing: Yurt dışı trafiğe Managed Challenge — Known Bots istisnasını unutma
  • WooCommerce: wc-api parametresine en üst sıradan Skip izni tanımla
  • Wordfence rate limiting: Saniyede 1+ 404 hatası üreten IP’yi anında bloke et
  • Statik/dinamik ayrımı: Wordfence’i yalnızca POST işlemlerinde devreye al

 

Mustafa Ketancı
/ WordPress Dev. & Web Operasyon Yöneticisi | Kurumsal İletişim ve Dijital Medya Direktörü

 

LinkedIn
Reddit
WhatsApp
Email

Google Analytics aracılığıyla site trafiğini analiz etmek için çerezler kullanıyoruz. Cookie Policy