waf fw-rules
waf fw-rules komutu, bir host grubunun yol kurallarını yönetir. Her kural bir istek yolunu karşılar ve o yola gelen isteğin hangi metotlarla, ne uzunlukta ve ne derinlikte olabileceğini belirler. Kuralın ayrıntılı denetim parçaları ayrı bir komutta tutulur.
Komut Özeti
Zorunlu Alanlar
Her komutta CLI kuralın yerini aşağıdaki sırayla, tek tek ister; biri yazılmadan sonrakini göstermez. Alanlar alan adı ile değeri birlikte yazılır.
| Sıra | Alan | Durum | Değer |
|---|---|---|---|
| 1 | poolId | Zorunlu | Kuralın bağlı olduğu vService kaydı |
| 2 | hostGroupId | Zorunlu | Kuralın bağlı olduğu host grubu kaydı; seçilen vService'in grupları listelenir |
| 3 | path.input | Koşullu zorunlu | Yalnız add komutunda; karşılanacak istek yolu. --path.type varsayılanı exact olduğu için pratikte her zaman istenir |
| 3 | id | Zorunlu | Yalnız update komutunda; düzenlenecek kural |
Satıra bir -- alanı eklendiğinde path.input da --path.input biçiminde yazılır; Tab her adımda doğru yazımı gösterir.
add, list, show ve delete komutları ilk iki alanı ister; show ve delete komutlarında ardından kuralın kimliği alan adı olmadan yazılır. add-arg-headers komutunda ise iki alanın da adı yazılmaz (bkz. aşağıdaki bölüm). Kuralların adı yoktur: seçim listesinde eşleştikleri yolla, yerleşik genel kural ise default rule olarak görünür.
İstek Yolu
| Alan | Ne yapar | Arkasına ne yazılır |
|---|---|---|
--path.type | Kuralın belirli bir yolu mu yoksa bütün yolları mı karşıladığını belirler | exact belirli bir yol (varsayılan) · any bütün yollar; any yalnız yerleşik varsayılan kurala aittir |
--path.input | Karşılanacak yolu belirler | / ile başlayan istek yolu, örneğin /api/v1/login. Glob deseni (/api/*) kendiliğinden algılanır. --path.type exact iken zorunludur (bkz. sıra 3) |
Kuralın türünü sunucu hesaplar: birebir yollar exact, glob desenli yollar regex, yerleşik genel kural default olarak işaretlenir.
İzinli HTTP Metotları
| Alan | Ne yapar | Arkasına ne yazılır |
|---|---|---|
--allowedMethods.type | Metot kısıtının nasıl uygulanacağını seçer | any her metoda izin verir (varsayılan) · multiple yalnız seçilen metotlara izin verir · none hiçbir metoda izin vermez |
--allowedMethods.input.N | multiple seçildiğinde hangi metotlara izin verileceğini belirler | GET · HEAD · OPTIONS · POST · PUT · PATCH · DELETE · TRACE · CONNECT; her metot kendi indeksiyle. Yalnız --allowedMethods.type multiple iken açılır |
Yol Kısıtları
İki kısıt da aynı üç alandan oluşur: karşılaştırma işleci, değer ve aralık sonu.
| Alan | Ne yapar | Arkasına ne yazılır |
|---|---|---|
--pathSize.op | Yol uzunluğunun nasıl karşılaştırılacağını seçer | none kısıtlama yok (varsayılan) · <= · = · >= · - aralık |
--pathSize.val | Karşılaştırılacak uzunluğu belirler | Sayı; işleç - iken aralığın başı |
--pathSize.val2 | Aralığın sonunu belirler | Sayı; yalnız işleç - iken kullanılır |
--pathDepth.op | Yol derinliğinin nasıl karşılaştırılacağını seçer | none kısıtlama yok (varsayılan) · <= · = · >= · - aralık |
--pathDepth.val | Karşılaştırılacak derinliği belirler | Sayı; işleç - iken aralığın başı |
--pathDepth.val2 | Aralığın sonunu belirler | Sayı; yalnız işleç - iken kullanılır |
İşleç none değilse değer zorunludur
Şemadaki kısıt, işleç none dışında bir değer aldığında val alanının sayı olmasını, işleç - iken ayrıca val2 alanının da sayı olmasını gerektirir.
OWASP Denetimi
| Alan | Ne yapar | Arkasına ne yazılır |
|---|---|---|
--argOwasp | İstek yoluna OWASP denetimlerinin uygulanmasını açar | true · false (varsayılan false) |
--argOwaspExclusions.N | Bu kuralda uygulanmayacak OWASP kural anahtarlarını belirler | Kural anahtarı; her anahtar kendi indeksiyle, aynı anahtar iki kez yazılamaz |
add-arg-headers — Önerilen Header Kurallarını Ekleme
Host grubunun varsayılan kuralına, hazır header-argüman denetim setini (cookie, user-agent, content-type ve benzeri) ekler; setin var olan girdilerini yeniler. İstek gövdesi gerekmez.
| Sıra | Alan | Durum | Değer |
|---|---|---|---|
| 1 | poolId | Zorunlu | Üzerinde çalışılacak vService. Alan adı yazılmaz, değer doğrudan yazılır |
| 2 | hostGroupId | Zorunlu | Varsayılan kuralına ekleme yapılacak host grubu. Alan adı yazılmaz, değer doğrudan yazılır |
Aynı işlemin birden çok host grubuna tek seferde uygulanması waf host-groups komutundaki add-arg-headers ile yapılır.
Örnekler
Bilinmesi Gerekenler
- Kural bir host grubuna aittir. Her komutta
poolIdvehostGroupIdile hangi grubun kuralları üzerinde çalışıldığı belirtilir; gruplarwaf host-groupskomutundadır. - Zorunlu alanlar
--almaz.poolIdvehostGroupIdalan adı ile değeri yan yana yazılır; isteğe bağlı alanlar--alan değerbiçimindedir. Ayrıntı API Commands sayfasındadır. - Kuralın adı yoktur. Kayıtlar eşleştikleri yolla anılır; yerleşik genel kural listede
default ruleolarak görünür. anyyol tipi elle seçilmez. Şemadaki açıklamaya göre bu tip yalnız yerleşik varsayılan kurala aittir.- Karşılaştırma işleçleri tırnak ister.
<=,>=ve-gibi değerler kabuk tarafından yönlendirme sayılmasın diye çift tırnak içinde yazılır. - Ayrıntılı denetimler ayrı komuttadır. Sorgu, header, gövde ve benzeri bölgelerdeki anahtar ve değer denetimleri
waf rule-partskomutuyla yönetilir; kural yanıtlarında salt okunur olarak görünürler. - Silinen kural geri gelmez.
deletekomutu kuralı ve altındaki denetim parçalarını kaldırır.
