Skip to content
Smarter by Design.Simpler for Business

waf options ​

waf options komutu, bir vService'in WAF ayarlarını yönetir: denetimlerin ne kadar sıkı uygulanacağını, engellenen isteğe ne döndürüleceğini, gövdenin nasıl işleneceğini, kuralların nasıl öğrenileceğini ve hangi durumlarda uyarı üretileceğini belirler.

Komut Özeti ​

TR7 WEB-CLI · waf options
# komuttan sonra Tab
admin@TR7LBWAF01> waf options
show update update-many
 
admin@TR7LBWAF01> waf options show poolId <vservice>
admin@TR7LBWAF01> waf options update poolId <vservice> …
admin@TR7LBWAF01> waf options update-many target selected …
admin@TR7LBWAF01>  

Bu kaynak vService başına tekil bir ayardır: add ve delete aksiyonları yoktur. Her komutta hangi vService üzerinde çalışıldığı alan adı ile değeri birlikte yazılarak belirtilir.

Zorunlu Alanlar ​

SıraAlanDurumDeğer
1poolIdZorunluAyarların ait olduğu vService kaydı; show ve update komutlarında istenir

Toplu güncellemede poolId yerine target istenir (bkz. Toplu Güncelleme).

Temel Denetimler ​

AlanNe yaparArkasına ne yazılır
--structureChecksİsteğin yapısal denetimlerden geçmesini açartrue · false (varsayılan false)
--argumentChecksİstek argümanlarının denetlenmesini açartrue · false (varsayılan false)
--maxAllowedArgumentsBir istekte en çok kaç argümana izin verileceğini belirler1 ya da daha büyük tam sayı (varsayılan 15)
--owaspProtectionLevelOWASP kural setinin ne kadar sıkı uygulanacağını seçer24 — Elementary · 16 — Normal · 8 — Tight · 4 — Very tight · 2 — Aggressive. Sayı küçüldükçe koruma sıkılaşır
--maxOwaspExclusionsBir kuralda en çok kaç OWASP istisnası tanımlanabileceğini sınırlar1 ya da daha büyük tam sayı
--syncWithDefaultFwRulesServisin varsayılan WAF kural setinin koruma düzeyine göre yeniden kurulmasını tetiklertrue (varsayılan) · false. Saklanan bir ayar değil, bir yazma tetiğidir; toplu güncellemede kabul edilmez

Engelleme Sayfası ​

Engellenen isteğe hangi içeriğin ve hangi durum kodunun döndürüleceğini belirler.

AlanNe yaparArkasına ne yazılır
--blockingContentSourceEngelleme içeriğinin nereden geleceğini seçerprofile içerik profilinden (varsayılan) · boş bırakıldığında içerik elle yazılır
--blockingContentProfileHangi içerik profilinin kullanılacağını seçerSayfa içeriği profili. Yalnız --blockingContentSource profile iken açılır
--blockingContentElle yazılan engelleme içeriğini belirlerİçerik metni (varsayılan BLOCKED). Yalnız kaynak profile dışında iken açılır
--blockingContentTypeElle yazılan içeriğin türünü seçertext/html (varsayılan) · text/plain · text/css · application/json · application/xml · application/x-ns-proxy-autoconfig. Yalnız kaynak profile dışında iken açılır
--blockingStatusCodeEngellenen isteğe hangi HTTP durum kodunun döndürüleceğini seçerDurum kodu (varsayılan 418); küme 2xx, 3xx, 4xx ve 5xx kodlarını kapsar
--blockingPageRules.N.condFarklı bir engelleme sayfasının hangi koşulda gösterileceğini belirlerKoşul ifadesi; her kural kendi indeksiyle
--blockingPageRules.N.pageProfileO koşul sağlandığında hangi sayfa profilinin gösterileceğini seçerSayfa içeriği profili
--blockingPageRules.N.statusCodeO koşulda döndürülecek durum kodunu seçerDurum kodu. Boş bırakıldığında genel engelleme kodu kullanılır

WAF Kapsamı ​

