---
name: azion-verifique-ou-altere-o-modo-do-waf
description: >-
  O modo fica no comportamento Set WAF de uma regra do Rules Engine, não no rule set. Leia-o ali, e altere-o ali.
---

# Verifique ou altere o modo do WAF

Você pode ler o modo de um rule set do [Web Application Firewall (WAF)](/pt-br/documentacao/plataforma/firewall/#waf), e alterá-lo, pelo Azion Console ou pela API.

O modo é um atributo do comportamento `Set WAF` de uma regra do [Rules Engine for Firewall](/pt-br/documentacao/plataforma/firewall/rules-engine/). Ele não é um campo do rule set. Por isso um mesmo rule set pode rodar em um modo em uma regra e em outro modo em outro lugar. Aplicar um rule set pela primeira vez é assunto de [Crie e aplique um WAF rule set](/pt-br/documentacao/guias/seguranca-de-aplicacoes/firewall-e-waf/criar-waf-rule-set/).

---

Selecione a interface que você vai usar. Os pré-requisitos e as duas tarefas abaixo seguem essa escolha.

## Pré-requisitos

- Um firewall vinculado ao workload que atende a sua aplicação. Consulte [Vincule um firewall a um workload](/pt-br/documentacao/guias/seguranca-de-aplicacoes/firewall-e-waf/proteja-seu-dominio/).
- Uma regra nesse firewall carregando um comportamento `Set WAF`. Consulte [Crie e aplique um WAF rule set](/pt-br/documentacao/guias/seguranca-de-aplicacoes/firewall-e-waf/criar-waf-rule-set/).

**Console**

- Acesso ao Azion Console. Para entrar, consulte [Como acessar o Azion Console](/pt-br/documentacao/guias/plataforma/conta-e-billing/como-acessar-o-azion-console/).

**API**

- Um personal token e o `curl`. Para criar um token, consulte [Personal Tokens](/pt-br/documentacao/fundamentos/personal-tokens/).
- O id do firewall que carrega a regra.

---

## Verifique o modo

Um firewall guarda várias regras, e só a que carrega `Set WAF` decide o modo. Encontre essa regra primeiro.

**Console**

Para ler o modo no Azion Console:

1. **Abra o firewall**

   Acesse o [Azion Console](https://console.azion.com/) > **Firewalls** e selecione o firewall que roda o rule set.

2. **Selecione a aba Rules Engine**

3. **Selecione a regra que aplica o rule set**

   Uma regra que aplica um rule set a todas as requisições traz `If` `Request Uri` `starts with` `/` em **Criteria**, e **Set WAF** em **Behaviors**.

4. **Leia o modo**

   Na seção **Behaviors**, o comportamento **Set WAF** nomeia o rule set. O dropdown de modo ao lado dele mostra *Logging* ou *Blocking*.

Esse valor é o modo sob o qual roda toda requisição selecionada por essa regra. Uma regra carrega no máximo um comportamento **Set WAF**.

**API**

Para ler o modo pela API:

1. **Liste as regras do firewall**

   Substitua `<firewall-id>` pelo id do seu firewall, e `[TOKEN VALUE]` pelo seu personal token:

   ```bash
   curl --request GET \
     --url https://api.azion.com/v4/workspace/firewalls/<firewall-id>/request_rules \
     --header 'Accept: application/json' \
     --header 'Authorization: Token [TOKEN VALUE]'
   ```

2. **Encontre o comportamento set\_waf**

   A chamada responde `200`. A regra que aplica um rule set retorna com este comportamento:

   ```json
   "behaviors": [
     { "type": "set_waf", "attributes": { "waf_id": 12345, "mode": "blocking" } }
   ]
   ```

`mode` carrega `logging` ou `blocking`, os dois valores que o Azion Console renderiza como *Logging* e *Blocking*. Anote o `id` dessa regra. Alterar o modo precisa dele.

---

## Altere o modo

O modo tem exatamente dois valores, e `learning` não é um deles. Para o que cada modo faz com uma requisição que alcança um limiar, consulte [Score e modos](/pt-br/documentacao/plataforma/firewall/waf/score-e-modos/#modos).

**Console**

Para alterar o modo no Azion Console:

1. **Abra a regra**

   Chegue até a regra pelos passos de [Verifique o modo](#verifique-o-modo).

2. **Abra o dropdown de modo no comportamento Set WAF**

3. **Selecione Logging ou Blocking**

4. **Selecione Save**

A regra agora nomeia o novo modo. A alteração leva algum tempo para alcançar a infraestrutura distribuída da Azion. Uma requisição que ainda se comporta sob o modo anterior não quebrou nada: espere e envie de novo.

**API**

Envie o comportamento `set_waf` inteiro, porque `mode` é obrigatório dentro dele. Um comportamento que omite `mode` é recusado com `400` e o erro `10059 Required Field`, no pointer `/data/behaviors/0/attributes/mode`.

1. **Envie a alteração**

   Substitua `<firewall-id>` e `<rule-id>` pelos ids que você anotou, e `waf_id` pelo id do seu rule set. Envie o array `behaviors` completo da regra, e não apenas a entrada `set_waf`:

   ```bash
   curl --request PATCH \
     --url https://api.azion.com/v4/workspace/firewalls/<firewall-id>/request_rules/<rule-id> \
     --header 'Accept: application/json' \
     --header 'Authorization: Token [TOKEN VALUE]' \
     --header 'Content-Type: application/json' \
     --data '{
     "behaviors": [
       {
         "type": "set_waf",
         "attributes": {
           "waf_id": 12345,
           "mode": "logging"
         }
       }
     ]
   }'
   ```

2. **Leia o modo de volta**

   Rode de novo o `GET` de [Verifique o modo](#verifique-o-modo), e confirme que `mode` carrega o valor que você enviou.

Qualquer outro valor é recusado. Outras superfícies da Azion escrevem esse modo como `learning`, e um comportamento que carregue esse valor retorna:

```json
{
  "errors": [
    {
      "code": "10039",
      "title": "Invalid Choice",
      "detail": "\"learning\" is not a valid choice.",
      "status": "400",
      "source": { "pointer": "/data/behaviors/0/attributes/mode" }
    }
  ]
}
```

---

## Próximos passos

- [Score e modos](/pt-br/documentacao/plataforma/firewall/waf/score-e-modos.md): O que cada modo faz com uma requisição, e o que uma requisição bloqueada recebe.
- [Ajuste um WAF rule set](/pt-br/documentacao/guias/seguranca-de-aplicacoes/firewall-e-waf/tune-waf.md): Leia o que um rule set correspondeu em Logging e transforme um falso positivo em uma exceção.
- [Encontre o score de uma requisição bloqueada](/pt-br/documentacao/guias/seguranca-de-aplicacoes/firewall-e-waf/como-encontrar-score-de-requisicoes-bloqueadas-pelo-waf.md): Encontre o score e a regra que disparou em uma requisição.
- [Solucionar problemas de Firewall](/pt-br/documentacao/plataforma/firewall/solucao-de-problemas.md#waf): O que verificar quando um rule set não bloqueia nada, ou bloqueia o tráfego errado.
