Udostępnij za pośrednictwem


Reguły niestandardowe dla usługi Azure Web Application Firewall w usłudze Azure Front Door

Usługa Azure Web Application Firewall w usłudze Azure Front Door umożliwia kontrolowanie dostępu do aplikacji internetowych na podstawie zdefiniowanych warunków. Niestandardowa reguła zapory aplikacji internetowej (WAF) składa się z numeru priorytetu, typu reguły, warunków dopasowania i akcji.

Istnieją dwa typy reguł niestandardowych: reguły dopasowania i reguły limitu szybkości. Reguła dopasowania kontroluje dostęp na podstawie zestawu pasujących warunków. Reguła limitu szybkości kontroluje dostęp na podstawie pasujących warunków i szybkości żądań przychodzących. Możesz wyłączyć regułę niestandardową, aby uniemożliwić jej ocenę, ale nadal zachować konfigurację.

Aby uzyskać więcej informacji na temat ograniczania szybkości, zobacz Co to jest ograniczanie szybkości dla usługi Azure Front Door?.

Priorytet, typy akcji i warunki dopasowania

Dostęp można kontrolować za pomocą niestandardowej reguły zapory aplikacji internetowej, która definiuje numer priorytetu, typ reguły, tablicę warunków dopasowania i akcję.

  • Priorytet

    Unikatowa liczba całkowita, która opisuje kolejność oceny reguł zapory aplikacji internetowej. Reguły z wartościami o niższym priorytcie są oceniane przed regułami o wyższych wartościach. Ocena reguły zatrzymuje się na dowolnej akcji reguły z wyjątkiem dziennika. Numery priorytetów muszą być unikatowe we wszystkich regułach niestandardowych.

  • Akcja

    Definiuje sposób kierowania żądania, jeśli reguła zapory aplikacji internetowej jest zgodna. Możesz wybrać jedną z następujących akcji, które mają być stosowane, gdy żądanie pasuje do reguły niestandardowej.

    • Zezwalaj: Zapora aplikacji internetowej umożliwia przetwarzanie żądania, rejestrowanie wpisu w dziennikach zapory aplikacji internetowej i zamykanie.
    • Blokuj: żądanie jest zablokowane. Zapora aplikacji internetowej wysyła odpowiedź do klienta bez dalszego przekazywania żądania. Zapora aplikacji internetowej rejestruje wpis w dziennikach zapory aplikacji internetowej i kończy działanie.
    • Dziennik: Zapora aplikacji internetowej rejestruje wpis w dziennikach zapory aplikacji internetowej i kontynuuje ocenę następnej reguły w kolejności priorytetu.
    • Przekierowanie: Zapora aplikacji internetowej przekierowuje żądanie do określonego identyfikatora URI, rejestruje wpis w dziennikach zapory aplikacji internetowej i kończy działanie.
  • Warunek dopasowania

    Definiuje zmienną dopasowania, operator i wartość dopasowania. Każda reguła może zawierać wiele warunków dopasowania. Warunek dopasowania może być oparty na lokalizacji geograficznej, adresach IP klienta (CIDR), rozmiarze lub dopasować ciąg. Dopasowanie ciągu może być zgodne z listą zmiennych dopasowania.

    • Dopasuj zmienną

      • RequestMethod
      • Querystring
      • PostArgs
      • Requesturi
      • RequestHeader
      • RequestBody
      • Pliki cookie
    • Operator

      • Dowolne: często używane do definiowania akcji domyślnej, jeśli żadne reguły nie są zgodne. Dowolny jest operatorem dopasowania do wszystkich.
      • Równe
      • Contains
      • LessThan: ograniczenie rozmiaru
      • GreaterThan: ograniczenie rozmiaru
      • LessThanOrEqual: ograniczenie rozmiaru
      • GreaterThanOrEqual: ograniczenie rozmiaru
      • BeginsWith
      • EndsWith
      • Wyrażenie regularne
    • Regex

      Nie obsługuje następujących operacji:

      • Odwołania wsteczne i przechwytywanie podwyrażenia
      • Dowolne asercji o zerowej szerokości
      • Odwołania podrzędne i wzorce cyklicznego
      • Wzorce warunkowe
      • Czasowniki kontrolek wycofywania
      • Dyrektywa \C z jednym bajtem
      • Dyrektywa dopasowania \R newline
      • \K dyrektywy resetowania dopasowania
      • Objaśnienie i osadzony kod
      • Grupowanie niepodzielne i kwantyfikatory
    • Negowanie [opcjonalne]

      Warunek można ustawić negate na wartość true , jeśli wynik warunku powinien zostać negowany.

    • Przekształcanie [opcjonalne]

      Lista ciągów z nazwami przekształceń do wykonania przed podjęciem próby dopasowania. Mogą to być następujące przekształcenia:

      • Wielkie litery
      • Małe litery
      • Trim
      • RemoveNulls
      • UrlDecode
      • Urlencode
    • Dopasuj wartość

      Obsługiwane wartości metody żądania HTTP obejmują:

      • GET
      • POST
      • ODŁÓŻ
      • HEAD
      • DELETE
      • BLOKADY
      • ODBLOKOWAĆ
      • PROFIL
      • OPTIONS
      • PROPFIND
      • PROPPATCH
      • MKCOL
      • KOPII
      • PRZENIEŚĆ
      • PATCH
      • ŁĄCZENIE

Przykłady

Rozważmy następujące przykłady.

Dopasowanie na podstawie parametrów żądania HTTP

Załóżmy, że musisz skonfigurować regułę niestandardową, aby zezwalać na żądania zgodne z następującymi dwoma warunkami:

  • Referer Wartość nagłówka jest równa znanej wartości.
  • Ciąg zapytania nie zawiera słowa password.

Oto przykładowy opis kodu JSON reguły niestandardowej:

{
  "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"
}

Blokuj żądania HTTP PUT

Załóżmy, że musisz zablokować każde żądanie korzystające z metody HTTP PUT.

Oto przykładowy opis kodu JSON reguły niestandardowej:

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

Ograniczenie rozmiaru

Zapora aplikacji internetowej usługi Azure Front Door umożliwia tworzenie niestandardowych reguł, które stosują ograniczenie długości lub rozmiaru w ramach żądania przychodzącego. To ograniczenie rozmiaru jest mierzone w bajtach.

Załóżmy, że musisz zablokować żądania, w których adres URL jest dłuższy niż 100 znaków.

Oto przykładowy opis kodu JSON reguły niestandardowej:

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

Kopiowanie i duplikowanie reguł niestandardowych

Reguły niestandardowe można duplikować w ramach określonych zasad. Podczas duplikowania reguły należy określić unikatową nazwę reguły i unikatową wartość priorytetu. Ponadto reguły niestandardowe można skopiować z jednej zasady zapory aplikacji internetowej usługi Azure Front Door do innej, o ile zasady znajdują się w tej samej subskrypcji. Podczas kopiowania reguły z jednej zasady do innej należy wybrać zasady zapory aplikacji internetowej usługi Azure Front Door, do których chcesz skopiować regułę. Po wybraniu zasad zapory aplikacji internetowej należy nadać regule unikatową nazwę i przypisać rangę priorytetu.

Następne kroki