AlanNe yaparArkasına ne yazılır
--dontWafStaticContentStatik içerik isteklerinin WAF denetiminden geçirilmemesini sağlartrue (varsayılan) · false
--decodePathsİstek yollarının denetimden önce çözülmesini açartrue (varsayılan) · false
--wafConditionEnabledWAF muafiyeti koşulunun uygulanmasını açartrue · false (varsayılan false)
--wafConditionHangi isteklerin WAF denetiminden muaf tutulacağını belirlerKoşul ifadesi. Yalnız --wafConditionEnabled true iken açılır
--wafLogSuppressionConditionHangi WAF olaylarının günlüğe yazılmayacağını belirlerKoşul ifadesi

Blacklist ​

AlanNe yaparArkasına ne yazılır
--blacklistProtectionKara listedeki kaynaklara karşı korumayı açartrue · false
--blacklistProtectionCategories.NHangi kara liste kategorilerinin uygulanacağını belirlerKategori adı; her kategori kendi indeksiyle (varsayılan user)
--blacklistIpsBu servise özel kara liste adreslerini belirlerAdres listesi; çok satırlı metin alanıdır
--blacklistExclusionsKara listeden muaf tutulacak adresleri belirlerAdres listesi; çok satırlı metin alanıdır

Gövde İşleme ​

AlanNe yaparArkasına ne yazılır
--bodyParseLimitİstek gövdesinin en çok ne kadarının işleneceğini belirler1–262144 arası tam sayı; birim kB
--bodyMaxLogSizeGövdenin en çok ne kadarının günlüğe yazılacağını belirler0 ya da daha büyük tam sayı; birim kB
--dontBufferRequestGövdenin tamamı beklenmeden, süreli beklenmesini açartrue · false (varsayılan false)
--waitForBodyMs.valGövdenin ne kadar bekleneceğini belirlerSayı (varsayılan 300). Yalnız --dontBufferRequest true iken açılır
--waitForBodyMs.unitO sürenin birimini seçerms (varsayılan) · s

Kural Yönetimi ve Örnekleme ​

AlanNe yaparArkasına ne yazılır
--createRulePolicyÖğrenilen kuralların ne kadar dar yazılacağını seçerloose · onlyVar · strict
--smartSamplingÖğrenme günlüğünde aynı şekildeki isteklerin tekrarının azaltılmasını açartrue (varsayılan) · false
--smartSamplingCopiesHer istek şekli için kaç tam kopyanın saklanacağını belirler5–10000 arası tam sayı (varsayılan 50). Yalnız --smartSampling true iken açılır

Güvenilir Kaynaklar ​

Öğrenmenin yalnız belirli kaynaklardan gelen trafikten yapılmasını sağlar.

AlanNe yaparArkasına ne yazılır
--smartLearningGüvenilir kaynak öğrenmesini açartrue · false (varsayılan false)
--smartLearning_ipHangi adresten gelen trafiğin güvenilir sayılacağını belirlerAdres. Yalnız --smartLearning true iken açılır
--smartLearning_cookieHangi çerezi taşıyan isteğin güvenilir sayılacağını belirlerÇerez adı. Yalnız --smartLearning true iken açılır
--smartLearning_headerHangi başlığı taşıyan isteğin güvenilir sayılacağını belirlerBaşlık adı. Yalnız --smartLearning true iken açılır
--fpcFrequencyGüvenilir kaynaktan öğrenmenin hangi sıklıkla yapılacağını belirlerSıklık değeri

AI Öğrenme ​

Trafiğin genelinden kural çıkarmayı ve çıkarımın hangi eşikleri sağlaması gerektiğini yönetir.

AlanNe yaparArkasına ne yazılır
--collectiveLearningTrafiğin genelinden öğrenmeyi açartrue · false (varsayılan false)
--collectiveLearningFrequencyÖğrenmenin hangi sıklıkla yapılacağını belirlerSıklık değeri. Yalnız --collectiveLearning true iken açılır
--countryFilter_SL.NÖğrenmede hangi ülkelerden gelen trafiğin sayılacağını belirlerÜlke değeri; her ülke kendi indeksiyle, aynı ülke iki kez yazılamaz
--onlyBrowsersYalnız tarayıcı isteklerinin öğrenmeye katılmasını sağlartrue · false (varsayılan false)
--onlyDomainsYalnız geçerli alan adı taşıyan isteklerin öğrenmeye katılmasını sağlartrue · false (varsayılan false)
--skipBlacklistIpsKara listedeki adreslerden gelen trafiğin öğrenmeye katılmamasını sağlartrue · false (varsayılan false)
--minReq_SLBir kuralın çıkarılması için gereken en az istek sayısını belirler1 ya da daha büyük tam sayı (varsayılan 10)
--minCi_SLGereken en az istemci sayısını belirler1 ya da daha büyük tam sayı
--minCountry_SLGereken en az ülke sayısını belirler1 ya da daha büyük tam sayı
--minNetwork_SLGereken en az ASN ağ sayısını belirler1 ya da daha büyük tam sayı

