Yeni bir page type'ı elle nasıl eklerim?
Kısa cevap
WAF Management sekmesinde host grubunun mod kartı altındaki N page types satırına tıklanır; açılan Page Types sekmesinde Add ile form açılır. Formda Path girilir (/ ile başlar; *, ?, [ ], { } gibi joker içeren değer kendiliğinden glob kural olur ve altında test tablosu belirir), Allowed Methods seçilir (varsayılan Any methods; Multiple methods ya da None), yalnızca glob kuralda Path Length ve Path Depth tanımlanır (varsayılan No restriction), path'in imza taraması isteniyorsa OWASP işaretlenir (varsayılan işaretsiz). Formun Add butonuyla kural ayrı bir onay ya da dağıtım adımı olmadan uygulanır; aynı grupta aynı path varsa Rule collision hatası verilir. Check Fields denetimleri kural eklendikten sonra detay panelinin sekmelerinden tanımlanır. Aynı kural WEB-CLI'da waf fw-rules add ile de yazılır.
Sorun: Bir Path İçin Kural Yok
Yeni yayına alınacak bir uç nokta ya da henüz trafik almamış bir sayfa için öğrenme beklenmeden pozitif denetim (izinli metot, path sınırı, path imza taraması, alan kısıtları) tanımlanmak isteniyor. Kural tanımlanmadıkça bu path'e gelen istekler host grubunun Any Paths kuralıyla denetlenir.
Çözüm: İki Yöntem
| Durumunuz | Uygun yöntem |
|---|---|
| Tek tek kural, arayüzden | Yöntem 1: Add formu |
| Betik ya da komut satırı | Yöntem 2: WEB-CLI |
| Uygulamanın OpenAPI / Swagger tanımı var | Belgeden toplu üretim → OpenAPI / Swagger dosyamdan otomatik kural üretebilir miyim? |
| Başka bir host grubunda hazır kural seti var | Dosyayla taşıma → Bir host group'un kural setini JSON olarak dışa aktarıp başka bir ortama taşıyabilir miyim; hangi ayarlar bu dosyaya girmez? |
Yöntem 1: Add Formu Önerilen
- Nasıl çalışır Kuralın path'i ve path ayarları forma yazılır; Check fields denetimleri kural eklendikten sonra detay panelinden eklenir.
- Nerede açılır Left Monitor Panel → WAF-Protected vServices → vService → WAF Management → host grubunun mod kartı → N page types → Add
- Gereksinim vService'te WAF koruması etkin (Bir vService'te WAF korumasını nasıl etkinleştiririm?); kuralın gideceği host grubu tanımlı
- vService tipi WAF koruması etkin HTTP vService
Adım adım yapılandırma
Left Monitor Panel'de WAF-Protected vServices sekmesinde vService'e tıklanır; açılan ekranda WAF Management sekmesi seçilir (ekrana erişim).
Kural belirli bir host deseni için yazılacaksa ve o grup henüz yoksa önce Virtual Host Groups bandından eklenir (Host Group nasıl eklenir; Virtual Host Patterns alanına ne yazılır?). Varsayılan host grubu her vService'te hazır bulunur.
İlgili host grubunun mod kartı altındaki N page types satırına (baştaki kalem ikonu ya da metin) tıklanır; Page types - grup adı başlıklı sekme açılır (varsayılan grup için Default host group).
Araç çubuğundaki Add tıklanır; Add başlıklı form açılır. Virtual Host Group satırı kuralın ekleneceği grubu salt okunur gösterir (Virtual Host Group).
Path alanına istek yolu yazılır (form / ile açılır). Değer / ile başlamalıdır (** içeren glob desenler, ör. **/login, / olmadan da kabul edilir); büyük/küçük harfe duyarlıdır ve sorgu dizesi yazılmaz. Sonuna / konmaz: istek path'inin sondaki / karakteri eşleştirmeden önce atıldığı için /api/login/ biçimindeki exact kural /api/login/ isteğiyle eşleşmez; istek /api/login olarak karşılaştırılır. Değer *, ?, [ ], { } gibi bir joker içeriyorsa kural glob olur; alanın sağındaki küre ikonu etkinleşir, altında Input / Result test tablosu belirir (Glob pattern'leri (*, **) nasıl yazılır; path test aracı nasıl kullanılır?).
Allowed Methods listesinden Any Methods (varsayılan; metot denetimi yok), Multiple Methods (açılan listeden en az bir metot işaretlenir) ya da None (her metot ihlal sayılır) seçilir (Bir sayfaya yalnızca belirli HTTP metotlarına izin verebilir miyim (Allowed Methods)?).
Alanlar yalnızca glob path'te ve Structure Checks açıkken görünür. İşleç olarak No restriction (varsayılan), Less than or equal to, Equals to, Greater than or equal to ya da Range seçilir ve değer girilir (Path Length ve Path Depth kısıtları ne işe yarar?).
Path bölümünün imza taraması isteniyorsa OWASP işaretlenir (yeni kuralda varsayılan işaretsiz); işaretlenince OWASP Exclusions alanı belirir ve taramadan çıkarılacak imzalar seçilebilir (Page Type seviyesinde OWASP taramasını açıp kapatmak ne anlama gelir?).
Formun altındaki Add tıklanır; buton formda hata kalmadığında etkindir. Kural ayrı bir onay ya da dağıtım adımı olmadan uygulanır ve mod kartındaki N page types sayısı artar. Aynı host grubunda aynı path'e sahip bir kural varsa kayıt Rule collision hatasıyla reddedilir. Cluster kurulumunda varsayılan auto-sync ile değişiklik eş cihaza da otomatik gönderilir; Manual Sync Mode açıksa Synchronize ile elle gönderilir.
Check fields ayrıca eklenir
Yeni kuralın Check Fields kolonu boş başlar. Exact kural, tanımlamadığı Check fields bölümlerini path'e uyan glob kurallardan ve Any paths'ten tamamlar; glob kuralda korunması gereken bölümlerin ortak kuralı kuralın kendisinde tanımlanır. Kurala özel alan denetimi için listede yeni satıra tıklanır, sağdaki detay panelinde ilgili sekme (Query, Header, JSON, Xml, Form, Raw) seçilip Add Common Rule for … ya da Add Argument Rule for … kullanılır (Bir sayfada yalnızca izin verdiğim query parametrelerinin gelmesini nasıl sağlarım (Allowed Query Parameters)?).
Doğrulama
Page types listesinde yeni satıra tıklanır; sağdaki detay panelinin Path sekmesine bakılır.
Allowed methods ve OWASP check girilen değerlerleKuralın path'ine kuralı ihlal eden bir istek gönderilir (ör. izin verilmeyen metotla) ve Event Logs kaydının önizlemesinde Request & Location sekmesindeki Matching Path Rules satırına bakılır.
Yeni kuralın path'iYöntem 2: WEB-CLI
- Nasıl çalışır Kural
waf fw-rules addkomutuyla yazılır; alanlar arayüzdeki formla aynıdır. - Nerede açılır WEB-CLI →
waf host-groups list·waf fw-rules add·waf fw-rules list - Gereksinim WEB-CLI erişimi; vService'te WAF koruması etkin
- vService tipi WAF koruması etkin HTTP vService
Adım adım yapılandırma
Kuralın gideceği host grubunun kimliği listeden okunur; varsayılan grubun kimliği defaultHost'tur (waf host-groups):
waf host-groups list poolId <vService>Örnek, /api/v1/login için yalnızca POST'a izin veren ve path'i imza taramasına alan exact kuraldır (zorunlu alanlar):
waf fw-rules add poolId <vService> hostGroupId <grup> --path.input /api/v1/login --allowedMethods.type multiple --allowedMethods.input.0 POST --argOwasp trueJoker içeren path tek tırnakla yazılır (ör. --path.input '/api/v*/login') ve kendiliğinden glob kural olur (istek yolu). WEB-CLI'da --allowedMethods.input.N için yalnızca GET, HEAD, OPTIONS, POST, PUT, PATCH, DELETE, TRACE ve CONNECT seçilebilir. Komut başarılı olduğunda çıktı vermez.
waf fw-rules list poolId <vService> hostGroupId <grup>Doğrulama
Kural listesi yeniden alınır.
Komut: waf fw-rules list poolId <vService> hostGroupId <grup>
/api/v1/login satırıSık Yapılan Hatalar
- Exact path'in sonuna
/koymak. İstek path'inin sondaki/karakteri atıldığı için/api/login/exact kuralı/api/login/isteğiyle eşleşmez;/api/loginyazılır. - Büyük/küçük harfe dikkat etmemek. Eşleşme harfe duyarlıdır;
/Loginkuralı/loginisteğini karşılamaz. - Check fields'ın formda tanımlanmasını beklemek. Alan denetimleri kural eklendikten sonra detay panelinin sekmelerinden eklenir.
- Exact kuralın Any paths'ten metot sınırı devralacağını sanmak. Path ayarları devralınmaz; kural Any Methods ile eklenirse o path'te metot kısıtı olmaz (Bir istek birden fazla page type'a uyarsa kurallar nasıl uygulanır (exact path önceliği, glob kurallarının Any Paths ile birleşmesi)?).
- OWASP'ı işaretsiz bırakıp path taramasının sürdüğünü sanmak. Yeni kuralda OWASP varsayılan olarak işaretsizdir; işaretlenmezse bu path için Any paths'in path taraması da uygulanmaz.
Dokümantasyonda nasıl yapılır
