Blog

Altyapı 9 dk okuma

İşletme web siteleri için Cloudflare kurulumu: adım adım hız ve güvenlik

Cloudflare arkasına bir işletme web sitesi koymak bir öğleden sonranızı alır ve tüm sorun kategorilerini ortadan kaldırır: uzaktaki ziyaretçiler için yavaş sayfalar, trafik selleri, oturum açma bilgilerinizi engelleyen botlar. Ayrıca dikkatsizce yapılırsa işleri bozmanın yeni yollarını da sunar. Bu kılavuz kurulum sırasını, önemli ayarları ve en sık gördüğümüz hataları kapsar.

Kapak görseli: İşletme web siteleri için Cloudflare kurulumu: adım adım hız ve güvenlik

Kısaca

  • Cloudflare sizin için üç iş yapar: DNS, global önbellek (CDN) ve sunucunuzun önünde bir güvenlik katmanı (DDoS koruması, güvenlik duvarı kuralları, bot filtreleme).
  • SSL modunu Tam (katı) kullanın, asla Esnek değil. Ardından sunucunuzu yalnızca Cloudflare gelen web trafiğini kabul edecek şekilde kilitleyin, aksi takdirde saldırganlar bunu kolayca atlayabilir.
  • Statik dosyaları agresif bir şekilde önbelleğe alın, hiçbir zaman özel veya yönetici sayfalarını önbelleğe alın ve dağıtım sırasında önbelleği otomatik olarak temizleyin.
  • Hedeflenen birkaç kural ekleyin: giriş ve çıkış ücreti sınırı ve ödeme web kancalarını sorgulamalardan muaf tutun.
  • Posta kayıtları yalnızca DNS olarak kalmalıdır ve günlüklerinizin gerçek ziyaretçi IP'sinin geri yüklenmesi gerekir. Bu iki ayrıntı çoğu " Cloudflare sonra bozuldu" biletlerine neden oluyor.

Cloudflare ziyaretçileriniz ve sunucunuz arasında bulunur. Ziyaretçiler, önbelleğe alınmış dosyaları doğrudan sunan, düşman trafiğini filtreleyen ve geri kalanını sunucunuza ileten Cloudflare yakındaki veri merkezine bağlanır. Bir işletme için bu, barındırma konumunuzdan uzaktaki müşteriler için daha hızlı sayfalar, basit hizmet reddi taşkınlarına karşı koruma ve uygulama kodunu değiştirmeden güvenlik kurallarını uygulayabileceğiniz bir yer anlamına gelir. Çoğu plan ücretsiz olarak başlar ve ücretli planlar özellikler ekler; bu nedenle karar vermeden önce mevcut plan karşılaştırmasını kontrol edin.

Yamalı yazılım ve güvenli kodun yerine geçmez. PHP güvenlik kontrol listemiz hala geçerlidir. Cloudflare odaların içeride kilitlenmesinin yerini alacak şekilde değil, güçlü bir ön kapı olarak düşünün.

Başlamadan önce

  • DNS'nizin envanterini çıkarın. Posta (MX, SPF, DKIM, DMARC) ve doğrulama kayıtları da dahil olmak üzere mevcut DNS sağlayıcınızdaki her kaydı dışa aktarın veya ekran görüntüsünü alın. Kaçırılan bir kayıt, taşıma sırasında e-postayı kırmanın klasik yoludur.
  • Etki alanı kayıt şirketi hesabının kime ait olduğunu öğrenin ve bunun çok faktörlü kimlik doğrulamasına sahip bir şirket hesabı olduğundan emin olun. Orada nameserverları değiştireceksiniz.
  • Yapabiliyorsanız anahtar kayıtlarınızın TTL'sini bir gün önceden düşürün, böylece değişiklikler daha hızlı yayılır.
  • Sessiz bir zaman seçin ve ekibe söyleyin. Bir geri dönüş planlayın: eski ad sunucularının yazılı olması.

1. Adım: siteyi ekleyin ve DNS'yi inceleyin

Alanınızı Cloudflare kontrol paneline ekleyin. Mevcut kayıtları tarar. Bunları envanterinizle karşılaştırın ve boşlukları düzeltin. Her kayıt için iki mod arasında seçim yapın:

  • Proxy (turuncu bulut): trafik Cloudflare üzerinden geçer. Web siteniz ve web uygulaması ana bilgisayar adlarınız için kullanın.
  • Yalnızca DNS (gri bulut): Cloudflare yalnızca DNS sorgusunu yanıtlar. Posta sunucuları, SSH veya FTP ana bilgisayar adları ve HTTP veya HTTPS trafiği olmayan her şey için kullanın.

