Aracılığıyla paylaş


Azure Front Door'da Azure Web Uygulaması Güvenlik Duvarı için özel kurallar

Azure Front Door'daki Azure Web Uygulaması Güvenlik Duvarı, web uygulamalarınıza erişimi tanımladığınız koşullara göre denetlemenize olanak tanır. Özel web uygulaması güvenlik duvarı (WAF) kuralı bir öncelik numarası, kural türü, eşleştirme koşulları ve bir eylemden oluşur.

İki tür özel kural vardır: eşleştirme kuralları ve hız sınırı kuralları. Eşleştirme kuralı, bir dizi eşleşen koşula göre erişimi denetler. Hız sınırı kuralı, eşleşen koşullara ve gelen isteklerin oranlarına göre erişimi denetler. Özel bir kuralın değerlendirilmesini önlemek için devre dışı bırakabilirsiniz ancak yapılandırmayı yine de koruyabilirsiniz.

Hız sınırlama hakkında daha fazla bilgi için bkz . Azure Front Door için hız sınırlama nedir?.

Öncelik, eylem türleri ve eşleştirme koşulları

Erişimi, öncelik numarasını, kural türünü, eşleşme koşulları dizisini ve eylemi tanımlayan özel bir WAF kuralıyla denetleyebilirsiniz.

  • Öncelik

    WAF kurallarının değerlendirme sırasını açıklayan benzersiz bir tamsayı. Düşük öncelikli değerlere sahip kurallar, daha yüksek değerlere sahip kurallardan önce değerlendirilir. Kural değerlendirmesi, Günlük dışında herhangi bir kural eyleminde durdurulur. Öncelik numaraları tüm özel kurallar arasında benzersiz olmalıdır.

  • Eylem

    WAF kuralı eşleştirilirse isteğin nasıl yönlendirilmiş olduğunu tanımlar. Bir istek özel bir kuralla eşleştiğinde uygulanacak aşağıdaki eylemlerden birini seçebilirsiniz.

    • İzin ver: WAF, isteğin işlemesine, WAF günlüklerinde bir girdiyi günlüğe kaydedip çıkış yapmasına olanak tanır.
    • Engelle: İstek engellendi. WAF, isteği daha fazla iletmeden istemciye bir yanıt gönderir. WAF, WAF günlüklerine bir giriş kaydeder ve çıkışlar.
    • Günlük: WAF, WAF günlüklerine bir girdi kaydeder ve bir sonraki kuralı öncelik sırasına göre değerlendirmeye devam eder.
    • Yeniden yönlendirme: WAF, isteği belirtilen bir URI'ye yönlendirir, WAF günlüklerine bir girdi kaydeder ve çıkar.
  • Eşleşme koşulu

    Bir eşleşme değişkeni, bir işleç ve bir eşleşme değeri tanımlar. Her kural birden çok eşleşme koşulu içerebilir. Eşleşme koşulu coğrafi konumu, istemci IP adreslerini (CIDR), boyutu veya dize eşleşmesini temel alabilir. Dize eşleşmesi, eşleşme değişkenleri listesinde olabilir.

    • Değişkeni eşleştir

      • İstekMethod
      • QueryString
      • PostArgs
      • RequestUri
      • RequestHeader
      • RequestBody
      • Tanımlama bilgileri
    • İşleç

      • Herhangi biri: Hiçbir kural eşleştirilmemişse genellikle varsayılan eylemi tanımlamak için kullanılır. Tümü, tüm işleçleri eşleştiren bir işleçtir.
      • Eşittir
      • Contains
      • LessThan: Boyut kısıtlaması
      • GreaterThan: Boyut kısıtlaması
      • LessThanOrEqual: Boyut kısıtlaması
      • GreaterThanOrEqual: Boyut kısıtlaması
      • BeginsWith
      • EndsWith
      • Normal ifade
    • Kayıt defteri

      Aşağıdaki işlemleri desteklemez:

      • Geri başvurular ve alt ifadeleri yakalama
      • Rastgele sıfır genişlikli onaylar
      • Alt yordam başvuruları ve özyinelemeli desenler
      • Koşullu desenler
      • Geri izleme denetimi fiilleri
      • \C tek bayt yönergesi
      • \R yeni satır eşleştirme yönergesi
      • Eşleştirme sıfırlama yönergesinin \K başlangıcı
      • Açıklama balonları ve ekli kod
      • Atomik gruplandırma ve sahiplik niceleyicileri
    • Negate [isteğe bağlı]

      Koşulun sonucunun negate olumsuzlanması gerekiyorsa koşulu true olarak ayarlayabilirsiniz.

    • Dönüştürme [isteğe bağlı]

      Eşleşme denenmeden önce yapılacak dönüştürmelerin adlarını içeren dizelerin listesi. Bunlar aşağıdaki dönüştürmeler olabilir:

      • Büyük harfe
      • Küçük harf
      • Trim
      • RemoveNulls
      • UrlDecode
      • UrlEncode
    • Değeri eşleştir

      Desteklenen HTTP isteği yöntemi değerleri şunlardır:

      • GET
      • POST
      • PUT
      • HEAD
      • SİL
      • KİLİT
      • KİLİDİ AÇMAK
      • PROFİL
      • OPTIONS
      • PROPFIND
      • PROPPATCH
      • MKCOL
      • Kopya etmek
      • Hareket etmek
      • PATCH
      • BAĞLANIN

