Teacher trafiği tanınmıyor; neden?
Kısa cevap
Teacher bir isteği yalnızca kimliği çalışma anında birebir eşleştiğinde tanır. Teacher IP alanında yalnızca boşlukla ayrılmış IPv4 adresleri ve IPv4 blokları işlenir; IPv6 adresi, virgülle ayrılmış liste, port eklenmiş adres ya da hatalı yazım form tarafından reddedilmez, çalışma anında sessizce yok sayılır ve Learning Methods kartı kimliği yine tanımlı gösterir. TR7 bir CDN ya da proxy arkasındaysa ve vService'e Trusted Proxy profili atanmamışsa WAF istemci olarak proxy'nin adresini görür. Teacher Cookie ve Teacher Header'ın adı sabittir (TR7-LEARN); forma yalnızca değer yazılır ve değer büyük/küçük harf dahil birebir karşılaştırılır. Tanınan bir istek de iz bırakmayabilir: host group Learning Mode'daysa ya da istek Conditional Learning kimliği de taşıyorsa öğrenme kaydına yazılır; Monitor Mode ve Blocking Mode'da kayıt yalnızca isteğin puanı engelleme eşiğine ulaştığında ya da Monitor durumundaki bir imza tetiklendiğinde Event Logs'a yazılır ve Teacher yalnızca bu kayıtlardan öğrenir. Teaching Frequency None seçiliyse kayıtlar hiçbir zaman kurala dönüşmez; WAF Log Suppression Condition'a uyan kayıtlar öğretmeye girmez. Tanımanın kanıtı, Event Logs'ta Action ikonunun "Not blocked — Teacher IP matched" (ya da Teacher header / Teacher cookie) cümlesi ve Dashboard'daki WAF Inspection Distribution panelinin Teacher serisidir.
Sorun: Test Kaynağının İstekleri Teacher Olarak Görünmüyor
Test ekibinin ya da bir otomasyonun istekleri Teacher olarak tanımlandığı hâlde Blocking mode'daki host group'ta engelleniyor, Event Logs'ta "Attack blocked" kararıyla görünüyor ya da Teacher History boş kalıyor. Teacher'ın öğrettiği her şey kural setini gevşettiğinden, tanımanın neden gerçekleşmediği ve tanınan isteklerin neden kurala dönüşmediği ayrı ayrı incelenir (Teacher nedir; hangi kaynakları Teacher olarak tanımlayabilirim (IP, header, cookie)?).
Olası Nedenler
| Neden | Nasıl ayırt edilir |
|---|---|
| Teacher anahtarı kapalı ya da kimlik alanlarının hepsi boş | Learning Methods kartında Teacher kapalı yöntemler arasında ya da "Teacher is on but no identity is set — nothing can teach" uyarısı |
Teacher IP geçersiz biçimde: IPv6 adresi, virgülle ayrılmış liste (203.0.113.5,203.0.113.6), port eklenmiş adres (203.0.113.5:443), yazım hatası | Kart "identified by IP" der; Event Logs'ta aynı adresin kayıtları "Attack blocked" ya da "Not blocked — Monitor mode" kararıyla görünür (Teacher kimliğine hatalı format (geçersiz IP) girersem ne olur?) |
| TR7 bir CDN ya da proxy arkasında ve Trusted Proxy profili atanmamış | Event Logs'ta Client IP proxy adresi; filtre şeridinin X-Forwarded-For sekmesinde gerçek adres |
İstek TR7-LEARN adlı çerezi ya da başlığı taşımıyor, ad farklı yazılmış ya da değer formdakiyle birebir aynı değil | Event Logs önizlemesinin Request & Location sekmesindeki HTTP headers (Teacher Header'ının veya cookie'sinin adı ne olmalı (TR7-LEARN); Conditional Learning için hangi ad kullanılır (TR7-ANALYZE)?) |
Host group Learning Mode'da ya da istek Conditional Learning kimliği (TR7-ANALYZE) de taşıyor; istek öğrenme kaydına yazılıyor | Mod kartında Learning mode; WAF Inspection Distribution'da istekler Learning serisinde; Event Logs'ta kayıt yok |
| İstek WAF denetimine girmiyor: Whitelist Condition'a uyuyor ya da statik içerik sayılıyor | WAF Inspection Distribution'da istekler Whitelisted serisinde |
| Teacher isteğinin puanı engelleme eşiğine ulaşmıyor ve Monitor durumunda bir imza tetiklenmiyor; Event Logs kaydı oluşmuyor | İstek geçiyor ama Event Logs'ta kayıt yok; WAF Inspection Distribution'da istek Clean serisinde |
| Teaching Frequency None | Event Logs'ta "Not blocked — Teacher … matched" kayıtları var, Teacher history boş; kart bu durumda da "processing period 1 minutes" yazar |
| Kayıtlar WAF Log Suppression Condition'a uyuyor | Log Settings kartında "WAF logging is suppressed for requests matching:" satırı; istek Event Logs listesinde görünmüyor |
| Kural seti bu isteğe zaten izin veriyor | Event Logs önizlemesinin Attacks sekmesinde Learning Suggestion = Already learned |
Kesin kurallar:
- Teacher tanınan isteği puanı ne olursa olsun hiçbir modda engellemez; taraması süre sınırı içinde tamamlanamayan Teacher isteği de geçirilir. Monitor mode ve Blocking mode'da isteğin denetimi tamamlanır; puan engelleme eşiğine ulaşırsa ya da Monitor durumundaki bir imza tetiklenirse kayıt "Not blocked — Teacher … matched" kararıyla Event Logs'a yazılır. Puanı engelleme eşiğine ulaşan Teacher istekleri WAF Inspection Distribution'da Teacher serisinde, eşiğin altında kalanlar Clean serisinde sayılır.
- Teacher yalnızca kendi tanıdığı isteklerin Event Logs kayıtlarından öğrenir; AI learning'in Country filter, Only browsers, Only Valid Domain Names ve Skip Blacklist IPs süzgeçleri ile Required eşikleri Teacher'a uygulanmaz. Tek bir Teacher kaydı öğrenme için yeterlidir (Teacher trafiği ne kadar sürede kurala dönüşür; tek bir istek yeterli mi?).
- Teacher her dönemde, dönem süresine (dakika cinsinden dönemlerde iki dakikalık payla) eşit son pencerenin kayıtlarını değerlendirir. Örneğin 30 minutes seçiliyken son 32 dakika okunur; daha eski Teacher kayıtları sonraki dönemlerde değerlendirilmez.
- IPv6 istemciler IP ile tanımlanamaz; bu istemciler için Teacher cookie ya da Teacher header kullanılır (Teacher için IPv6 adres tanımlayabilir miyim?).
- Cluster kurulumunda Teacher değerlendirmesi cluster'ın birinci cihazında çalışır ve iki cihazın Teacher kayıtlarından çıkan öneriler birleştirilir.
Nereden İzlenir?
| Ekran | Yol | Ne gösterir |
|---|---|---|
| Learning Methods kartı | WAF-Protected vServices → vService → WAF Management → Learning & Reporting | "Teacher is on — teaching sources are identified by … (processing period …)" cümlesi |
| Event Logs | WAF-Protected vServices → vService → Event Logs | Action ikonunun üzerine gelindiğinde "Not blocked — Teacher IP matched" (ya da Teacher header, Teacher cookie) |
| WAF Inspection Distribution | WAF-Protected vServices → vService → Dashboard → Summary | Teacher serisi |
| Teacher Tracking | WAF-Protected vServices → vService → Teacher Tracking (AI learning da açıksa AI Learning & Teacher Tracking) → View | Bir sonraki dönemde uygulanacak öğrenme önerileri |
| Teacher History | Aynı sekme → View | Teacher'ın uyguladığı öğrenmeler |
Nasıl Teşhis Edilir?
- Left Monitor Panel → WAF-Protected vServices → vService → WAF Management açılır. Learning & Reporting bölümündeki Learning Methods kartında Teacher cümlesi okunur; "nothing can teach" uyarısı ya da Teacher'ın kapalı yöntemler arasında yazması kimliğin tanımlı olmadığını gösterir.
- Aynı ekranda host group'un mod kartına bakılır. Learning mode'daki host group'ta istekler zaten öğrenme kaydına yazılır; Teacher bu host group'ta iz bırakmaz.
- Event Logs sekmesi açılır; Date Range Teacher isteklerinin zamanını kapsayacak şekilde seçilip Save & Get Logs tıklanır. Filtre şeridinin Client IP sekmesinde Teacher kaynağının adresi seçilir.
- Kayıtların Action ikonunun üzerine gelinir. "Not blocked — Teacher … matched" görülüyorsa tanıma çalışıyordur; 8. adıma geçilir. "Attack blocked" ya da "Not blocked — Monitor mode" görülüyorsa istek tanınmamıştır.
- Tanınmayan bir kaydın önizlemesi açılır; Summary sekmesindeki istemci adresi Teacher IP alanındaki adreslerle karşılaştırılır. Adres bir CDN ya da proxy adresiyse Trusted Proxy eksiktir.
- Önizlemenin Request & Location sekmesindeki HTTP Headers bölümünde
TR7-LEARNbaşlığı ya da çerezi aranır; ad ve değer formdakiyle birebir karşılaştırılır. - Teacher kaynağından gelen istekler için Event Logs'ta hiç kayıt yoksa Dashboard → Summary → WAF Inspection Distribution panelinde isteklerin hangi seride sayıldığına bakılır: Learning öğrenme kaydına, Whitelisted denetim dışına, Clean eşik altına işaret eder.
- Kayıtlar Teacher olarak görünüyor ama öğrenme olmuyorsa Teacher Tracking sekmesi açılır, View listesinden Teacher Tracking seçilip Refresh tıklanır. Liste doluysa öğrenme bir sonraki dönemde uygulanacaktır; Learning methods kartındaki dönem ve Teaching frequency kontrol edilir. Liste boşsa kayıtlar ya bastırma koşuluna uyuyordur ya da kural seti bu isteklere zaten izin veriyordur.
Çözüm
Tanımayı ve öğrenmeyi etkileyen ayarların tamamı Learning methods penceresindedir. TR7 bir CDN ya da proxy arkasındaysa önce gerçek istemci adresi çözülür: Loglarda istemci IP'si yerine proxy / CDN IP'si görünüyor; ne yapmalıyım?. Kayıtlar WAF Log Suppression Condition yüzünden öğretmeye girmiyorsa koşul daraltılır: 418 alan bir istek Event Logs'ta neden görünmüyor?
Teacher Kimliğini ve Dönemini Düzeltmek
- Nasıl çalışır Kimliği eşleşen istekler engellenmez; puanı engelleme eşiğine ulaşan ya da Monitor durumundaki bir imzayı tetikleyen istekler Teacher kaydı olarak yazılır ve seçilen dönemin sonunda false positive olarak kurallardan temizlenir (Teacher).
- Nerede açılır WAF-Protected vServices → vService → WAF Management → Learning & Reporting → Learning Methods kartı
- Gereksinim WAF alanında değiştirme yetkisi; host group Monitor mode ya da Blocking mode'da
- Kapsam vService geneli; bütün host group'lar
Adım adım yapılandırma
Left Monitor Panel → WAF-Protected vServices → vService → WAF Management açılır.
Learning & Reporting bölümündeki Learning Methods kartının kalem ikonuna tıklanır; Learning Methods penceresi açılır.
Teacher anahtarı açılır (varsayılan kapalıdır); Teacher IP, Teacher Cookie, Teacher Header ve Teaching Frequency alanları görünür.
Teacher IP alanına IPv4 adresleri ve IPv4 blokları yalnızca boşlukla ayrılarak yazılır (ör. 203.0.113.10 203.0.113.64/27); virgül, port ve IPv6 adresi kullanılmaz. IP yerine ya da IP ile birlikte Teacher Cookie veya Teacher Header alanına, Teacher isteklerinin TR7-LEARN adlı çerezde ya da başlıkta taşıyacağı değer yazılır; alana ad değil yalnızca değer girilir. Değer gizli tutulur: bu değeri taşıyan her istek engellenmez ve kuralları gevşetir.
Teaching Frequency listesinden 1 minutes, 2 minutes, 5 minutes, 30 minutes ya da 1 hours seçilir; varsayılan değer None'dır. None seçiliyken Teacher istekleri engellenmez ve kaydedilir ama kurala dönüşmez.
Teacher kaynağının IP'si ya da TR7-ANALYZE değeri Conditional Learning alanlarında tanımlıysa ve Teacher kaynağı bu kimliği de taşıyorsa istek öğrenme kaydına yazılır ve Teacher kaydı oluşmaz. Kayıtlı kimlik Conditional Learning anahtarı kapalıyken de eşleşmeye devam eder; alanlar yalnızca anahtar açıkken göründüğünden anahtar açılır, ilgili değer silinir ve pencere anahtar açık bırakılarak kaydedilir (Conditional Learning ile Teacher arasındaki fark nedir; hangisini ne zaman kullanmalıyım?).
Edit tıklanır; kimlik değişiklikleri ayrı bir dağıtım adımı olmadan uygulanır. Cluster kurulumunda değişiklik varsayılan auto-sync ile eş cihaza da gönderilir; Manual Sync Mode açıksa Synchronize ile gönderilir.
Doğrulama
Teacher header tanımlıysa öğretilmek istenen istek başlıkla gönderilir; ardından Event Logs'ta kaydın Action ikonunun üzerine gelinir.
Komut: curl -s -o /dev/null -w '%{http_code}' -H 'TR7-LEARN: ogretici-degeri' 'https://www.example.com/arama?q=...'
Not blocked — Teacher header matchedSeçilen dönem dolduktan sonra Teacher Tracking sekmesinde View → Teacher history seçilir.
Öğretilen path ve denetim alanı için satırSık Yapılan Hatalar
- Kart kimliği gösterdiği için eşleştiğini sanmak. Kart yalnızca alanın dolu olup olmadığına bakar; geçersiz IP girişleri çalışma anında yok sayılır.
- Çerez ya da başlık alanına
TR7-LEARNadını yazmak. Ad sabittir; alana yalnızca değer girilir. - Temiz isteklerin de öğreteceğini sanmak. Teacher yalnızca Event Logs kaydı oluşan isteklerden öğrenir; puanı engelleme eşiğinin altında kalan ve Monitor durumundaki bir imzayı tetiklemeyen bir Teacher isteği kayıt üretmez.
- Teaching frequency'yi None bırakmak. İstekler engellenmez ama hiçbir öğrenme uygulanmaz; kart bu durumda da 1 minutes dönemi gösterir.
- Teacher kimliğini geniş tutmak. Geniş bir IP bloğu ya da paylaşılan bir başlık değeri, o kaynaktan gelen saldırıların da kural setine öğretilmesine yol açar; öğretme bitince Teacher anahtarı kapatılır; anahtar kapalıyken Teacher kimliği hiçbir isteği tanımaz.
- Teacher Tracking'i açınca listenin dolmasını beklemek. Teacher tracking görünümü açılışta veri getirmez; Refresh tıklanır.
Dokümantasyonda nasıl yapılır
İlgili sorular
- Teacher nedir; hangi kaynakları Teacher olarak tanımlayabilirim (IP, header, cookie)?
- Teacher kimliğine hatalı format (geçersiz IP) girersem ne olur?
- Teacher Header'ının veya cookie'sinin adı ne olmalı (TR7-LEARN); Conditional Learning için hangi ad kullanılır (TR7-ANALYZE)?
- Teacher trafiği ne kadar sürede kurala dönüşür; tek bir istek yeterli mi?
