Udostępnij przez


Niestandardowe reguły dla usługi Azure Web Application Firewall w ramach 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 warunków dopasowania. 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 kryteria dopasowania

Dostęp można kontrolować za pomocą niestandardowej reguły WAF (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 każdym działaniu reguły z wyjątkiem Log. Numery priorytetów muszą być unikatowe we wszystkich regułach niestandardowych.

  • Akcja

    Definiuje sposób kierowania żądania, jeśli zostanie dopasowana reguła WAF. Możesz wybrać jedną z następujących akcji do zastosowania, gdy żądanie pasuje do reguły niestandardowej.

    • Zezwalaj: WAF umożliwia przetwarzanie żądania, rejestruje wpis w dziennikach WAF i kończy działanie.
    • 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: WAF rejestruje wpis w dziennikach WAF i kontynuuje ocenę następnej reguły według kolejności priorytetów.
    • Przekierowanie: WAF przekierowuje żądanie do określonego identyfikatora URI, rejestruje wpis w dziennikach WAF 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 dopasowaniu ciągu. Dopasowanie ciągu może odnosić się do listy zmiennych dopasowania.

    • Dopasuj zmienną

      • MetodaŻądania
      • Parametry zapytania
      • PostArgs (Argumenty po angielsku)
      • RequestUri (Żądanie URI)
      • Nagłówek Żądania
      • Ciało żądania
      • 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
      • Zawiera
      • LessThan: ograniczenie rozmiaru
      • GreaterThan: ograniczenie rozmiaru
      • LessThanOrEqual: ograniczenie rozmiaru
      • GreaterThanOrEqual: ograniczenie rozmiaru
      • ZaczynaSięOd
      • Kończy się na
      • Wyrażenie regularne
    • Wyrażenie regularne

      Nie obsługuje następujących operacji:

      • Odwołania wsteczne i przechwytywanie podwyrażeń
      • Dowolne asercji o zerowej szerokości
      • Odwołania do podprogramów i wzorce rekurencyjne
      • Wzorce warunkowe
      • Czasowniki kontrolek wycofywania
      • Dyrektywa \C z jednym bajtem
      • Dyrektywa dopasowania \R newline
      • początek dyrektywy resetowania dopasowania
      • Komentarze i osadzony kod
      • Grupowanie atomowe i kwantyfikatory posesywne
    • Negowanie [opcjonalne]

      Warunek można ustawić negate na true , kiedy wynik warunku powinien zostać zanegowany.

    • 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:

      • Duże litery
      • Małe litery
      • Przycinanie
      • UsuńNulle
      • Dekodowanie URL
      • Kodowanie URL
    • Dopasuj wartość

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

      • POBIERZ
      • Post
      • ODŁÓŻ
      • NAGŁÓWEK
      • USUŃ
      • ZAMEK
      • ODBLOCKOWAĆ
      • PROFIL
      • OPCJE
      • ZNAJDŹ PROPFIND
      • PROPPATCH (Poprawka ŚRODKOWA)
      • MKCOL powiedział:
      • KOPIUJ
      • PRZENIEŚĆ
      • łatka
      • POŁĄCZ

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

Dopasowanie na podstawie URI żądania

Załóżmy, że musisz zezwolić na żądania, w których identyfikator URI zawiera "login".

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

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

Kopiowanie i duplikowanie reguł niestandardowych

Reguły niestandardowe można duplikować w ramach określonej polityki. 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ć reguły zapory aplikacji internetowej (WAF) usługi Azure Front Door, do której chcesz skopiować regułę. Po wybraniu zasad zapory aplikacji internetowej należy nadać regule unikatową nazwę i przypisać rangę priorytetu.

Następne kroki