Örnekler

Aşağıdaki örnekleri göz önünde bulundurun.

HTTP isteği parametrelerine göre eşleştirme

Aşağıdaki iki koşulla eşleşen isteklere izin vermek için özel bir kural yapılandırmanız gerektiğini varsayalım:

  • Üst Referer bilginin değeri bilinen bir değere eşittir.
  • Sorgu dizesi sözcüğünü passwordiçermez.

Özel kuralın örnek JSON açıklaması aşağıda verilmiştır:

{
  "name": "AllowFromTrustedSites",
  "priority": 1,
  "ruleType": "MatchRule",
  "matchConditions": [
    {
      "matchVariable": "RequestHeader",
      "selector": "Referer",
      "operator": "Equal",
      "negateCondition": false,
      "matchValue": [
        "www.mytrustedsites.com/referpage.html"
      ]
    },
    {
      "matchVariable": "QueryString",
      "operator": "Contains",
      "matchValue": [
        "password"
      ],
      "negateCondition": true
    }
  ],
  "action": "Allow"
}

HTTP PUT isteklerini engelleme

HTTP PUT yöntemini kullanan tüm istekleri engellemeniz gerektiğini varsayalım.

Özel kuralın örnek JSON açıklaması aşağıda verilmiştır:

{
  "name": "BlockPUT",
  "priority": 2,
  "ruleType": "MatchRule",
  "matchConditions": [
    {
      "matchVariable": "RequestMethod",
      "selector": null,
      "operator": "Equal",
      "negateCondition": false,
      "matchValue": [
        "PUT"
      ]
    }
  ],
  "action": "Block"
}

Boyut kısıtlaması

Azure Front Door WAF, gelen isteğin bir bölümüne uzunluk veya boyut kısıtlaması uygulayan özel kurallar oluşturmanıza olanak tanır. Bu boyut kısıtlaması bayt cinsinden ölçülür.

URL'nin 100 karakterden uzun olduğu istekleri engellemeniz gerektiğini varsayalım.

Özel kuralın örnek JSON açıklaması aşağıda verilmiştır:

{
  "name": "URLOver100",
  "priority": 5,
  "ruleType": "MatchRule",
  "matchConditions": [
    {
      "matchVariable": "RequestUri",
      "selector": null,
      "operator": "GreaterThanOrEqual",
      "negateCondition": false,
      "matchValue": [
        "100"
      ]
    }
  ],
  "action": "Block"
}

İstek URI'lerine göre eşleştirme

URI'nin 'login' içerdiği isteklere izin vermeniz gerektiğini varsayalım.

Özel kuralın örnek JSON açıklaması aşağıda verilmiştır:

{
  "name": "URIContainsLogin",
  "priority": 5,
  "ruleType": "MatchRule",
  "matchConditions": [
    {
      "matchVariable": "RequestUri",
      "selector": null,
      "operator": "Contains",
      "negateCondition": false,
      "matchValue": [
        "login"
      ]
    }
  ],
  "action": "Allow"
}

Özel kuralları kopyalama ve yineleme

Özel kurallar belirli bir ilke içinde çoğaltılabilir. Bir kuralı yinelerken, kural için benzersiz bir ad ve benzersiz bir öncelik değeri belirtmeniz gerekir. Ayrıca, ilkeler aynı abonelikte olduğu sürece özel kurallar bir Azure Front Door WAF ilkesinden diğerine kopyalanabilir. Bir kuralı bir ilkeden diğerine kopyalarken, kuralı kopyalamak istediğiniz Azure Front Door WAF ilkesini seçmeniz gerekir. WAF ilkesini seçtikten sonra kurala benzersiz bir ad vermeniz ve bir öncelik derecesi atamanız gerekir.

Sonraki adımlar