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
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ıra | Alan | Durum | Değer |
|---|---|---|---|
| 1 | poolId | Zorunlu | Ayarları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
| Alan | Ne yapar | Arkasına ne yazılır |
|---|---|---|
--structureChecks | İsteğin yapısal denetimlerden geçmesini açar | true · false (varsayılan false) |
--argumentChecks | İstek argümanlarının denetlenmesini açar | true · false (varsayılan false) |
--maxAllowedArguments | Bir istekte en çok kaç argümana izin verileceğini belirler | 1 ya da daha büyük tam sayı (varsayılan 15) |
--owaspProtectionLevel | OWASP kural setinin ne kadar sıkı uygulanacağını seçer | 24 — Elementary · 16 — Normal · 8 — Tight · 4 — Very tight · 2 — Aggressive. Sayı küçüldükçe koruma sıkılaşır |
--maxOwaspExclusions | Bir kuralda en çok kaç OWASP istisnası tanımlanabileceğini sınırlar | 1 ya da daha büyük tam sayı |
--syncWithDefaultFwRules | Servisin varsayılan WAF kural setinin koruma düzeyine göre yeniden kurulmasını tetikler | true (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.
| Alan | Ne yapar | Arkasına ne yazılır |
|---|---|---|
--blockingContentSource | Engelleme içeriğinin nereden geleceğini seçer | profile içerik profilinden (varsayılan) · boş bırakıldığında içerik elle yazılır |
--blockingContentProfile | Hangi içerik profilinin kullanılacağını seçer | Sayfa içeriği profili. Yalnız --blockingContentSource profile iken açılır |
--blockingContent | Elle yazılan engelleme içeriğini belirler | İçerik metni (varsayılan BLOCKED). Yalnız kaynak profile dışında iken açılır |
--blockingContentType | Elle yazılan içeriğin türünü seçer | text/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 |
--blockingStatusCode | Engellenen isteğe hangi HTTP durum kodunun döndürüleceğini seçer | Durum kodu (varsayılan 418); küme 2xx, 3xx, 4xx ve 5xx kodlarını kapsar |
--blockingPageRules.N.cond | Farklı bir engelleme sayfasının hangi koşulda gösterileceğini belirler | Koşul ifadesi; her kural kendi indeksiyle |
--blockingPageRules.N.pageProfile | O koşul sağlandığında hangi sayfa profilinin gösterileceğini seçer | Sayfa içeriği profili |
--blockingPageRules.N.statusCode | O koşulda döndürülecek durum kodunu seçer | Durum kodu. Boş bırakıldığında genel engelleme kodu kullanılır |
WAF Kapsamı
| Alan | Ne yapar | Arkasına ne yazılır |
|---|---|---|
--dontWafStaticContent | Statik içerik isteklerinin WAF denetiminden geçirilmemesini sağlar | true (varsayılan) · false |
--decodePaths | İstek yollarının denetimden önce çözülmesini açar | true (varsayılan) · false |
--wafConditionEnabled | WAF muafiyeti koşulunun uygulanmasını açar | true · false (varsayılan false) |
--wafCondition | Hangi isteklerin WAF denetiminden muaf tutulacağını belirler | Koşul ifadesi. Yalnız --wafConditionEnabled true iken açılır |
--wafLogSuppressionCondition | Hangi WAF olaylarının günlüğe yazılmayacağını belirler | Koşul ifadesi |
Blacklist
| Alan | Ne yapar | Arkasına ne yazılır |
|---|---|---|
--blacklistProtection | Kara listedeki kaynaklara karşı korumayı açar | true · false |
--blacklistProtectionCategories.N | Hangi kara liste kategorilerinin uygulanacağını belirler | Kategori adı; her kategori kendi indeksiyle (varsayılan user) |
--blacklistIps | Bu servise özel kara liste adreslerini belirler | Adres listesi; çok satırlı metin alanıdır |
--blacklistExclusions | Kara listeden muaf tutulacak adresleri belirler | Adres listesi; çok satırlı metin alanıdır |
Gövde İşleme
| Alan | Ne yapar | Arkasına ne yazılır |
|---|---|---|
--bodyParseLimit | İstek gövdesinin en çok ne kadarının işleneceğini belirler | 1–262144 arası tam sayı; birim kB |
--bodyMaxLogSize | Gövdenin en çok ne kadarının günlüğe yazılacağını belirler | 0 ya da daha büyük tam sayı; birim kB |
--dontBufferRequest | Gövdenin tamamı beklenmeden, süreli beklenmesini açar | true · false (varsayılan false) |
--waitForBodyMs.val | Gövdenin ne kadar bekleneceğini belirler | Sayı (varsayılan 300). Yalnız --dontBufferRequest true iken açılır |
--waitForBodyMs.unit | O sürenin birimini seçer | ms (varsayılan) · s |
Kural Yönetimi ve Örnekleme
| Alan | Ne yapar | Arkasına ne yazılır |
|---|---|---|
--createRulePolicy | Öğrenilen kuralların ne kadar dar yazılacağını seçer | loose · onlyVar · strict |
--smartSampling | Öğrenme günlüğünde aynı şekildeki isteklerin tekrarının azaltılmasını açar | true (varsayılan) · false |
--smartSamplingCopies | Her istek şekli için kaç tam kopyanın saklanacağını belirler | 5–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.
| Alan | Ne yapar | Arkasına ne yazılır |
|---|---|---|
--smartLearning | Güvenilir kaynak öğrenmesini açar | true · false (varsayılan false) |
--smartLearning_ip | Hangi adresten gelen trafiğin güvenilir sayılacağını belirler | Adres. Yalnız --smartLearning true iken açılır |
--smartLearning_cookie | Hangi çerezi taşıyan isteğin güvenilir sayılacağını belirler | Çerez adı. Yalnız --smartLearning true iken açılır |
--smartLearning_header | Hangi başlığı taşıyan isteğin güvenilir sayılacağını belirler | Başlık adı. Yalnız --smartLearning true iken açılır |
--fpcFrequency | Güvenilir kaynaktan öğrenmenin hangi sıklıkla yapılacağını belirler | Sıklık değeri |
AI Öğrenme
Trafiğin genelinden kural çıkarmayı ve çıkarımın hangi eşikleri sağlaması gerektiğini yönetir.
| Alan | Ne yapar | Arkasına ne yazılır |
|---|---|---|
--collectiveLearning | Trafiğin genelinden öğrenmeyi açar | true · false (varsayılan false) |
--collectiveLearningFrequency | Öğrenmenin hangi sıklıkla yapılacağını belirler | Sı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 |
--onlyBrowsers | Yalnız tarayıcı isteklerinin öğrenmeye katılmasını sağlar | true · false (varsayılan false) |
--onlyDomains | Yalnız geçerli alan adı taşıyan isteklerin öğrenmeye katılmasını sağlar | true · false (varsayılan false) |
--skipBlacklistIps | Kara listedeki adreslerden gelen trafiğin öğrenmeye katılmamasını sağlar | true · false (varsayılan false) |
--minReq_SL | Bir kuralın çıkarılması için gereken en az istek sayısını belirler | 1 ya da daha büyük tam sayı (varsayılan 10) |
--minCi_SL | Gereken en az istemci sayısını belirler | 1 ya da daha büyük tam sayı |
--minCountry_SL | Gereken en az ülke sayısını belirler | 1 ya da daha büyük tam sayı |
--minNetwork_SL | Gereken en az ASN ağ sayısını belirler | 1 ya da daha büyük tam sayı |
Analiz
| Alan | Ne yapar | Arkasına ne yazılır |
|---|---|---|
--analyze | Belirli bir kaynağın isteklerinin ayrıntılı incelenmesini açar | true · false (varsayılan false) |
--analyze_ip | Hangi adresin isteklerinin inceleneceğini belirler | Adres. Yalnız --analyze true iken açılır |
--analyze_cookie | Hangi çerezi taşıyan isteklerin inceleneceğini belirler | Çerez adı. Yalnız --analyze true iken açılır |
--analyze_header | Hangi başlığı taşıyan isteklerin inceleneceğini belirler | Baş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.
| Alan | Ne yapar | Arkasına ne yazılır |
|---|---|---|
--emailReport | Zamanlanmış rapor gönderimini açar | true · false (varsayılan false) |
--emailAddresses.N | Raporun hangi adreslere gönderileceğini belirler | E-posta adresi; her adres kendi indeksiyle. Yalnız --emailReport true iken açılır |
--emailFileTypes.N | Raporun hangi biçimde ekleneceğini seçer | pdf (varsayılan) · xlsx |
--emailFrequency.N | Raporun hangi sıklıkla gönderileceğini seçer | daily (varsayılan) · weekly · monthly · annual |
Bildirimler
Eşik aşıldığında üretilen uyarının hangi kanallardan iletileceğini belirler.
| Alan | Ne yapar | Arkasına ne yazılır |
|---|---|---|
--notifyBlockRate | Saniyedeki engelleme sayısının hangi eşiği aşmasıyla uyarı üretileceğini belirler | 1 ya da daha büyük tam sayı. Boş bırakıldığında bu eşik uygulanmaz |
--notifyAttackRate | Saniyedeki saldırı tespiti sayısının hangi eşiği aşmasıyla uyarı üretileceğini belirler | 1 ya da daha büyük tam sayı. Boş bırakıldığında bu eşik uygulanmaz |
--notifyEmail.N | Uyarının hangi e-posta adreslerine gönderileceğini belirler | E-posta adresi; her adres kendi indeksiyle |
--notifySms.N | Uyarının hangi telefon numaralarına gönderileceğini belirler | Telefon numarası; her numara kendi indeksiyle |
--notifySnmp | Uyarının SNMP bildirimi olarak gönderilmesini açar | true · false (varsayılan false) |
--notifyUi | Uyarının yönetim arayüzünde gösterilmesini açar | true (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.
| Alan | Ne yapar | Arkasına ne yazılır |
|---|---|---|
--advancedNotifications.N.scope | Sayımın hangi kapsamda tutulacağını seçer | global · src_ip · subnet · country · asn · nettype_group · nettype_category · host |
--advancedNotifications.N.maskV4 | subnet kapsamında IPv4 ağ maskesini belirler | Maske uzunluğu (varsayılan 24). Yalnız scope subnet iken açılır |
--advancedNotifications.N.maskV6 | subnet kapsamında IPv6 ağ maskesini belirler | Maske uzunluğu (varsayılan 64). Yalnız scope subnet iken açılır |
--advancedNotifications.N.countType | Hangi olayların sayılacağını seçer | block engellenen istekler · detect tespit edilen saldırılar |
--advancedNotifications.N.window.val | Sayımın hangi pencerede tutulacağını belirler | Sayı; pencere 30 saniyeden kısa, 1 saatten uzun olamaz |
--advancedNotifications.N.window.unit | O pencerenin birimini seçer | s · m · h |
--advancedNotifications.N.limit | Pencere başına kaç olayda uyarı üretileceğini belirler | 1 ya da daha büyük tam sayı |
--advancedNotifications.N.reportFileTypes.N | Uyarı iletisine hangi biçimde rapor ekleneceğini seçer | pdf · 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.
| Alan | Ne yapar | Arkasına ne yazılır |
|---|---|---|
--wafInfoPayload | Saldırı deseninin bilgi içeriğine yazılıp yazılmayacağını seçer | 1 yazılır · 0 yazılmaz. Boş bırakıldığında alan tanımsız kalır |
--wafInfoFields.N | Bilgi içeriğinde hangi ayrıntıların yer alacağını seçer | score · severity · scope · monitor · name · desc · category · cwe · mitre · capec · owaspWeb · owaspApi · target. Varsayılan olarak score, scope ve monitor seçilidir |
--wafInfoLang | Bilgi içeriğinin dilini seçer | en (varsayılan) · tr |
--wafInfoDesc | Saldırı açıklamasının hangi dilde yazılacağını seçer | en · tr. Boş bırakıldığında açıklama yazılmaz. Yerine --wafInfoFields.N ile --wafInfoLang ikilisi geçmiştir |
--wafInfoSeverity | Saldırı önem derecesinin hangi dilde yazılacağını seçer | en · 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.
target: selected listeden seçilen kayıtlar, all koleksiyonun tamamı. target selected yazılıp kimlik verilmediğinde onay kutulu seçim listesi açılır. | Alan | Durum | Değer |
|---|---|---|
target | Zorunlu | selected — listeden seçilen kayıtlar · all — koleksiyonun tamamı |
--ids.N | Koşullu | target 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
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:
| Alan | Neden yok |
|---|---|
poolId | Hangi 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
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
Bilinmesi Gerekenler
- Ayar bir vService'e aittir. Her komutta
poolIdile hangi servisin ayarları üzerinde çalışıldığı belirtilir. - Zorunlu alanlar
--almaz.poolIdve toplu komuttakitargetalan adı ile değeri yan yana yazılır; öteki alanlar--alan değerbiçimindedir. Ayrıntı API Commands sayfasındadır. - Koruma düzeyinde sayı küçüldükçe sıkılık artar.
24en gevşek,2en sıkı düzeydir; sıkı düzeyler yanlış engelleme olasılığını yükseltir. --syncWithDefaultFwRulesbir tetiktir. Saklanan bir ayar değildir:trueyazı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 profileiken 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.Ngirdileri, 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.
--wafConditionyalnız--wafConditionEnabled trueiken listelenir. - Öğrenmenin iki ayrı yolu vardır. Güvenilir kaynaklardan öğrenme
--smartLearning, trafiğin genelinden öğrenme--collectiveLearningile açılır; ikisi birbirinden bağımsızdır. - Bilgi içeriğinde iki alan artık yerini bırakmıştır.
--wafInfoDescve--wafInfoSeverityalanlarının yerine--wafInfoFields.Nile--wafInfoLangikilisi 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-partskomutundadır.
