Saat 03:40'ta izleme aracınız CPU'nun tavan yaptığını bildirdi. Access log'a bakınca tablo net: /wp-login.php ve /xmlrpc.php adreslerine dakikada yüzlerce POST isteği, hepsi birbirinden farklı IP'lerden. Birkaç tanesini whois ile sorguladığınızda çoğunun aynı üç dört ülkedeki bulut sağlayıcılarına ait olduğunu görüyorsunuz. Oysa siteniz Türkçe, müşterileriniz Türkiye'de, ödeme altyapınız TL çalışıyor. Akla gelen ilk çözüm son derece mantıklı: "Yurt dışını komple kapatalım, bu iş bitsin."
Sezgi doğru. Saldırı yüzeyinizin büyük kısmı hiçbir zaman gerçek müşteriye dönüşmeyecek coğrafyalardan geliyorsa, o trafiği en baştan kesmek hem CPU hem de log gürültüsü açısından ciddi rahatlama sağlar. Ancak "ülkeyi engelle" düğmesi göründüğü kadar masum değildir: yanlış katmanda uygulanırsa Googlebot'u kapıda bırakır, banka 3D Secure geri dönüşünü keser, uptime monitörünüzü kör eder ve saldırganı bir dolarlık Türkiye VPS'i kiralamaktan öteye zorlamaz.
Bu yazıda ülke bazlı engellemeyi üç farklı katmanda ele alacağız: Cloudflare tarafında bir WAF kuralı (en kolay), cPanel/WHM sunucularında CSF'nin CC_DENY mekanizması (paket seviyesi) ve nginx üzerinde GeoIP2 modülü (en esnek). Her birinin nerede kazandığını, nerede ayağınıza dolandığını ve hepsinden önemlisi hangi senaryoda "tüm siteyi" değil "yalnızca yönetim panelini" kapatmanız gerektiğini somut yapılandırmalarla göreceğiz.
Ülke Engelleme Gerçekte Neyi Çözer, Neyi Çözmez?#
Ülke bazlı filtreleme bir güvenlik duvarı değil, bir gürültü azaltma aracıdır. Bunu baştan kabul etmek, sonraki bütün kararları kolaylaştırır.
Çözdüğü şeyler somut ve ölçülebilir:
- Otomatik tarayıcıların (bot ağları, kiralık zafiyet tarayıcıları) büyük kısmı elenir; access log'unuz tekrar okunabilir hâle gelir.
- Uygulama katmanına hiç ulaşmayan istekler PHP-FPM işçilerini meşgul etmez. Paylaşımlı ya da düşük RAM'li bir sunucuda bu fark doğrudan yanıt süresine yansır.
- Yönetim paneli gibi dar bir yüzeyde, kimlik doğrulama denemelerinin sayısını birkaç mertebe düşürür.
Çözmediği şeyler ise en az bunlar kadar somut:
- Hedefli saldırıyı durdurmaz. Sizi özellikle hedefleyen biri, Türkiye'de barındırılan bir sunucudan ya da bir Türk mobil operatörünün çıkış IP'sinden aynı isteği gönderir.
- Zafiyeti kapatmaz. Güncellenmemiş bir eklenti, ülke filtresinin arkasında da güncellenmemiş kalır.
- Uygulama katmanı istismarını engellemez. SQL injection denemesi Türkiye'den de gelebilir. O iş web uygulama güvenlik duvarının işidir.
Dolayısıyla doğru zihinsel model şudur: ülke filtresi, kaba trafiği süzen bir ön elektir. Arkasında hâlâ Fail2ban, oran sınırlama ve düzenli güncelleme olmak zorundadır.
Hangi Katmanda Engellemeli? Üç Seçeneğin Karşılaştırması#
Aynı işi yapan üç yöntem var ama maliyetleri ve yan etkileri farklı. Seçim, sunucunuzun önünde bir CDN olup olmamasına ve engellemenin ne kadar dar olması gerektiğine bağlı.
| Kriter | Cloudflare WAF kuralı | CSF CC_DENY | Nginx GeoIP2 |
|---|---|---|---|
| Nerede çalışır | CDN kenarında, sunucunuza gelmeden | Sunucuda, paket seviyesinde (iptables/ipset) | Sunucuda, HTTP katmanında |
| Kurulum zorluğu | Panelden 2 dakika | csf.conf düzenleme + MaxMind anahtarı | Modül + mmdb + nginx yapılandırma |
| Kapsam | Yalnızca HTTP/HTTPS | Tüm portlar (SSH, SMTP, IMAP dâhil) | Yalnızca nginx'in dinlediği portlar |
| Yol/dizin bazlı kural | Kısmen (ifade yazılabilir) | Hayır | Evet, location seviyesinde |
| Sunucu kaynağı tüketimi | Sıfır (istek hiç gelmez) | Çok düşük (ipset ile) | Düşük ama istek yine de kabul edilir |
| "Engelle" yerine "doğrula" | Evet (Managed Challenge) | Hayır | Hayır (kendiniz yazarsanız evet) |
| IP'den doğrudan erişim | Atlatılabilir, origin kilitlenmeli | Atlatılamaz | Atlatılamaz |
Pratik kural: sitenin önünde Cloudflare varsa engellemeyi orada yapın, çünkü trafiği ağınıza hiç sokmamak her zaman en ucuzudur. Cloudflare yoksa veya SSH/SMTP gibi HTTP dışı servisleri de kapsamak istiyorsanız CSF. Yalnızca /wp-admin, /administrator, /panel gibi belirli yolları kısıtlayacaksanız nginx GeoIP2 en isabetlisi.
Cloudflare ile Ülke Bazlı Kural Yazmak#
Alan adınız Cloudflare üzerinden proxy'liyse (turuncu bulut açık) en hızlı yol budur. Panelde Security → WAF → Custom rules bölümünden yeni bir kural oluşturup ifade düzenleyicisine geçin.
Tüm siteyi Türkiye dışına kapatmak isterseniz ifade şudur:
(ip.src.country ne "TR")
Eylem olarak Block seçilirse istek 403 ile kenarda düşer. Burada bilmeniz gereken iki alan değeri var: Tor çıkış düğümleri için ülke kodu T1, coğrafi konumu belirlenemeyen adresler için XX döner. ne "TR" ifadesi ikisini de kapsar; bilerek kapsamasını istiyorsanız sorun yok, ama "bilinmeyen" grubunu ayrı ele almak isterseniz ifadeyi açıkça yazın:
(ip.src.country ne "TR" and ip.src.country ne "XX")
Eski dokümanlarda geçen ip.geoip.country alanı hâlâ çalışır ancak kullanımdan kaldırılmış durumdadır; yeni kurallarda ip.src.country tercih edin.
Tüm siteyi değil, sadece yönetim panelini kısıtlamak#
Ölçülü ve tavsiye edilen senaryo budur. Ana sayfa herkese açık kalır, sadece giriş yüzeyi daralır:
(http.request.uri.path contains "/wp-login.php" and ip.src.country ne "TR")
or (starts_with(http.request.uri.path, "/wp-admin/") and ip.src.country ne "TR")
Bu kural, yurt dışındaki bir müşterinizin siteyi gezmesine engel olmaz; yalnızca yönetim paneline erişimi Türkiye'ye sabitler. Yönetici ekibiniz seyahatte diyorsanız, kurala kendi ofis IP'nizi muaf tutan bir koşul ekleyin.
Block yerine Managed Challenge tercih edin#
Ölçüsüz Block, yanlış bir GeoIP eşleşmesinde gerçek müşteriyi kapıda bırakır ve o müşterinin size ulaşma yolu yoktur. Managed Challenge ise insanı birkaç saniyede geçirir, botu eler. Halka açık sayfalarda challenge, yönetim panelinde block mantıklı bir dengedir. Ayrıntılı davranış farkı için CAPTCHA ve bot koruması yazısına bakabilirsiniz.
Kritik detay: origin sunucusunu kilitlemeden bu kural yarım kalır#
Cloudflare kuralı yalnızca Cloudflare üzerinden gelen isteklere uygulanır. Saldırgan sunucunuzun gerçek IP'sini bulup doğrudan bağlanırsa kural devre dışı kalır. Bu yüzden origin'de yalnızca Cloudflare ağlarına 80/443 açık olmalıdır:
# Cloudflare'in güncel IPv4 aralıklarını çekip UFW'ye ekle
for ip in $(curl -s https://www.cloudflare.com/ips-v4); do
sudo ufw allow from "$ip" to any port 443 proto tcp
done
sudo ufw deny 443/tcp
Aynı mantığı iptables ile kurmak isterseniz iptables ile güvenlik duvarı yazısındaki zincir yapısını kullanabilirsiniz. Bu adım atlanırsa ülke filtresi kâğıt üzerinde vardır, pratikte yoktur.
CSF ile Ülke Engelleme: CC_DENY ve CC_ALLOW#
cPanel/WHM veya çıplak bir Linux sunucusunda ConfigServer Security & Firewall kuruluysa, ülke filtresi tek bir yapılandırma dosyasında yaşar. cPanel'in kendi IP engelleyicisi yalnızca tek IP veya aralık kabul eder; ülke kavramı yoktur — bu ayrımı cPanel IP engelleyici yazısında ayrıntılı ele alıyoruz. Ülke bazlı iş CSF'nin işidir.
/etc/csf/csf.conf içindeki ilgili satırlar:
# Erişimi tamamen kapatılacak ülkeler (ISO 3166-1 alfa-2)
CC_DENY = "CN,RU,VN,BR"
# Yalnızca bu ülkelere izin ver (beyaz liste mantığı)
CC_ALLOW_FILTER = ""
# MaxMind veri kaynağı için ücretsiz lisans anahtarı
MM_LICENSE_KEY = "buraya_lisans_anahtariniz"
# Binlerce CIDR'i tek tek iptables kuralına çevirmemek için
LF_IPSET = "1"
Değişiklikten sonra güvenlik duvarını yeniden yükleyin:
sudo csf -r
sudo csf -g 8.8.8.8 # belirli bir IP hangi kurala takılıyor, kontrol et
Üç noktaya dikkat edin.
Birincisi, CC_ALLOW ile CC_ALLOW_FILTER aynı şey değildir. CC_ALLOW listelediğiniz ülkelere izin verir ama diğerlerini kapatmaz — yani beyaz liste kurmaz. Gerçek "yalnızca Türkiye" davranışını CC_ALLOW_FILTER = "TR" verir; bu ayar listedeki ülkeler dışındaki tüm bağlantıları reddeder. İkisini karıştırmak, kendini kapattığını sanıp aslında hiçbir şey değiştirmemiş olmanın en yaygın yoludur.
İkincisi, CSF tüm portlarda çalışır. Bir ülkeyi CC_DENY'ye eklediğinizde o ülkeden gelen SMTP teslimatları, IMAP bağlantıları ve API çağrıları da düşer. Yurt dışındaki bir tedarikçinizin sunucusundan e-posta alıyorsanız, o e-postalar sessizce ulaşmamaya başlar. Bu, ülke engellemesinin en çok baş ağrıtan yan etkisidir ve genellikle günler sonra fark edilir.
Üçüncüsü, MM_LICENSE_KEY boş bırakılırsa ülke arama sessizce çalışmaz. MaxMind veritabanı artık ücretsiz de olsa hesap ve lisans anahtarı gerektiriyor. Anahtarı girmeden CC_DENY yazmak, hiçbir şey engellememek anlamına gelir; CSF bunu log'a yazar ama panelde kırmızı bir uyarı görmezsiniz. Kurulumdan sonra mutlaka csf -g ile bir test IP'si sorgulayıp kuralın gerçekten uygulandığını doğrulayın.
Son olarak LF_IPSET = "1" ayarını atlamayın. Orta büyüklükte bir ülkenin IP aralığı on binlerce CIDR bloğu demektir; bunların her birini ayrı bir iptables kuralına çevirmek, paket başına yapılan doğrusal aramayı ve dolayısıyla ağ gecikmesini artırır. ipset, aynı listeyi karma tablo olarak tutar ve arama maliyetini sabitler.
Nginx GeoIP2 Modülü ile Esnek Kural Yazmak#
En çok kontrolü nginx katmanı verir: ülke bilgisini bir değişkene alır, map ile karar tablosuna çevirir ve istediğiniz location bloğunda uygularsınız. Modern yol GeoIP2 modülü ve .mmdb biçimidir; eski ngx_http_geoip_module ve .dat dosyaları artık desteklenmiyor.
Kurulum ve veritabanı#
Ubuntu/Debian üzerinde modül ve güncelleyici depoda hazır gelir:
sudo apt update
sudo apt install nginx libnginx-mod-http-geoip2 geoipupdate
MaxMind hesabınızdan aldığınız kimlik bilgilerini /etc/GeoIP.conf içine yazın:
AccountID 123456
LicenseKey xxxxxxxxxxxxxxxx
EditionIDs GeoLite2-Country
DatabaseDirectory /var/lib/GeoIP
Ardından veritabanını indirin ve güncellemeyi zamanlanmış göreve bağlayın:
sudo geoipupdate -v
ls -lh /var/lib/GeoIP/GeoLite2-Country.mmdb
# Haftalık güncelleme (systemd timer tercih ediyorsanız o da olur)
echo '0 4 * * 2 root /usr/bin/geoipupdate' | sudo tee /etc/cron.d/geoipupdate
Veritabanını güncel tutmak sanıldığından önemlidir: IP blokları operatörler arasında el değiştirir, yeni tahsisler yapılır. Bir yıl güncellenmemiş bir mmdb, gerçek Türk abonelerini "yurt dışı" olarak işaretlemeye başlar.
Yapılandırma#
http bloğunda ülke kodunu bir değişkene alın ve karar tablosunu kurun:
# /etc/nginx/nginx.conf -> http { ... }
geoip2 /var/lib/GeoIP/GeoLite2-Country.mmdb {
auto_reload 12h;
$ulke_kodu source=$remote_addr country iso_code;
}
map $ulke_kodu $panel_izinli {
default 0;
TR 1;
"" 0; # ülkesi belirlenemeyen adresler
}
log_format geo '$remote_addr [$ulke_kodu] $time_iso8601 "$request" '
'$status $body_bytes_sent "$http_user_agent"';
auto_reload sayesinde geoipupdate yeni dosyayı yazdığında nginx'i yeniden başlatmanız gerekmez.
Sunucu bloğunda kısıtlamayı yalnızca kritik yola uygulayın:
server {
listen 443 ssl;
server_name ornek.com;
access_log /var/log/nginx/ornek-access.log geo;
location ^~ /wp-admin/ {
if ($panel_izinli = 0) {
return 403;
}
try_files $uri $uri/ /index.php?$args;
}
location = /wp-login.php {
if ($panel_izinli = 0) {
return 403;
}
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
}
Nginx dünyasında "if is evil" uyarısını duymuş olabilirsiniz; kural, if bloğu içinde yalnızca return ve rewrite kullanmaktır. Yukarıdaki kalıp bu sınırın içinde kalır ve güvenlidir.
CDN veya reverse proxy arkasındaysanız#
Nginx'in önünde Cloudflare ya da başka bir proxy varsa $remote_addr proxy'nin IP'sidir; GeoIP2 o zaman herkesi aynı ülkede görür. Gerçek istemci IP'sini geri kazanmak için real_ip modülünü yapılandırın:
set_real_ip_from 173.245.48.0/20;
set_real_ip_from 103.21.244.0/22;
# ... Cloudflare'in yayımladığı tüm aralıklar
real_ip_header CF-Connecting-IP;
real_ip_recursive on;
Bu tanım yapıldığında $remote_addr zaten gerçek istemciye çözülür ve GeoIP2 doğru ülkeyi verir. Aynı konu ters vekil kurulumlarında da geçerlidir; ayrıntı için nginx reverse proxy yapılandırma yazısına bakın.
Arama Motoru Botlarını Yanlışlıkla Engellemek#
Ülke engellemesinin en pahalı hatası budur ve genellikle haftalar sonra, organik trafik düşerken fark edilir. Googlebot ağırlıklı olarak ABD merkezli IP aralıklarından tarar. "Türkiye dışını kapat" kuralı halka açık sayfalara uygulandığında, Google sitenizi taramaya geldiğinde 403 alır. Tekrarlanan 403'ler taranan sayfa sayısını düşürür, ardından indeks kaybı gelir. Aynı şey Bing, Yandex ve sosyal medya önizleme botları için de geçerlidir.
Korunma yolları, tercih sırasına göre:
- Halka açık sayfaları hiç engellemeyin. Ülke kısıtını yalnızca
/wp-admin,/administrator,/xmlrpc.phpgibi yönetim yüzeylerine uygulayın. Botların bu adreslerde işi yoktur. - Cloudflare kullanıyorsanız botu ifadeyle muaf tutun.
Verified Botkoşulu bu iş için vardır:(ip.src.country ne "TR" and not cf.client.bot). - Nginx tarafında ters DNS ile doğrulayın. Kullanıcı ajanına bakmak yetmez, taklit edilebilir. Doğrulama ters DNS ile yapılır:
host 66.249.66.1
# 1.66.249.66.in-addr.arpa domain name pointer crawl-66-249-66-1.googlebot.com.
host crawl-66-249-66-1.googlebot.com
# tekrar aynı IP'ye çözülmeli — çözülmüyorsa sahte
Google ve Bing tarayıcı IP aralıklarını JSON olarak yayımlar; kritik bir kurulumda bu listeyi indirip beyaz listeye çevirmek en sağlam yoldur.
Botların dışında sıkça unutulan diğer meşru yurt dışı kaynaklar: ödeme sağlayıcısının geri dönüş (callback) sunucuları, kargo ve e-fatura entegrasyonlarının webhook adresleri, yurt dışında barındırılan uptime izleme servisleri, SMS ağ geçitleri ve sertifika doğrulama istekleri. Ülke filtresini açtığınız gün bunları listeleyip muaf tutmazsanız, arıza birkaç gün sonra "ödemeler düşmüyor" olarak geri döner.
VPN, Proxy ve Mobil Operatör Gerçeği#
Ülke engellemesinin sınırlarını dürüstçe koymak gerekir. Bir saldırganın filtrenizi aşması için gereken şey, aylık birkaç dolarlık bir Türkiye VPS'i ya da konut IP'si satan bir proxy servisidir. Yani ülke filtresi, hedefli bir saldırganın karşısına birkaç dakikalık bir engel koyar; otomatik ve ayrım gözetmeyen tarayıcı ordusunun ise büyük kısmını eler. Beklentiyi buna göre ayarlayın.
Ters yönde de bir hata payı vardır. GeoIP veritabanları IP'yi tahsis kaydına göre eşler ve bu kayıt her zaman fiziksel konumu yansıtmaz:
- Kurumsal VPN kullanan bir çalışanınız yurt dışı çıkışlı görünebilir.
- Bazı mobil operatörler ve uydu tabanlı erişim sağlayıcıları, abonelerini farklı ülkelerde kayıtlı havuzlardan çıkarır.
- Yeni tahsis edilmiş bloklar veritabanına yansıyana kadar "bilinmeyen" (
XX) döner.
Bu yüzden yönetim paneline ülke kısıtı koyarken her zaman ikinci bir yol bırakın: sabit ofis IP'niz için muafiyet, SSH üzerinden erişilebilen bir yönetim yolu ya da kuralı geçici kapatabileceğiniz bir düğme. Kendinizi kilitlemek, engellemek istediğiniz botlardan daha sık başınıza gelir.
Engellemenin İşe Yarayıp Yaramadığını Ölçmek#
Kuralı yazdınız; şimdi etkisini rakamla görün. Yukarıdaki geo log formatını kullanıyorsanız ülke dağılımı tek satırda çıkar:
# Son 100 bin isteğin ülke dağılımı
tail -n 100000 /var/log/nginx/ornek-access.log \
| awk '{print $2}' | tr -d '[]' \
| sort | uniq -c | sort -rn | head -15
# Yalnızca 403 dönen istekler hangi ülkelerden geliyor?
awk '$NF ~ /403/ || $0 ~ / 403 /{print $2}' /var/log/nginx/ornek-access.log \
| tr -d '[]' | sort | uniq -c | sort -rn | head
CSF tarafında engellenen paketleri görmek için:
sudo grep -c "Firewall: \*.*BLOCK" /var/log/lfd.log
sudo csf -g 203.0.113.45
Bakmanız gereken üç rakam var: toplam istek sayısındaki düşüş, PHP-FPM işçi kullanımındaki düşüş ve meşru kullanıcılardan gelen destek taleplerindeki artış. Üçüncüsü sıfır kalmıyorsa kural fazla geniştir; daraltın. Trafiği bir de oran sınırlama ile birleştirmek istiyorsanız nginx rate limit ve güvenlik başlıkları yazısındaki limit_req kalıpları bu filtreyle çok iyi çalışır.
Kuruluma Başlamadan Önce Kontrol Listesi#
- Son 30 günlük access log'unuzda ülke dağılımını çıkarın. Gerçek dönüşüm getiren yurt dışı trafiğiniz varsa tüm siteyi kapatmayın.
- Engellemenin kapsamını belirleyin: tüm site mi, yalnızca yönetim yüzeyi mi? Şüphedeyseniz ikincisi.
- Muafiyet listesini kurulumdan önce hazırlayın: ofis IP'si, ödeme callback'leri, izleme servisleri, arama motoru botları.
- Cloudflare kullanıyorsanız origin'i Cloudflare IP'lerine kilitleyin; aksi hâlde kural atlatılabilir.
- GeoIP veritabanını otomatik güncellemeye bağlayın.
- Kuralı önce
Managed Challengeveyalog-onlybenzeri yumuşak bir eylemle bir hafta izleyin, sonraBlock'a geçirin. - Kendinizi kilitlediğiniz senaryoda geri dönüş yolunu (konsol erişimi, kuralı kapatma prosedürü) yazılı hâlde bulundurun.
Sıkça Sorulan Sorular#
Ülke bazlı engelleme SEO'ya zarar verir mi?#
Halka açık sayfaları kapatırsanız evet, ciddi zarar verir. Googlebot ağırlıklı olarak yurt dışı IP'lerden tarar ve 403 aldığı sayfaları zamanla indeksten düşürür. Kısıtı yalnızca yönetim paneli, giriş sayfası ve API uçları gibi arama motorlarının işi olmayan yollara uygularsanız SEO etkisi sıfırdır. Cloudflare kullanıyorsanız doğrulanmış botları kural dışında bırakan bir koşul eklemek en güvenli yöntemdir.
Sadece Türkiye'ye izin vermek yerine belirli ülkeleri engellemek daha mı iyi?#
Duruma bağlı. Beyaz liste (yalnızca TR) daha güvenlidir ama kırılgandır: VPN'li çalışanınız, yurt dışındaki ödeme sağlayıcınız ve izleme servisiniz aniden dışarıda kalır. Kara liste (belirli ülkeleri kapat) daha az yan etki üretir ama saldırgan başka bir ülkeye geçince etkisiz kalır. Genel öneri, halka açık yüzeyde kara liste, yönetim yüzeyinde beyaz liste kullanmaktır.
GeoIP veritabanı ne sıklıkla güncellenmeli?#
Haftada bir güncelleme çoğu kurulum için yeterlidir ve geoipupdate aracını bir cron görevine bağlamak bu işi otomatikleştirir. Güncellemeyi ihmal ederseniz yeni tahsis edilmiş IP blokları veritabanında görünmez ve gerçek Türk kullanıcılar "bilinmeyen ülke" olarak işaretlenip engellenebilir. Nginx tarafında auto_reload yönergesi, dosya değiştiğinde yeniden başlatmaya gerek bırakmaz.
VPN kullanan bir saldırgan bu filtreyi kolayca aşmaz mı?#
Aşar. Ülke filtresi hedefli bir saldırganı durdurmaz; amacı ayrım gözetmeden tarayan otomatik botların büyük kısmını elemektir. Gerçek fayda, log gürültüsünün ve boşa harcanan sunucu kaynağının azalmasıdır. Bu yüzden ülke engellemesi tek başına bir güvenlik stratejisi değil, güncel yazılım, güçlü kimlik doğrulama ve oran sınırlama ile birlikte çalışan bir ön eleme katmanıdır.
CSF'de ülke engellediğim hâlde istekler geliyor, sebebi ne olabilir?#
En yaygın üç sebep var. Birincisi MM_LICENSE_KEY alanının boş olması: MaxMind veritabanı lisans anahtarı olmadan indirilemez ve ülke araması sessizce devre dışı kalır. İkincisi CC_ALLOW ile CC_ALLOW_FILTER karışıklığı; gerçek beyaz liste davranışını yalnızca ikincisi verir. Üçüncüsü, sunucunun önünde bir CDN varsa CSF'nin gördüğü IP'nin CDN'e ait olmasıdır; bu durumda engelleme CDN tarafında yapılmalıdır.
Ülke engellemesini Cloudflare'de mi sunucuda mı yapmalıyım?#
Sitenin önünde Cloudflare varsa engellemeyi orada yapmak her zaman daha verimlidir, çünkü istek sunucunuza hiç ulaşmaz ve bant genişliği harcamaz. Ancak Cloudflare kuralı yalnızca proxy üzerinden gelen trafiği kapsar; sunucunuzun gerçek IP'si biliniyorsa doğrudan bağlantı kuralı atlar. Bu yüzden CDN kuralını, origin'de yalnızca CDN ağlarına izin veren bir güvenlik duvarı kuralıyla birlikte kurmak gerekir.