---
name: azion-bloqueie-enderecos-ate-uma-data
description: >-
  Negue um endereço até uma data com um item datado em uma network list e uma regra de firewall, e encerre o bloqueio com uma gravação da lista.
---

# Bloqueie endereços até uma data

Você pode bloquear um endereço até uma data da sua escolha pelo Azion Console, pela [Azion CLI](/pt-br/documentacao/devtools/cli/) ou pela API. Por exemplo, um endereço que abusou de um formulário de login pode ficar bloqueado por um dia. O item desse endereço em uma [network list](/pt-br/documentacao/plataforma/firewall/network-shield/network-lists/) `ip_cidr` carrega a data de expiração. Uma regra de [firewall](/pt-br/documentacao/plataforma/firewall/) nega todo endereço da lista. A data sozinha nunca encerra o bloqueio: o endereço continua negado até que uma gravação dos itens da lista descarte o item dele. Para bloquear um endereço sem data final, consulte [Bloqueie requisições por IP, ASN ou país](/pt-br/documentacao/guias/seguranca-de-aplicacoes/bots-e-rede/blocklists-enderecos-ip-edge/).

---

Selecione a interface deste guia. Os pré-requisitos e cada tarefa desta página mudam para essa interface.

## Pré-requisitos

- Um [workload](/pt-br/documentacao/plataforma/workloads/) vinculado a um firewall. A regra que nega a lista fica nesse firewall.
- [Network Shield](/pt-br/documentacao/plataforma/firewall/#network-shield) ativado para esse firewall. Ele começa ativado em todo firewall e permanece assim até que alguém o desative.

**Console**

- Uma conta que consegue entrar no [Azion Console](https://console.azion.com/).

**CLI**

- Azion CLI instalada e autenticada com um [personal token](/pt-br/documentacao/fundamentos/personal-tokens/).
- O ID do firewall ao qual o seu workload está vinculado.

**API**

- Um [personal token](/pt-br/documentacao/fundamentos/personal-tokens/). Cada requisição deste guia o envia no lugar de `[TOKEN VALUE]`.
- O ID do firewall ao qual o seu workload está vinculado.

---

## Crie uma lista com um item datado

Apenas uma lista do tipo `ip_cidr`, exibida como *IP/CIDR* no Azion Console, aceita anotações nos itens. Um item com anotação é recusado com `22011` em uma lista `asn` e com `22015` em uma lista `countries`. Uma data de expiração vem depois do endereço, após um espaço. Ela é `--LT` em maiúsculas, seguido de uma data e hora em UTC, em segundos inteiros, que termina em `Z`, como `--LT2030-01-01T00:00:00Z`. Um comentário começa com `#` e fica por último na linha, depois de qualquer data de expiração. Uma linha que começa com `#` não é um comentário, e a API a recusa com `22005`.

A lista deste guia tem dois itens. `198.51.100.7` carrega uma data de expiração e o comentário `#login abuse`, enquanto `192.0.2.10` não carrega nenhum dos dois. O item sem data mantém a lista gravável depois que a data passa. Uma gravação em que todos os itens estão vencidos é recusada com `22019 All Network Items Are Expired`. Para a sintaxe das anotações, consulte [Anotações de item](/pt-br/documentacao/plataforma/firewall/network-shield/network-lists/#anotacoes-de-item). Para os campos de uma lista e os três tipos dela, consulte [Campos da network list](/pt-br/documentacao/plataforma/firewall/network-shield/network-lists/#campos-da-network-list) e [Tipos de lista](/pt-br/documentacao/plataforma/firewall/network-shield/network-lists/#tipos-de-lista).

**Console**

Para criar a lista com o item datado no Azion Console:

1. **Abra a página Network Lists**

   Acesse [Azion Console](https://console.azion.com/) > **Edge Libraries** > **Network Lists**.

2. **Selecione Network List**

3. **Nomeie a lista**

   Na seção **General**, informe um **Name**. Por exemplo: `Blocked addresses`.

4. **Selecione o tipo IP/CIDR**

   Na seção **Network List Settings**, selecione *IP/CIDR*. Quando o formulário abre, *ASN* é o tipo selecionado.

5. **Informe os dois itens**

   No campo **List**, informe cada item em uma linha própria. O primeiro carrega uma data de expiração e um comentário, e o segundo não carrega nenhum dos dois:

   ```text
   198.51.100.7 --LT2030-01-01T00:00:00Z #login abuse
   192.0.2.10
   ```

   Escreva a data e a hora em UTC em que o bloqueio deve terminar no lugar de `2030-01-01T00:00:00Z`. Uma data que não está no futuro é sinalizada com `the --LT date must be in the future`.

6. **Salve a lista**

   Selecione **Save**.

Azion Console confirma com a mensagem `Your network list has been created`. Em **Network Lists**, a coluna **List Type** da lista mostra *IP/CIDR*.

**CLI**

Para criar a lista pela Azion CLI, escreva-a em um arquivo chamado `network-list.json`. Escreva a data e a hora em UTC em que o bloqueio deve terminar no lugar de `2030-01-01T00:00:00Z`:

```json
{
  "name": "Blocked addresses",
  "type": "ip_cidr",
  "items": [
    "198.51.100.7 --LT2030-01-01T00:00:00Z #login abuse",
    "192.0.2.10"
  ]
}
```

Crie a lista a partir desse arquivo:

```bash
azion create network-list --file network-list.json
```

A saída traz o ID da lista:

```text
Created Network List with ID <network-list-id>
```

A lista armazena os dois itens como o arquivo os escreve, com a data de expiração e o comentário. Guarde o ID, porque a regra se refere à lista por ele.

**API**

Para criar a lista pela API, envie-a em uma requisição `POST` para `/v4/workspace/network_lists`. Coloque o seu personal token no lugar de `[TOKEN VALUE]`. Escreva a data e a hora em UTC em que o bloqueio deve terminar no lugar de `2030-01-01T00:00:00Z`:

```bash
curl -X POST https://api.azion.com/v4/workspace/network_lists \
  -H "Authorization: Token [TOKEN VALUE]" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"name":"Blocked addresses","type":"ip_cidr","items":["198.51.100.7 --LT2030-01-01T00:00:00Z #login abuse","192.0.2.10"]}'
```

A API responde `201` e armazena os dois itens exatamente como foram enviados, com as anotações. Este trecho da resposta mantém os campos que a regra e a remoção usam:

```json
{
  "state": "executed",
  "data": {
    "id": <network-list-id>,
    "name": "Blocked addresses",
    "type": "ip_cidr",
    "items": ["198.51.100.7 --LT2030-01-01T00:00:00Z #login abuse", "192.0.2.10"],
    ...
  }
}
```

Guarde o valor de `data.id`. A regra o envia como um número.

---

## Crie a regra que nega os endereços listados

A regra lê a lista pelo critério *Network*, com o operador *matches*. O comportamento *Deny (403 Forbidden)* dela recusa cada cliente que corresponde. Ela nega os dois endereços enquanto os itens deles continuarem armazenados na lista. Uma data de expiração que passa não muda aquilo a que a regra corresponde. Para todos os critérios e comportamentos que uma regra aceita, consulte [Rules Engine para Firewall](/pt-br/documentacao/plataforma/firewall/rules-engine/#criterios).

**Console**

Para criar a regra de negação no Azion Console:

1. **Abra o firewall vinculado ao seu workload**

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

2. **Selecione a aba Rules Engine**

3. **Selecione Rule**

   Azion Console abre o drawer **Create Rule**.

4. **Nomeie a regra**

   Na seção **General**, informe um **Name**. Por exemplo: `Deny listed addresses`.

5. **Defina o critério Network**

   Na seção **Criteria**, selecione a variável *Network* e o operador *matches*.

   Uma variável que aparece como *Network - required Network Shield* indica que Network Shield está desativado neste firewall. Ative-o em **Main Settings** > **Modules** e salve o firewall, e a variável fica selecionável.

6. **Selecione a lista**

   No dropdown **Select a Network**, selecione `Blocked addresses`.

7. **Adicione o comportamento Deny**

   Na seção **Behaviors**, selecione *Deny (403 Forbidden)*.

8. **Salve a regra**

   Selecione **Save**.

Azion Console confirma com a mensagem `Rule successfully created`.

**CLI**

Para criar a regra de negação pela Azion CLI, escreva-a em um arquivo chamado `rule.json`. Coloque o ID da lista no lugar de `<network-list-id>`, como um número sem aspas:

```json
{
  "name": "Deny listed addresses",
  "active": true,
  "criteria": [
    [
      { "variable": "${network}", "conditional": "if", "operator": "is_in_list", "argument": <network-list-id> }
    ]
  ],
  "behaviors": [
    { "type": "deny" }
  ]
}
```

Crie a regra a partir desse arquivo no firewall vinculado ao seu workload. Coloque o ID desse firewall no lugar de `<firewall-id>`:

```bash
azion create firewall-rule --firewall-id <firewall-id> --file rule.json
```

A saída traz o ID da regra:

```text
Created Firewall Rule with ID <rule-id>
```

A regra fica ativa no firewall e lê `Blocked addresses` pelo ID da lista.

**API**

Para criar a regra de negação pela API, envie uma requisição `POST` para `/v4/workspace/firewalls/{firewall_id}/request_rules`. Escreva o ID do firewall vinculado ao seu workload no lugar de `<firewall-id>`. Coloque o `data.id` da resposta da lista no lugar de `<network-list-id>`, como um número sem aspas:

```bash
curl -X POST https://api.azion.com/v4/workspace/firewalls/<firewall-id>/request_rules \
  -H "Authorization: Token [TOKEN VALUE]" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
  "name": "Deny listed addresses",
  "active": true,
  "criteria": [
    [
      { "variable": "${network}", "conditional": "if", "operator": "is_in_list", "argument": <network-list-id> }
    ]
  ],
  "behaviors": [
    { "type": "deny" }
  ]
}'
```

A API responde `202` e retorna a regra como o firewall a armazena:

```json
{
  "state": "pending",
  "data": {
    "id": <rule-id>,
    "name": "Deny listed addresses",
    "active": true,
    "criteria": [[{ "conditional": "if", "variable": "${network}", "operator": "is_in_list", "argument": <network-list-id> }]],
    "behaviors": [{ "type": "deny" }],
    "description": "",
    "order": 0
  }
}
```

O firewall mantém a regra, ativa.

Com a regra no tráfego, uma requisição de qualquer um dos dois endereços recebe `403`. Uma regra que você adiciona pode levar de 6 minutos e 29 segundos a 9 minutos e 18 segundos para chegar ao tráfego em toda a infraestrutura distribuída da Azion. Envie de novo uma requisição de um endereço listado até que ela responda `403`.

> **nota**
>
> No corpo JSON da CLI e da API, `${network}` nomeia o critério *Network*, e `is_in_list` o operador *matches* dele. `deny` nomeia o comportamento *Deny (403 Forbidden)*. O `argument` é o ID da lista como um inteiro JSON. Para os operadores e os erros do critério, consulte [O critério Network](/pt-br/documentacao/plataforma/firewall/network-shield/network-lists/#o-criterio-network). Para a resposta que um cliente negado recebe, consulte [Deny (403 Forbidden)](/pt-br/documentacao/plataforma/firewall/rules-engine/#deny-403-forbidden).

---

## Remova o item depois da data de expiração

A Azion lê uma data de expiração apenas quando os itens de uma lista são gravados, e cada gravação descarta os itens já vencidos. Um item cuja data passa depois da gravação continua armazenado e continua correspondendo. Dar outro nome à lista também não remove o item.

O que encerra o bloqueio é uma gravação dos itens da lista. Envie-a pela interface que você usa ou por uma tarefa sua. Essa tarefa pode ser um script agendado ou o sistema de gerenciamento de informações e eventos de segurança (SIEM) que sinalizou o endereço. Enviada depois de cada data de expiração, a gravação descarta todo item vencido até aquele momento.

**Console**

Para remover o item datado no Azion Console:

1. **Abra a lista**

   Acesse [Azion Console](https://console.azion.com/) > **Edge Libraries** > **Network Lists** e selecione `Blocked addresses`.

2. **Exclua a linha datada**

   No campo **List**, exclua a linha de `198.51.100.7`. Depois que a data dela passa, o formulário sinaliza essa linha com `the --LT date must be in the future`.

3. **Salve a lista**

   Selecione **Save**.

Azion Console confirma com a mensagem `Your Network List has been updated.`, e a lista mantém apenas `192.0.2.10`.

**CLI**

Azion CLI remove o item datado com `--remove-item`, que corresponde ao item exatamente como a lista o armazena. Para ler os itens armazenados, descreva a lista:

```bash
azion describe network-list --network-list-id <network-list-id>
```

A linha `Items` ainda mostra o item datado:

```text
Items:           ["198.51.100.7 --LT2030-01-01T00:00:00Z #login abuse","192.0.2.10"]
```

Com apenas o endereço, `--remove-item` não remove nada e ainda assim imprime a mesma linha de uma remoção. Passe o item exatamente como a linha `Items` o mostra, com a data de expiração e o comentário:

```bash
azion update network-list --network-list-id <network-list-id> --remove-item "198.51.100.7 --LT2030-01-01T00:00:00Z #login abuse"
```

A saída traz o ID da lista que mudou:

```text
Updated Network List with ID <network-list-id>
```

A lista mantém apenas `192.0.2.10`, e descrever a lista de novo retorna esse único item.

**API**

A API descarta o item datado quando os itens da lista são gravados de novo. Para ler os itens armazenados, envie uma requisição `GET` para `/v4/workspace/network_lists/{network_list_id}`:

```bash
curl https://api.azion.com/v4/workspace/network_lists/<network-list-id> \
  -H "Authorization: Token [TOKEN VALUE]" \
  -H "Accept: application/json"
```

A API responde `200`, e o item datado ainda está em `items`:

```json
{
  "data": {
    "id": <network-list-id>,
    ...
    "items": ["198.51.100.7 --LT2030-01-01T00:00:00Z #login abuse", "192.0.2.10"],
    ...
  }
}
```

Envie esses mesmos itens de volta em uma requisição `PATCH`. A gravação descarta cada item cuja data de expiração já passou:

```bash
curl -X PATCH https://api.azion.com/v4/workspace/network_lists/<network-list-id> \
  -H "Authorization: Token [TOKEN VALUE]" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{"items":["198.51.100.7 --LT2030-01-01T00:00:00Z #login abuse","192.0.2.10"]}'
```

A API responde `200`. O array `items` que ela retorna mantém apenas o item sem data:

```json
{
  "state": "executed",
  "data": {
    "id": <network-list-id>,
    ...
    "items": ["192.0.2.10"],
    ...
  }
}
```

A lista mantém apenas `192.0.2.10`. Um `PATCH` que carrega apenas um `name` não substitui essa gravação, porque o item datado continua armazenado depois dele.

Quando a gravação chega ao tráfego, a regra deixa de negar `198.51.100.7`. Uma mudança nos itens de uma lista leva de 46 segundos a cerca de 100 segundos para chegar ao tráfego, menos que uma regra que você adiciona. Até ela se estabilizar, as respostas podem alternar entre os itens antigos e os atualizados. Repita uma requisição desse endereço até que as respostas concordem. Para testar primeiro uma lista e uma regra no seu próprio endereço, consulte [Primeiros passos com Network Shield](/pt-br/documentacao/plataforma/firewall/network-shield/primeiros-passos/).

---

## Próximos passos

- [Network Lists](/pt-br/documentacao/plataforma/firewall/network-shield/network-lists.md#anotacoes-de-item): A sintaxe de uma data de expiração e de um comentário, com o erro que cada item malformado retorna.
- [Como Firewall funciona](/pt-br/documentacao/plataforma/firewall/como-funciona.md#network-shield): A seção Network Shield explica por que uma data de expiração vale quando os itens são gravados, não quando a data chega.
- [Boas práticas de Firewall](/pt-br/documentacao/plataforma/firewall/boas-praticas.md#substitua-uma-network-list-a-partir-da-sua-propria-fonte-da-verdade): A seção Network Shield trata de um SIEM ou de um script que envia a lista inteira, para que cada envio descarte os itens vencidos.
- [Solucionar problemas de Firewall](/pt-br/documentacao/plataforma/firewall/solucao-de-problemas.md#um-item-com-a-data-de-expiracao-vencida-ainda-bloqueia): A seção Network Shield trata de um item que ainda recusa o cliente dele depois da data de expiração.
- [Proteja um caminho com uma network list](/pt-br/documentacao/guias/seguranca-de-aplicacoes/bots-e-rede/proteger-um-caminho.md): Encadeie um critério Request Uri no mesmo bloco, para que uma regra de negação cubra um caminho e deixe os outros abertos.
- [Guias e tutoriais de Firewall](/pt-br/documentacao/plataforma/firewall/guias.md): Todos os guias de um firewall, entre eles as outras configurações de network list.