Daha sonra kayıt operatörünüzdeki ad sunucularını güncelleyin. Site etkin olarak göründüğünde sitenizi kontrol edin ve bir test e-postası gönderin.

2. Adım: Şifrelemeyi doğru şekilde ayarlayın

Bu, çoğu siteyi bozan ayardır. Cloudflare birkaç SSL/TLS modu vardır:

  • Esnek: Ziyaretçiyi Cloudflare şifreler ancak trafiği sunucunuza şifrelenmemiş olarak gönderir. İşe yarıyor gibi görünüyor, ancak ikinci bacak açık ve sıklıkla yeniden yönlendirme döngülerine neden oluyor. Bundan kaçının.
  • Tam: her iki ayağı da şifreler ancak sunucunuzun sertifikasını doğrulamaz.
  • Tam (katı): her iki bacağı da şifreler ve sunucunuzdaki sertifikayı doğrular. Kullanılacak olan budur.

Öncelikle sunucunuza geçerli bir sertifika yükleyin. Cloudflare Origin CA sertifikası veya ücretsiz Let's Encrypt sertifikasının her ikisi de çalışır. Ardından Tam (katı) moduna geçin, Her Zaman HTTPS Kullan'ı açın, minimum TLS sürümünü 1.2 olarak ayarlayın ve HSTS'yi yalnızca her şey HTTPS üzerinden çalıştıktan sonra etkinleştirin; çünkü HSTS, tarayıcılara düz HTTP'yi uzun süre reddetmelerini söyler.

3. Adım: Cloudflare atlamayı imkansız hale getirin

Saldırganlar sunucunuzun gerçek IP adresini biliyorlarsa trafiği doğrudan sunucunuza gönderebilir ve yapılandırdığınız tüm korumaları atlayabilirler. Bunu iki şekilde düzeltin:

  • Sunucunuza yalnızca Cloudflare yayınlanmış IP aralıklarından gelen web trafiğine izin verin.
  • Gerçek ziyaretçi IP'sini web sunucunuza geri yükleyin, çünkü aksi takdirde günlüklerinizdeki, hız limitlerinizdeki ve analizlerinizdeki her istek Cloudflare geliyormuş gibi görünür.
#!/usr/bin/env bash
# /opt/cf/update_cloudflare_ips.sh - run weekly from cron
set -euo pipefail
IPS="$(curl -fsS https://www.cloudflare.com/ips-v4) $(curl -fsS https://www.cloudflare.com/ips-v6)"

# 1) real visitor IP for Nginx
OUT=/etc/nginx/conf.d/cloudflare_real_ip.conf
{
  for r in $IPS; do echo "set_real_ip_from $r;"; done
  echo "real_ip_header CF-Connecting-IP;"
} > "$OUT.tmp" && mv "$OUT.tmp" "$OUT"
nginx -t && nginx -s reload

# 2) firewall: allow HTTPS only from Cloudflare (remove any generic "allow 443" rule first)
for r in $IPS; do ufw allow proto tcp from "$r" to any port 443 comment 'cloudflare'; done

Docker kullanıcıları için önemli bir ayrıntı: Docker tarafından yayınlanan bağlantı noktaları ufw kurallarını atlıyor. Konteynerleri ters proxy arkasında localhost'a bağlayın veya Docker DOCKER-USER güvenlik duvarı zincirinde erişimi kısıtlayın. Daha güçlü izolasyon için Cloudflare Tüneli, sunucunuzun yalnızca giden bağlantı kurmasına olanak tanır, dolayısıyla hiçbir açık gelen web bağlantı noktasına ihtiyaç duymaz. Ödeme web kancaları ve diğer sunucular arası entegrasyonlar için, bu isteklerin Cloudflare üzerinden gitmemesi durumunda IP kurallarının bu isteklerin iletilmesine izin verdiğinden emin olun.

4. Adım: önbelleğe alma kuralları

Cloudflare varsayılan olarak görüntüler, CSS ve JavaScript gibi statik dosyaları önbelleğe alır, ancak HTML'yi önbelleğe almaz. Tipik bir PHP sitesi için mantıklı bir politika:

  • Statik varlıklar: uzun süre (bir ay veya daha fazla) önbelleğe alınır. Yeni bir dağıtımın hemen alınması için sürümlendirilmiş dosya adları veya app.css?v=123 gibi bir sorgu dizesi kullanın.
  • Genel HTML sayfaları (pazarlama sayfaları, blog): bir Önbellek Kuralı ile dakikalarca hatta saatlerce önbelleğe alınabilir. Dikkatlice test edin.
  • Hiçbir zaman önbelleğe almayın: yönetici, hesap, alışveriş sepeti, ödeme, API uç noktaları ve oturum açma çerezine bağlı olan herhangi bir sayfa. Bu yollar ve oturum çerezinizi taşıyan istekler için bir atlama kuralı oluşturun.