Analiz ​

AlanNe yaparArkasına ne yazılır
--analyzeBelirli bir kaynağın isteklerinin ayrıntılı incelenmesini açartrue · false (varsayılan false)
--analyze_ipHangi adresin isteklerinin inceleneceğini belirlerAdres. Yalnız --analyze true iken açılır
--analyze_cookieHangi çerezi taşıyan isteklerin inceleneceğini belirlerÇerez adı. Yalnız --analyze true iken açılır
--analyze_headerHangi başlığı taşıyan isteklerin inceleneceğini belirlerBaşlık adı. Yalnız --analyze true iken açılır

E-posta Raporu ​

Zamanlanmış WAF raporunun kime, hangi biçimde ve hangi sıklıkla gönderileceğini belirler.

AlanNe yaparArkasına ne yazılır
--emailReportZamanlanmış rapor gönderimini açartrue · false (varsayılan false)
--emailAddresses.NRaporun hangi adreslere gönderileceğini belirlerE-posta adresi; her adres kendi indeksiyle. Yalnız --emailReport true iken açılır
--emailFileTypes.NRaporun hangi biçimde ekleneceğini seçerpdf (varsayılan) · xlsx
--emailFrequency.NRaporun hangi sıklıkla gönderileceğini seçerdaily (varsayılan) · weekly · monthly · annual

Bildirimler ​

Eşik aşıldığında üretilen uyarının hangi kanallardan iletileceğini belirler.

AlanNe yaparArkasına ne yazılır
--notifyBlockRateSaniyedeki engelleme sayısının hangi eşiği aşmasıyla uyarı üretileceğini belirler1 ya da daha büyük tam sayı. Boş bırakıldığında bu eşik uygulanmaz
--notifyAttackRateSaniyedeki saldırı tespiti sayısının hangi eşiği aşmasıyla uyarı üretileceğini belirler1 ya da daha büyük tam sayı. Boş bırakıldığında bu eşik uygulanmaz
--notifyEmail.NUyarının hangi e-posta adreslerine gönderileceğini belirlerE-posta adresi; her adres kendi indeksiyle
--notifySms.NUyarının hangi telefon numaralarına gönderileceğini belirlerTelefon numarası; her numara kendi indeksiyle
--notifySnmpUyarının SNMP bildirimi olarak gönderilmesini açartrue · false (varsayılan false)
--notifyUiUyarının yönetim arayüzünde gösterilmesini açartrue (varsayılan) · false

Gelişmiş Bildirimler ​

Belirli bir kapsamda, belirli bir pencerede sayılan olayların eşiği aşmasıyla uyarı üretir. Her girdi kendi indeksiyle yazılır.

AlanNe yaparArkasına ne yazılır
--advancedNotifications.N.scopeSayımın hangi kapsamda tutulacağını seçerglobal · src_ip · subnet · country · asn · nettype_group · nettype_category · host
--advancedNotifications.N.maskV4subnet kapsamında IPv4 ağ maskesini belirlerMaske uzunluğu (varsayılan 24). Yalnız scope subnet iken açılır
--advancedNotifications.N.maskV6subnet kapsamında IPv6 ağ maskesini belirlerMaske uzunluğu (varsayılan 64). Yalnız scope subnet iken açılır
--advancedNotifications.N.countTypeHangi olayların sayılacağını seçerblock engellenen istekler · detect tespit edilen saldırılar
--advancedNotifications.N.window.valSayımın hangi pencerede tutulacağını belirlerSayı; pencere 30 saniyeden kısa, 1 saatten uzun olamaz
--advancedNotifications.N.window.unitO pencerenin birimini seçers · m · h
--advancedNotifications.N.limitPencere başına kaç olayda uyarı üretileceğini belirler1 ya da daha büyük tam sayı
--advancedNotifications.N.reportFileTypes.NUyarı iletisine hangi biçimde rapor ekleneceğini seçerpdf · xlsx. Boş bırakıldığında ileti eksiz gönderilir

WAF Bilgi İçeriği ​

