CoreDash bot'larını CDN'inden veya güvenlik duvarından geçir

Bazen bir güvenlik duvarı veya CDN ayarı CoreDash bot'larını engeller; bu sayfa bunu nasıl düzelteceğini gösterir.

Trusted by market leaders · Client results

snvhappyhorizonaleteiamarktplaatsvpnharvardperionerasmusmcsaturnwhowhatwearnina caredpg mediamonarchloopearplugsfotocasakpncompareworkivaadevintamy work featured on web.devnestleebay

Her iki CoreDash bot'unu da CDN'inden veya güvenlik duvarından geçir

Kısaca

  • Her iki CoreDash bot'u da CoreDash/ ile başlayan bir user agent kullanır; buna yazılan tek bir kural hem cRUM denetimini hem de uptime kontrolünü geçirir.
  • Projenin bot token'ına tanımlanan bir kural, bunun daha güvenli halidir.
  • Cloudflare Free planındaki Bot Fight Mode kurallarını yok sayar; bu yüzden onun için ayrı bir çözüm gerekir.

CoreDash'in siteni ziyaret eden iki bot'u vardır: cRUM denetimi ve uptime kontrolü. CoreDash'ten tam verim almak için CDN'inin veya güvenlik duvarının bu iki bot'un geçişine izin vermesi gerekir. Bazen oradaki bir ayar bot'ları engeller. Bu sayfa, Cloudflare ve AWS WAF üzerinde her iki bot'u da kapsayan tek bir kuralla bunu nasıl düzelteceğini gösterir.

