Koşula bağlı farklı engelleme sayfaları tanımlayabilir miyim (Conditional Blocking Pages)?
Kısa cevap
Evet. Blocking Page penceresindeki Conditional Blocking Pages listesine en fazla beş girdi eklenir; her girdi bir Condition, bir Page profile ve bir Status code taşır. Engellenen istekte girdiler listedeki sırayla denenir ve ilk eşleşen girdinin sayfası, o sayfa profilinin içerik türüyle döner; hiçbiri uymazsa varsayılan sayfa ve Blocking Status Code kullanılır. Status code alanı Use default status code bırakılan girdi genel kodu kullanır. Koşul olarak yalnızca istek tarafında değerlendirilen HTTP koşulları (Path, Host, Source IP, dil tercihi, HTTP header …) seçilebilir. Condition alanı boş bırakılan girdi koşulsuz sayılır ve engellenen her isteğe uyar; girdide kullanılan Content Pages profili silinirse girdi düz WAF BLOCKED metnini döndürür. Girdilerin sırası sürükle-bırak ile değiştirilir ve ayar Edit ile kaydedilir.
Sorun: Tek Engelleme Sayfası Bütün İstemcilere Uymuyor
Aynı vService'te farklı kitleler (API istemcileri, farklı diller, farklı markalar, iç ağ) engellendiğinde farklı içerik ya da durum kodu gerekiyor.
Çözüm: İki Yöntem
İki yöntem aynı listeyi yazar; biri seçilir. Hazır kurulumlar için: dil → Ziyaretçinin diline göre engelleme sayfası gösterebilir miyim?, API → API istemcileri için HTML yerine JSON engelleme yanıtı dönebilir miyim?
| Durumunuz | Uygun yöntem |
|---|---|
| Girdileri arayüzden ekleyeceğim | Yöntem 1: Conditional Blocking Pages |
| Betik ya da komut satırıyla ekleyeceğim | Yöntem 2: WEB-CLI |
Yöntem 1: Conditional Blocking Pages Önerilen
- Nasıl çalışır Koşul → sayfa eşleşmeleri sırayla değerlendirilir; ilk eşleşen kazanır.
- Nerede açılır Left Monitor Panel → WAF-Protected vServices → vService → WAF Management → Blocking Page kartı → kalem ikonu
- Gereksinim Bir Content Pages profili ve istek tarafında değerlendirilen bir HTTP koşulu (yoksa önce oluşturulur; Content Pages ve Conditions ekranlarında ekleme Load Balancer alanında değiştirme yetkisi ister)
- Sınır En fazla beş girdi; vService geneli, bütün host gruplarında ortak
Adım adım yapılandırma
Load Balancer → Profiles → Content Pages ekranında Add ile sayfa hazırlanıp Add ile kaydedilir (nasıl eklenir; ayrıntı: Content Pages profili nedir; kendi HTML sayfamı nasıl hazırlarım?).
Load Balancer → Conditions ekranında Add ile koşul tanımlanıp Add ile kaydedilir (nasıl eklenir).
Left Monitor Panel → WAF-Protected vServices → vService → WAF Management sekmesinde Inspection & Blocking bölümündeki Blocking page kartının sağ üstündeki kalem ikonuna tıklanır.
Conditional Blocking Pages altında Add Conditional Page tıklanır; CONDITIONAL PAGE #n başlıklı yeni girdi açılır. Beş girdi dolduğunda buton pasifleşir.
Condition alanında (boşken Select conditions yazar) koşul seçilir; alan boş bırakılmaz, boş girdi engellenen her isteğe uyar. Birden fazla koşul and / or ile birleştirilebilir (Birden fazla koşulu AND / OR ile nasıl birleştiririm?).
Page Profile alanında sayfa seçilir; yeni girdide WAF Blocking Page (English) seçili gelir. Seçili profilin yanındaki bilgi ikonuyla sayfa önizlenir.
Status Code alanında Use Default Status Code bırakılır ya da gövde taşıyabilen bir kod seçilir.
Birden fazla girdi varken girdinin solundaki taşıma ikonundan sürüklenerek sıra değiştirilir; en dar koşul en üste alınır.
Edit tıklanır; değişiklik ayrı bir dağıtım adımı olmadan uygulanır. Cluster kurulumunda varsayılan auto-sync ile eş cihaza da gönderilir; Manual Sync Mode açıksa eş cihaza elle gönderilir.
Doğrulama
WAF Management sekmesindeki Blocking page kartında koşullu satırlar değerlendirme sırasıyla varsayılan cümlenin üstünde listelenir.
<koşul> → the <sayfa> page is shown (<kod>) · Conditions are tried in order — first match winsBlocking modundaki host grubuna, her girdinin koşuluna uyan ve imza tetikleyen birer istek gönderilir.
Girdinin sayfası, sayfa profilinin içerik türü ve girdinin koduYöntem 2: WEB-CLI
- Nasıl çalışır Girdiler WEB-CLI ile
--blockingPageRuleslistesine sıra numarasıyla yazılır; sıra numarası değerlendirme sırasıdır. - Nerede açılır WEB-CLI →
lb condition list·lb page list·waf options show·waf options update - Gereksinim WEB-CLI erişimi; tanımlı koşul ve sayfa profili;
lb condition listiçin Load Balancer alanında görme yetkisi (yalnız WAF yetkisi olan hesap koşul tablosunu görmez) - Sınır En fazla beş girdi
Adım adım yapılandırma
Kimlik listenin id sütunundadır (lbConditions- ile başlar):
lb condition listlb page listMevcut girdiler blockingPageRules altında sıra numaralarıyla görünür; yeni girdi için ilk boş sıra numarası kullanılır (liste boşsa 0). Dolu bir sıra numarasına yazmak o girdiyi değiştirir.
waf options show poolId <vService><koşul-kimliği> ve <sayfa-kimliği> yerine 1. ve 2. adımdaki kimlikler yazılır; örnekteki 0 boş liste içindir, listede girdi varsa 0 yerine 3. adımda bulunan ilk boş sıra numarası yazılır. --blockingPageRules.0.statusCode yazılmazsa girdi genel kodu kullanır. Komut çıktı vermez:
waf options update poolId <vService> --syncWithDefaultFwRules false --blockingPageRules.0.cond <koşul-kimliği> --blockingPageRules.0.pageProfile <sayfa-kimliği> --blockingPageRules.0.statusCode 403Doğrulama
vService'in WAF ayarları görüntülenir.
Komut: waf options show poolId <vService>
blockingPageRules altında yazılan koşul, sayfa ve 403Sık Yapılan Hatalar
- Condition alanını boş bırakmak. Koşulu seçilmemiş girdi koşulsuz sayılır; üstündeki girdilere uymayan her engellenen istek bu girdinin sayfasını alır, altındaki girdiler ve varsayılan sayfa kullanılmaz.
- Geniş koşulu en üste koymak. İlk eşleşen kazandığı için alttaki daha dar koşulların sayfası hiç gösterilmez.
- Koşullu sayfalar tanımlandıktan sonra hazır şablon uygulamak. Dört hazır şablonun hepsi mevcut girdileri siler; iki dilli şablon yerine yalnızca kendi Türkçe girdisini yazar. Onay penceresi silinecek girdi sayısını …including the N conditional page(s) below. satırıyla gösterir; girdiler korunacaksa şablon yerine varsayılan sayfa alanları elle değiştirilir (Hazır engelleme sayfası şablonları nelerdir (Türkçe, İngilizce, JSON)?).
- Girdide kullanılan sayfa profilini silmek. Girdi düz
WAF BLOCKEDmetnini döndürür; profil silinmeden önce bu listeden çıkarılır. - Yanıt tarafı koşul aramak. Durum kodu gibi yanıt tarafında değerlendirilen koşullar listede yer almaz; engelleme kararı istek aşamasında verilir.
Dokümantasyonda nasıl yapılır