Engelleme sayfasına ve günlük kayıtlarına yazılan saldırı ayrıntılarını belirler.

AlanNe yaparArkasına ne yazılır
--wafInfoPayloadSaldırı deseninin bilgi içeriğine yazılıp yazılmayacağını seçer1 yazılır · 0 yazılmaz. Boş bırakıldığında alan tanımsız kalır
--wafInfoFields.NBilgi içeriğinde hangi ayrıntıların yer alacağını seçerscore · severity · scope · monitor · name · desc · category · cwe · mitre · capec · owaspWeb · owaspApi · target. Varsayılan olarak score, scope ve monitor seçilidir
--wafInfoLangBilgi içeriğinin dilini seçeren (varsayılan) · tr
--wafInfoDescSaldırı açıklamasının hangi dilde yazılacağını seçeren · tr. Boş bırakıldığında açıklama yazılmaz. Yerine --wafInfoFields.N ile --wafInfoLang ikilisi geçmiştir
--wafInfoSeveritySaldırı önem derecesinin hangi dilde yazılacağını seçeren · tr. Boş bırakıldığında yazılmaz. Yerine --wafInfoFields.N ile --wafInfoLang ikilisi geçmiştir

Toplu Güncelleme ​

update-many, aynı değişikliği birçok WAF ayarı kaydına birden uygular. Yazım sırası her kaynakta aynıdır.

Adım 1 Hedefi seç
Tek zorunlu alan target: selected listeden seçilen kayıtlar, all koleksiyonun tamamı.
Adım 2 Yazılacak alanları ekle
Yalnız birçok kayda aynı değerle yazılabilen alanlar bulunur; kimlik, ad ve kural seti eşitleme gibi kayda özgü alanlar bu komutta yer almaz.
Adım 3 Hedefleri listeden işaretle
target selected yazılıp kimlik verilmediğinde onay kutulu seçim listesi açılır.
Adım 4 Onayla
Kaç kaydın etkileneceğini yazan uyarı çıkar; onay sözcüğü yazılmadan hiçbir şey yazılmaz.
AlanDurumDeğer
targetZorunluselected — listeden seçilen kayıtlar · all — koleksiyonun tamamı
--ids.NKoşullutarget selected için hedef kimlikleri. Tab listesinde önerilmez: hedefler seçim listesinden işaretlenir. Betikte ve boru hattında elle yazılır.
--onErrorİsteğe bağlıabort (varsayılan) — hedeflerden biri bile doğrulamadan geçmezse hiçbir şey yazılmaz · skip — geçen hedefler yazılır

Yazılabilen Alanlar ​

TR7 WEB-CLI · update-many · Tab çıktısı
# komuttan sonra Tab
admin@TR7LBWAF01> waf options update-many
--info target
 
# target alanından sonra Tab
admin@TR7LBWAF01> waf options update-many target
all selected
admin@TR7LBWAF01>  

Bu komutun toplu güncelleme listesi, tekil update komutundaki alanların neredeyse tamamını içerir (71 alan). Alanların ne işe yaradığı yukarıdaki bölümlerde yazılıdır.

Tekil komutta bulunup burada olmayan alanlar ve nedenleri:

AlanNeden yok
poolIdHangi vService üzerinde çalışılacağı, toplu komutta seçim listesiyle belirlenir
--syncWithDefaultFwRulesŞemada toplu yazıma kapalı işaretlidir (batch: false): birden çok servisin kural setini sessizce yeniden kurmamak için

Hedef Seçimi ve Onay ​

TR7 WEB-CLI · seçim listesi ve onay
admin@TR7LBWAF01> waf options update-many target selected --owaspProtectionLevel 8
 
?  Hedef nesneler
    boşluk: işaretle · ctrl+a: tümü · enter: onayla
    Filtre: (yazarak filtreleyin) · esc: iptal
 
  [x] <kayıt-1>
  [x] <kayıt-2>
  [ ] <kayıt-3>
    2 seçili / 3
 
⚠  2 nesne güncellenecek
    <kayıt-1>, <kayıt-2>
 
Devam etmek için "evet" yazın: evet
admin@TR7LBWAF01>  
TR7 WEB-CLI · tüm koleksiyon ve betik yazımı
# koleksiyonun tamamı: liste açılmaz, doğrudan onay gelir
admin@TR7LBWAF01> waf options update-many target all --dontWafStaticContent true
⚠  Bu işlem koleksiyondaki TÜM nesneleri güncelleyecek
Devam etmek için "evet" yazın:
 