Müşterilerin eski dosyaları asla görmemesi için her dağıtımdan sonra otomatik olarak temizleyin. Bu bölge için yalnızca "Önbellek Temizleme" iznine sahip bir API belirteci oluşturun ve bunu dağıtım betiğinizden çağırın:

# purge selected files after a deployment
curl -sS -X POST "https://api.cloudflare.com/client/v4/zones/$CF_ZONE_ID/purge_cache" \
  -H "Authorization: Bearer $CF_API_TOKEN" \
  -H "Content-Type: application/json" \
  --data '{"files":["https://example.com/css/app.css","https://example.com/js/app.js"]}'

Daha hızlı sayfalar aynı zamanda arama ve dönüşümlere de yardımcı olur. CDN yerleştirildikten sonra sunucu tarafında nelerin düzeltileceğini öğrenmek için PHP siteleri için Core Web Vitals kılavuzumuza bakın.

Adım 5: güvenlik duvarı, botlar ve hız sınırlaması

  • Planınızda bulunan yönetilen WAF kurallarını açın. Yaygın saldırı modellerini kodunuza ulaşmadan engellerler.
  • Planınıza uygun bot korumasını etkinleştirin ve herhangi bir şeyi sıkılaştırmadan önce analizleri izleyin.
  • Hız sınırına duyarlı uç noktalar: oturum açma, parola sıfırlama, kaydolma ve ödeme. Kaba kuvvet ve kart testi saldırıları tam olarak bunları hedef alır.
  • Güvenilir makine trafiğini muaf tutun: Bir webhook'a döndürülen sorgulama sayfası başarısız gibi görüneceğinden ödeme sağlayıcı web kancaları, izleme hizmetleri ve kendi entegrasyonlarınız tarayıcı sorgulamalarından etkilenmemelidir.
# Custom rule 1: block probes for secrets and repositories (action: Block)
(http.request.uri.path contains "/.env" or http.request.uri.path contains "/.git" or http.request.uri.path contains "wp-config")

# Custom rule 2: let payment webhooks through (action: Skip, security features)
(http.request.uri.path in {"/webhooks/stripe" "/webhooks/paypal"})

# Rate limiting rule: at most 10 login attempts per minute per IP
(http.request.uri.path eq "/login" and http.request.method eq "POST")  =>  10 requests / 1 minute / IP

Kural sözdizimi ve kullanılabilir alanlar plana göre değişiklik gösterir; bu nedenle bunları şablon olarak değerlendirin ve önce "günlük" modunda test edin. Uygulama düzeyinde korumaları da koruyun: Stripe web kancaları kılavuzumuzda olduğu gibi web kancası imza kontrolleri hiçbir zaman yalnızca ağ kurallarına bağlı değildir.

Adım 6: kurulumu doğrulayın

# is traffic going through Cloudflare?
curl -sI https://example.com | grep -iE "^(server|cf-cache-status|cf-ray)"

# does the origin refuse direct access? (replace with your server IP; expect a timeout or refusal)
curl -sI --max-time 8 https://203.0.113.10 -H "Host: example.com" -k

# are the nameservers and mail records right?
dig NS example.com +short
dig MX example.com +short
dig TXT example.com +short

Statik bir dosyayı iki kez kontrol edin: ikinci yanıtta cf-cache-status: HIT gösterilmelidir. Giriş, ödeme ve yönetici akışlarını gerçek bir tarayıcıyla kontrol edin ve bir test e-postası gönderip alın.

Yaygın hatalar

  • Esnek SSL ve bunu takip eden yönlendirme döngüleri.
  • Posta ana bilgisayar adının proxylenmesi (yalnızca DNS olmalıdır) veya taşıma sırasında bir posta kaydının unutulması.
  • Özel sayfaların önbelleğe alınması, böylece bir müşterinin diğerinin hesap sayfasını görmesi. Oturum açmış trafik için her zaman önbelleği atlayın.
  • Kaynağın açıkta bırakılması: Gerçek IP, eski DNS kayıtlarında, e-posta başlıklarında veya sertifika günlüklerinde görünür. Güvenlik duvarını kısıtlayın ve sızdırılmışsa IP'yi değiştirmeyi düşünün.
  • Hız limitlerini, günlükleri ve sahtekarlık kontrollerini aşan gerçek IP'yi geri yüklememek.
  • Ödemelerde ve entegrasyonlarda sessiz hatalara neden olan zorlu web kancaları ve API'ler.
  • İstek boyutu sınırları: Proxy'li isteklerin, plana bağlı olarak maksimum gövde boyutu vardır. Uygulamanız büyük yüklemeleri kabul ediyorsa mevcut sınırı kontrol edin.
  • İzlemeyi unutmak. Yedekleme ve izleme kılavuzumuzda açıklandığı gibi, sertifika ve etki alanı süresinin sona ermesiyle ilgili uyarılar ekleyin ve çalışma süresi kontrollerini sürdürün.