Bu iki bot ne yapar:

  • cRUM denetimi. CoreDash menüsünde cRUM (beta) altından bir sayfa seçtiğinde CoreDash, tıpkı bir ziyaretçi gibi o sayfayı denetim sunucusundaki Chrome'da açar ve sayfayı neyin yavaşlattığını gösterir. Gönderdiği user agent: CoreDash/1.0 (audit; +https://www.coredash.app/bot).
  • Uptime kontrolü. CoreDash, izlediğin her siteye 30 dakikada bir kendi sunucularından istek atar ve bir site çöktüğünde sana haber verir. Gönderdiği user agent: CoreDash/1.0 (uptime; +https://www.coredash.app/bot).

User agent, bir tarayıcının veya bot'un kim olduğunu belirtmek için her istekle birlikte gönderdiği addır. CoreDash'in her iki bot'u da CoreDash/ ile başlar; yazacağın kuralın arayacağı ifade de budur.

Engellenen bir denetim veya uptime kontrolü nasıl görünür

Güvenlik duvarın veya CDN'in, bir veri merkezinden gelen ve user agent'ı bir tarayıcıya ait olmayan bir ziyaretçi görür. Bu ziyaretçiyi güvenmediği bir bot sanıp bir hata koduyla veya challenge sayfasıyla yanıt verir. Her bot bunu kendine has bir şekilde gösterir.

Engellenen bir cRUM denetimi, "Audit failed" mesajı ve altındaki bir hatayla durur. Ya da engelleme sayfasında yine de çalışır: Bu durumda Page load filmstrip, sayfanın yerine bir challenge veya hata sayfasını gösterir ve denetimdeki tüm değerler o sayfaya ait olur.

Uptime monitörü Blocked durumuna geçer; bildirimindeki "A firewall blocks the checker" uyarısı kontrollerin hangi durum kodunu aldığını ve ne zamandan beri aldığını belirtir. CoreDash, engellenen kontrolleri downtime sürene dahil etmez; dolayısıyla bu engelleme uptime oranını düşürmez. Ancak her kontrol engellendiğinde hiçbiri sitene ulaşamaz; bu nedenle monitör siten çöktüğünde sana haber veremez.

example-shop.com için Blocked olarak işaretlenmiş CoreDash uptime monitörü: 17 Ekim'den beri yapılan her kontrol Cloudflare'den 403 aldı; bu sayfaya ve bot token'ına yönlendiren bağlantılar içeriyor

Cloudflare her uptime kontrolüne 403 ile yanıt verdiğinde example-shop.com için monitör sayfası.

Güvenlik duvarın CoreDash'i nasıl tanır

Güvenlik duvarında veya CDN'inde CoreDash için tek bir istisna tanımlarsın ve çoğu kişi bunu user agent üzerinden yapar: CoreDash/ için yazılan tek bir kural hem denetimi hem de uptime kontrolünü geçirir. Projenin bot token'ı bunu daha sıkı bir kurala dönüştürür çünkü bu token'ı yalnızca kendi projene ait bot'lar gönderir. CoreDash'in IP adresleri ise başka hiçbir yöntem işe yaramadığında devreye girer. CoreDash bir sunucu eklediğinde veya taşıdığında bu adresler değişir; bu yüzden IP kuralını kendin güncel tutmak zorunda kalırsın.

Hangi ayarın istisnaya ihtiyaç duyduğunu güvenlik duvarının log'ları gösterir. Cloudflare log'ları bir sonraki bölümde anlatılıyor. AWS WAF için aşağıdaki "CoreDash'e AWS WAF'ta Bot Control üzerinde izin ver" bölümüne geç.

Cloudflare'de CoreDash'i neyin durdurduğunu bul

Cloudflare'de alan adını aç ve Security › Analytics altındaki Events sekmesine git. Sampled logs altında CoreDash user agent'ına sahip bir istek bul. Yoğun bir sitede Filter'a tıkla, alan olarak User agent'ı seç ve değer kısmına tam user agent dizesini yapıştır: Uptime kontrolü için CoreDash/1.0 (uptime; +https://www.coredash.app/bot) veya denetim için CoreDash/1.0 (audit; +https://www.coredash.app/bot).

Ayrıntılarını görmek için isteğe tıkla. Service satırı, isteği durduran Cloudflare özelliğini belirtir.

www.example-shop.com için Cloudflare Security Events: CoreDash uptime user agent'ına sahip bir istek, Block eylemi, Browser integrity check servisi

Browser Integrity Check, example-shop.com üzerindeki bu uptime kontrolünü engelledi.

Uygulayacağın çözümü bu Service satırı belirler:

  • Bot fight mode: Cloudflare Free planının bot korumasıdır ve kuralların bunun için bir istisna tanımlayamaz. Aşağıdaki Bot Fight Mode bölümüne geç.
  • Diğer her şey (ekran görüntüsündeki Browser integrity check, yönetilen bir kural veya Super Bot Fight Mode gibi): Aşağıdaki Skip kuralını oluştur.

CoreDash'i bir Skip kuralıyla Cloudflare'den geçir

Bir Skip kuralı, Cloudflare'e seçtiğin özelliklerde CoreDash user agent'ına sahip isteklere dokunmamasını söyler. Hem denetimi hem de uptime kontrolünü aynı anda kapsar ve bunu her Cloudflare planında oluşturabilirsin.

  1. Security › Security rules bölümüne git. Custom rules altında Create rule'a tıkla.
example-shop.com için Cloudflare Security rules sayfası; boş bir Custom rules bölümü ve Create rule butonu

İlk özel kuraldan önce example-shop.com için Security rules sayfası.

  1. Kurala CoreDash adını ver. "When incoming requests match" altında "Edit expression"a tıkla ve açılan metin kutusuna şu satırı yapıştır.
    http.user_agent contains "CoreDash/"
http.user_agent contains "CoreDash/" ifadesiyle CoreDash adlı yeni Cloudflare custom rule

"Edit expression"a tıkladıktan sonra kural adı ve ifadesi. CoreDash'ten sonraki eğik çizgi kurala dahildir.

  1. "Then take action" altında Skip'i seç ve Cloudflare'in CoreDash için neleri atlayacağını belirle. "WAF components to skip" içinde "All managed rules" ve "All Super Bot Fight Mode Rules" kutularını işaretle. Açmak için "More components to skip" seçeneğine tıkla ve "Browser Integrity Check" kutusunu da işaretle. "Log matching requests" seçeneğini açık bırak; böylece Events sekmesi kuralın çalıştığını daha sonra gösterir.
All managed rules, All Super Bot Fight Mode Rules ve Browser Integrity Check işaretlenmiş, Skip olarak ayarlanmış Cloudflare custom rule

Üç kutu işaretlenmiş halde Skip eylemi.

  1. Deploy'a tıkla. Alan adında zaten başka özel kurallar varsa Cloudflare bu kuralı nereye koyacağını sorar: En başa yerleştir.
Cloudflare custom rule formunun alt kısmı: Active durumu, kural doğrulaması başarılı, Deploy butonu

Başka özel kural yoksa sıralanacak bir şey yoktur; bu yüzden son tıklama Deploy'dur.

  1. CoreDash'in geçtiğini doğrula. Bir sonraki denetim veya uptime kontrolü ulaştığında, Cloudflare Events bunu Skip eylemiyle listeler. CoreDash tarafında ise hangi bot'u kullanıyorsan onu veya her ikisini kontrol et.

cRUM denetimi için cRUM (beta) altındaki sayfayı tekrar seç veya açık olduğu tarayıcı sekmesini yenile; yeni bir denetim başlar. İstek geçtiğinde Page load filmstrip, sayfanın Chrome'da kare kare yüklendiğini gösterir.

CoreDash cRUM denetimi, Page load filmstrip kartı: TTFB, DCL, Load, FCP, LCP ve CLS işaretleriyle beş saniye boyunca kare kare yüklenen sayfa

Kareler üzerinde TTFB, FCP, LCP ve CLS işaretlenmiş tamamlanmış bir denetim.

Uptime kontrolü için tıklamaya gerek yoktur: CoreDash saat başlarında ve buçuklarda kontrol yapar; bu yüzden 30 dakika içinde monitör Up durumuna döner ve yeni çubuklar yeşil olur.

example-shop.com için tekrar Up durumuna dönen CoreDash uptime monitörü: Cloudflare kontrolleri 403 ile engellediğinde sarı çubuklar, kuraldan sonra yeşil

example-shop.com yeniden Up durumunda: 38 kontrol 403 aldı, kuraldan sonraki tüm kontroller ise 200 aldı.

CoreDash bot token'ın ile daha güvenli bir Cloudflare kuralı

Herkes CoreDash/ ile başlayan bir user agent gönderebilir; bu yüzden CoreDash gibi davranan zararlı bir bot da Skip kuralından geçer. Projenin bot token'ı ise gizlidir: Her denetim ve uptime kontrolü bu token'ı X-CoreDash-Bot adlı bir header içinde gönderir. Bu token üzerine yazılan bir kural, yalnızca kendi projene ait bot'ları geçirir.

Token'ı almak için CoreDash'te Project settings'i aç ve "CoreDash bot token" sekmesine git. Burayı yalnızca proje sahibi açabilir. Monitör Blocked durumundayken, bildirimdeki "View your CoreDash bot token" bağlantısı da seni buraya götürür. "Copy Cloudflare rule" butonuna tıkla: Token'ını içeren ifadenin tamamını alırsın.

Project settings, Example Shop için CoreDash bot token: Show, Copy token ve Copy Cloudflare rule butonlarıyla gizlenmiş token

"Copy Cloudflare rule", token'ını içeren ifadeyi panoya kopyalar.

Skip kuralını daha önce oluşturduysan Security › Security rules bölümüne git ve CoreDash kuralını aç. İfadedeki user agent satırını kopyaladığın satırla değiştir ve kuralı kaydet. Eylem ve işaretli kutular olduğu gibi kalır. Henüz bir kural oluşturmadıysan yukarıdaki Skip kuralı adımlarını izle ve 2. adımda token satırını yapıştır.

Token yalnızca projenin kendi sitesine ve alt alan adlarına gider. Başka bir alan adındaki sayfanın monitörü veya denetimi token göndermez; bu yüzden o alan adı user agent kuralını korur. Token istemediğin bir yere sızarsa "Make a new token" butonuna tıkla. Eski token hemen çalışmayı durdurur; bu yüzden yenisini hemen ardından Cloudflare kuralına ekle.

Cloudflare Free planında Bot Fight Mode

Events altındaki Service satırında Bot fight mode yazıyorsa bu bölüm senin için.

www.example-shop.com için Cloudflare Security Events: CoreDash uptime user agent'ına sahip bir istek, Managed Challenge eylemi, Bot fight mode servisi

Managed Challenge eylemi ve Bot fight mode servisi alan bir CoreDash uptime kontrolü.

Bot Fight Mode, bulut sunucularında çalışan basit bot'lara challenge çıkarır; Cloudflare açısından her iki CoreDash bot'u da bu tür bot'lardır. Cloudflare dokümantasyonu, Skip ve Allow kurallarının bu mod üzerinde hiçbir etkisi olmadığını belirtir. Bu yüzden ya bu modu kapatacaksın ya da açık tutup CoreDash'in IP adreslerinin geçmesine izin vereceksin.

Bot Fight Mode'u kapat

Security › Settings bölümüne git ve Bot traffic araması yap. "Bot fight mode" satırını bulup anahtarını kapat. Cloudflare artık sitenin tamamında bu basit bot'lara challenge çıkarmayı durdurur. Bu tür bir korumayı sürdürmek istersen Pro planda Super Bot Fight Mode bulunur ve o mod Skip kuralını dikkate alır. Anahtarı kapattıktan sonra yukarıdaki Skip kuralını da oluştur; böylece Browser Integrity Check veya yönetilen bir kural daha sonra CoreDash'i durdurmaz.

Bot traffic filtresi uygulanmış Cloudflare Security Settings; Bot fight mode satırı ve anahtarı

Bot fight mode anahtarı Status sütununda yer alır. Bu ekran görüntüsünde zaten kapalıdır.

Bot Fight Mode'u açık tut ve CoreDash'in IP adreslerine izin ver

Başlamadan önce: Bu adresler sabit değildir. Eklediğin IP access kuralları yazdığın gibi kalırken güncel liste her zaman app.coredash.app/bot/ips.json adresinde yer alır. CoreDash ileride tekrar engellenirse önce kurallarını bu listeyle karşılaştır.

Bir IP access kuralı, tek bir IP adresinin güvenlik duvarı kurallarını aşmasını sağlar; Bot Fight Mode da bir istek önce böyle bir kuralla eşleştiğinde isteğe dokunmaz. Security › Security rules bölümüne git ve IP access rules altında Create rule'a tıkla. Cloudflare bunu özel bir kural olarak oluşturmayı önerirse "No, go to IP access rules" seçeneğini seç. 51.195.222.219 adresini gir, Allow ve "This website" seçeneklerini seçip Create'e tıkla. Her adres için ayrı bir kural oluştur: Uptime kontrolü için 51.195.222.219 ve 51.195.222.220, cRUM denetimi için 135.125.202.210.

Bu web sitesinde bir CoreDash uptime adresi olan 51.195.222.219'a izin veren yeni Cloudflare IP access rule

Bu web sitesinde Allow olarak ayarlanmış, CoreDash adresi başına bir IP access kuralı.

Her iki çözümün ardından, Skip kuralının 5. adımında olduğu gibi CoreDash'in geçtiğini doğrula.

CoreDash'e AWS WAF'ta Bot Control üzerinde izin ver

AWS WAF'ta CoreDash'i durduran engel genellikle AWS'in bot'lara karşı sunduğu yönetilen kural grubu olan Bot Control kaynaklıdır. Bot Control'ün üzerine yerleştirilen ve CoreDash user agent'ına izin veren bir Allow kuralıyla bunu çözersin; bu tek kural hem denetimi hem de uptime kontrolünü geçirir. Buradaki AWS ekran görüntüleri, bu sayfa için hazırlanan acme-aws.com demo kurulumundan alınmıştır.

  1. AWS WAF konsolunda siteni koruyan kural kümesini, yani web ACL'ini aç ve Sampled requests sekmesine git. Header'ları görmek için bir isteğin URI'sine tıkla: CoreDash istekleri CoreDash/ ile başlayan bir user agent taşır. "Rule inside rule group" sütunu, bu istekleri engelleyen kuralın adını verir.
acme-aws.com demo kurulumunda AWS WAF Sampled requests: SignalNonBrowserUserAgent adlı Bot Control kuralının engellediği CoreDash kontrolleri

Bot Control'ün SignalNonBrowserUserAgent kuralı acme-aws.com üzerindeki CoreDash uptime kontrollerini engelliyor.

  1. Web ACL sayfasında Add rules › "Add my own rules and rule groups" seçeneğine tıklayarak Rule builder'ı aç (yeni AWS konsolunda adı Custom rule'dur). Formu ekran görüntüsündeki gibi doldur: user-agent header'ına bakan ve CoreDash/ ile başlayan her isteğe izin veren CoreDash adında standart bir kural. Ardından formun altına kaydırıp "Add rule" butonuna tıkla.
Demo kurulumunda AWS WAF Rule builder: CoreDash kuralı, single header user-agent starts with CoreDash/, Allow eylemi

CoreDash kuralı: Single header user-agent, Starts with string CoreDash/, action Allow.

  1. AWS ardından "Set rule priority" ekranını açar. CoreDash'i seç, en üste gelene kadar "Move up"a tıkla ve Save'e bas. AWS kuralları yukarıdan aşağıya doğru çalıştırır; bir Allow kuralıyla eşleşen istek daha ileri gitmez, böylece Bot Control bir CoreDash isteğini asla görmez.
Demo kurulumunda AWS WAF Set rule priority: En üstte, Bot Control kural grubunun üzerinde Allow eylemli CoreDash

CoreDash en üstte, Bot Control kural grubunun üzerinde.

  1. CoreDash'in geçtiğini doğrula. Sampled requests altında en yeni CoreDash istekleri artık Allow eylemiyle CoreDash kuralını gösterir.
acme-aws.com demo kurulumunda AWS WAF Sampled requests: CoreDash kontrolleri artık CoreDash kuralıyla eşleşiyor, eylem Allow

acme-aws.com üzerindeki en yeni CoreDash kontrolleri CoreDash kuralıyla eşleşiyor ve geçiyor.

Cloudflare Skip kuralının 5. adımında olduğu gibi, CoreDash'te hangi bot'u kullanıyorsan kontrol et: Yeni bir denetim, Page load filmstrip alanında sayfanı gösterir ve bir sonraki uptime kontrolünden sonra monitör Up durumuna döner.

Cloudflare'de olduğu gibi, projenin bot token'ı bu kuralı daha güvenli hale getirir. Bunun nedeni ve token'ın hangi sitelere gittiği yukarıdaki Cloudflare token bölümünde yer alıyor. AWS kuralını token kullanımına geçirmek için:

  1. CoreDash'te Project settings'i aç, "CoreDash bot token" sekmesine git ve "Copy token" butonuna tıkla.
  2. AWS WAF'ta web ACL'indeki CoreDash kuralını tekrar aç. Yukarıdaki Rule builder ekran görüntüsündeki form açılır.
  3. Header alan adını user-agent yerine x-coredash-bot olarak değiştir. AWS header adlarında büyük/küçük harf ayrımı yapmaz; dolayısıyla bu alan X-CoreDash-Bot header'ıdır.
  4. Eşleşme türünü "Exactly matches string" olarak ayarla, eşleşecek dize alanına token'ını yapıştır ve kuralı kaydet.

Origin kontrolü CDN arkasında timeout'a düşüyor

Bu bölüm yalnızca uptime kontrolüyle ilgilidir ve sadece monitörü kurarken Advanced altında Origin IP alanını doldurduysan geçerlidir. Bu durumda CoreDash, CDN'i atlayarak sunucunu doğrudan da kontrol eder. Bazı sunucular yalnızca CDN'in kendi adreslerinden gelen istekleri kabul eder. Ziyaretçiler CDN üzerinden sayfaları almaya devam ederken monitör "The origin check fails: Connect timeout" uyarısıyla Down durumuna geçer.

example-shop.com için Down olarak işaretlenmiş CoreDash monitörü: CDN önbelleğe alınmış sayfaları sunmaya devam ediyor, origin kontrolü connect timeout alıyor

CDN önbellekteki sayfaları sunmaya devam ederken sunucunun kendisindeki kontrol timeout'a düşüyor.

User agent veya token üzerine yazılan bir kural burada işe yaramaz: Böyle bir sunucu henüz hiçbir header'ı okumadan, isteğin geldiği kaynak nedeniyle kontrolü reddeder. Bu yüzden CoreDash'i IP adreslerinden tanıması gerekir. Sunucunun güvenlik duvarında iki uptime adresine (51.195.222.219 ve 51.195.222.220) izin ver veya hosting firmandan bunu talep et. Origin kontrolü ileride yeniden timeout'a düşmeye başlarsa önce güncel listeye bak: Adresler değişmiş olabilir.

CoreDash hâlâ engelleniyor

Monitör hâlâ Blocked gösteriyorsa veya denetim yine başarısız oluyorsa log'u tekrar aç ve en yeni CoreDash isteğine tıkla: Cloudflare'de Events, AWS'te Sampled requests. Orada adı geçen özellik neyse CoreDash'i şu an o durduruyordur. Yaygın nedenler:

  • Daha öncekinden farklı bir özellik: Örneğin Bot Fight Mode'u kapattıktan sonra devreye giren Browser integrity check. Skip kuralını da oluştur.
  • Kural etkin değil veya AWS'te en üst sırada yer almıyor. Cloudflare'de CoreDash kuralının Custom rules altında Active görünmesi gerekir. AWS ise kuralın "Set rule priority" listesinde en tepede olmasını ister.
  • Kural adımlardakinden farklı yazılmış. Cloudflare tarafında contains ve eğik çizgisiyle birlikte CoreDash/ gerekir; AWS tarafında ise user-agent header'ı ve "Starts with string" seçilmelidir.
  • Kendi Cloudflare kurallarından biri (örneğin ülkeleri engelleyen bir kural). Skip kuralı tanımladığın özel kuralları devreden çıkarmaz; bu yüzden CoreDash'i hariç tutmak için o kuralı düzenle. Events sekmesi isteğin hangi ülkeden geldiğini gösterir.
  • Under Attack Mode. Kapatana kadar CoreDash de dahil olmak üzere her ziyaretçiye challenge çıkarır.
  • İsteğin geçmiş görünmesi ya da hiç CoreDash isteği bulunmaması. Bu durumda Cloudflare veya AWS'in önünde ya da arkasında başka bir güvenlik duvarı bulunuyordur (hosting sağlayıcının güvenlik duvarı veya sunucudaki bir kural gibi). Orada da CoreDash/ user agent'ına izin ver.

Hâlâ çözülmedi mi? Monitörün veya denetlenen sayfanın URL'si ve engellendiği zaman bilgisiyle CoreDash ile iletişime geç.

Her iki bot'un ne gönderdiği ve neden gönderdiği CoreDash bot sayfasında yer alır. Monitörler hakkında daha fazla bilgi: uptime izleme; script'ler içinse Uptime API.

CoreDash bot'larını Cloudflare ve AWS WAF'tan geçir Core Web Vitals CoreDash bot'larını Cloudflare ve AWS WAF'tan geçir