# betikte ya da boru hattında: hedefler elle yazılır, liste açılmaz
admin@TR7LBWAF01> waf options update-many target selected \
--ids.0 <kimlik-1> --ids.1 <kimlik-2> --owaspProtectionLevel 8 --onError skip
admin@TR7LBWAF01>  

Ekran dili kullanıcıya bağlıdır

Seçim listesindeki ve onay ekranındaki metinler, oturum açan kullanıcının dil tercihine göre gelir. İngilizce arayüzde onay sözcüğü yes, Türkçe arayüzde evet olur.

Toplu güncellemenin ayrıntılı davranışı — hangi alanların toplu yazılabildiği ve her hedef için dönen rapor — API Commands sayfasındadır.

Örnekler ​

TR7 WEB-CLI · A) Koruma ve engelleme sayfası
admin@TR7LBWAF01> waf options update poolId <vservice> \
--structureChecks true --argumentChecks true --owaspProtectionLevel 8 \
--blockingContentSource profile --blockingContentProfile <profil> \
--blockingStatusCode 403
admin@TR7LBWAF01>  
TR7 WEB-CLI · B) Öğrenme ve bildirim
# trafiğin genelinden öğrenme, eşiklerle
admin@TR7LBWAF01> waf options update poolId <vservice> \
--collectiveLearning true --minReq_SL 50 --minCi_SL 10 \
--onlyBrowsers true --skipBlacklistIps true
 
# saniyede 20 engellemede uyar, e-posta ve arayüz bildirimi
admin@TR7LBWAF01> waf options update poolId <vservice> \
--notifyBlockRate 20 --notifyEmail.0 guvenlik@kurum.com.tr --notifyUi true
 
# kaynak adres başına 5 dakikada 100 engelleme olursa uyar
admin@TR7LBWAF01> waf options update poolId <vservice> \
--advancedNotifications.0.scope src_ip --advancedNotifications.0.countType block \
--advancedNotifications.0.window.val 5 --advancedNotifications.0.window.unit m \
--advancedNotifications.0.limit 100
admin@TR7LBWAF01>  

Bilinmesi Gerekenler ​

  • Ayar bir vService'e aittir. Her komutta poolId ile hangi servisin ayarları üzerinde çalışıldığı belirtilir.
  • Zorunlu alanlar -- almaz. poolId ve toplu komuttaki target alan adı ile değeri yan yana yazılır; öteki alanlar --alan değer biçimindedir. Ayrıntı API Commands sayfasındadır.
  • Koruma düzeyinde sayı küçüldükçe sıkılık artar. 24 en gevşek, 2 en sıkı düzeydir; sıkı düzeyler yanlış engelleme olasılığını yükseltir.
  • --syncWithDefaultFwRules bir tetiktir. Saklanan bir ayar değildir: true yazıldığında servisin varsayılan kural seti koruma düzeyine göre yeniden kurulur. Toplu güncelleme bu alanı kabul etmez.
  • Engelleme içeriği ya profilden ya elle gelir. --blockingContentSource profile iken profil alanı, boş bırakıldığında ise içerik ve içerik türü alanları açılır.
  • Koşullu engelleme sayfaları sırayla değerlendirilir. --blockingPageRules.N girdileri, genel engelleme sayfasının yerine geçer; durum kodu boş bırakılan girdilerde genel kod kullanılır.
  • Muafiyet koşulu anahtarına bağlıdır. --wafCondition yalnız --wafConditionEnabled true iken listelenir.
  • Öğrenmenin iki ayrı yolu vardır. Güvenilir kaynaklardan öğrenme --smartLearning, trafiğin genelinden öğrenme --collectiveLearning ile açılır; ikisi birbirinden bağımsızdır.
  • Bilgi içeriğinde iki alan artık yerini bırakmıştır. --wafInfoDesc ve --wafInfoSeverity alanlarının yerine --wafInfoFields.N ile --wafInfoLang ikilisi geçmiştir; eski alanlar var olan profillerin geçerli kalması için korunmaktadır.
  • Kurallar ayrı komutlarda yönetilir. Host grupları waf host-groups, yol kuralları waf fw-rules, denetim parçaları waf rule-parts komutundadır.