Tek sayfalık bir kontrol listesi

  1. DNS envanteri dışa aktarıldı, kayıt şirketi hesabı güvence altına alındı.
  2. Site eklendi, kayıtlar incelendi, yalnızca web ana bilgisayar adları için proxy uygulandı.
  3. Kaynak sertifikası yüklü, SSL modu Tam (katı), Her Zaman HTTPS Kullan açık.
  4. Güvenlik duvarı Cloudflare aralıklarıyla sınırlı, gerçek ziyaretçi IP'si geri yüklendi.
  5. Statik varlıklar için önbellek kuralları, özel yollar için atlama, dağıtım betiğinde temizleme.
  6. Yönetilen WAF açık, oturum açma ve ödeme için ücret sınırları, web kancaları muaf.
  7. Doğrulama komutları çalıştırılır, uyarılar yapılandırılır, geri alma belgelenir.

Nasıl yardımcı olabiliriz?

PHP uygulamaları için Cloudflare, barındırma ve dağıtım hatlarını yapılandırıyor ve bunları ödeme, CRM ve mesajlaşma sistemlerine bağlıyoruz. Entegrasyon hizmetimiz hakkında bilgi edinin veya kısa bir görüşme rezervasyonu yapın; DNS, SSL ve önbellekleme ayarlarınızı bu kontrol listesine göre inceleyeceğiz.

Sık sorulan sorular

Küçük işletme web sitesi için Cloudflare buna değer mi?

Çoğu halka açık web sitesi için evet. Statik dosyaların daha hızlı teslimi, DDoS koruması, ücretsiz yönetilen DNS ve kolay HTTPS, ücretsiz planda bile değerlidir. Ücretli planlar daha güçlü güvenlik duvarı, bot ve performans özellikleri ekler. İhtiyacınız olan şey için mevcut plan karşılaştırmasını kontrol edin.

Hangi SSL modunu kullanmalıyım?

Tam (katı). Ziyaretçi ile Cloudflare arasındaki ve Cloudflare ile sunucunuz arasındaki trafiği şifreler ve sunucunuzun sertifikasını doğrular. Sunucunuzla olan bağlantıyı şifrelenmemiş halde bırakan ve sıklıkla yeniden yönlendirme döngülerine neden olan Esnek'ten kaçının.

Saldırganlar Cloudflare atlayabilir mi?

Evet, eğer sunucunuzun gerçek IP'sini bulurlarsa ve sunucunuz her yerden trafik kabul ediyorsa. Güvenlik duvarınızı Cloudflare yayınlanmış IP aralıklarıyla sınırlandırın veya Cloudflare Tüneli'ni kullanın ve sızdırılmışsa IP'yi değiştirin.

DNS'yi Cloudflare taşıdıktan sonra e-postam neden çalışmayı bıraktı?

Genellikle taşıma sırasında bir posta kaydı gözden kaçırılır veya posta ana bilgisayar adı proxy olarak ayarlanmıştır. MX, SPF, DKIM ve DMARC gibi posta kayıtları mevcut olmalı ve posta sunucusu ana bilgisayar adı yalnızca DNS olmalıdır.

Cloudflare HTML sayfalarını önbelleğe almalı mıyım?

Pazarlama ve blog içeriği gibi genel sayfalar için Önbellek Kurallarını ve makul bir son kullanma tarihini kullanarak bunu yapabilirsiniz. Hiçbir zaman yöneticiyi, hesabı, alışveriş sepetini, ödeme sayfasını veya kişiselleştirilmiş herhangi bir sayfayı önbelleğe almayın ve her dağıtımda önbelleği temizleyin.

Ücretsiz keşif görüşmesi

Dağınık bir yığın veya takılmış bir entegrasyon getirin - Integrono en akıllı ilk adımı haritalar.

Bütçe tuzakları, bağımlılıklar ve satın al / yapıştır / inşa kararında kıdemli bir bakış alırsınız - ücretli iş başlamadan. CEO döngüde kalır.