Proteja um caminho com uma network list
Negue os endereços de uma network list em um caminho, como /admin, e mantenha os demais abertos, com uma regra de firewall no Azion Console, na CLI ou na API.
Você pode negar endereços listados em um caminho, /admin, pelo Azion Console, pela Azion CLI ou pela API. Todos os outros caminhos do workload continuam abertos a esses endereços. Uma regra de firewall encadeia dois critérios: Network compara o endereço do cliente com uma network list ip_cidr, e Request Uri compara o caminho. Use esta regra para manter alguns endereços fora de uma área de administração, de um formulário de login ou de uma rota de API. Ela também permite que você teste uma lista em um caminho antes que uma regra aplique a lista a toda requisição. Para negar endereços listados em todos os caminhos, e não em um só, consulte Bloqueie requisições por IP, ASN ou país.
Selecione a interface em que você trabalha. Os pré-requisitos e todas as tarefas desta página mudam para corresponder a ela.
Pré-requisitos
- Um workload vinculado a um firewall pelo deployment dele. Esse firewall recebe a regra que você cria neste guia.
- Network Shield ativado para esse firewall. Network Shield vem ativado por padrão quando um firewall é criado. Para ativá-lo, consulte Defina as configurações principais de um firewall.
- Acesso ao Azion Console.
Crie a lista de endereços
Uma lista ip_cidr guarda endereços IP e intervalos, um por item, em IPv4 ou IPv6. Um intervalo usa a notação CIDR, como 198.51.100.0/24. Um cliente corresponde à lista quando o endereço dele é um item ou está dentro de um intervalo. A lista deste guia guarda um endereço IPv4, um intervalo IPv4 e um intervalo IPv6. O tipo continua ip_cidr enquanto a lista existir. Para os campos de uma lista e o formato de cada tipo, consulte Campos da network list e Tipos de lista.
Para criar a lista com a Azion CLI, salve a definição dela como network-list.json:
Depois, crie a lista a partir do arquivo:
A CLI imprime o ID da lista que ela criou:
A lista Blocked addresses guarda os três itens, e a regra se refere à lista por esse ID.
Crie a regra que protege o caminho
A regra guarda dois critérios em um bloco. O primeiro, Network, carrega o condicional if. O segundo, Request Uri, carrega and, o que faz dele uma condição que também precisa ser verdadeira. Por isso, a regra nega uma requisição somente quando o cliente está na lista e o caminho começa com /admin. Quando qualquer um dos critérios é falso, a regra não executa nada, e o firewall passa para a próxima regra. Para saber como critérios e blocos se combinam, consulte Condicionais.
O comando azion create firewall-rule lê a regra de um arquivo JSON. Para criar a regra com a Azion CLI, salve este corpo como rule.json. Coloque o ID da sua lista no lugar de <network-list-id>, como um número simples, sem aspas:
Depois, crie a regra a partir do arquivo. Escreva o ID do firewall vinculado ao seu workload no lugar de <firewall-id>:
A CLI imprime o ID da regra que ela criou:
O firewall guarda a regra, ativa, e a regra nega os endereços listados nos caminhos sob /admin.
Confirme que o caminho nega os endereços listados
Espere que a regra chegue ao tráfego de 6 minutos e 29 segundos a 9 minutos e 18 segundos depois que você a cria. Um workload vinculado pouco antes pode precisar de vários minutos para a primeira regra dele, e nenhuma duração é garantida. Até que a regra chegue ao tráfego, /admin responde aos endereços listados como qualquer outro caminho.
Depois disso, um cliente da lista recebe HTTP 403 em /admin e em todos os caminhos sob ele. O corpo da resposta é a página de erro padrão da Azion, encabeçada por Forbidden. Uma requisição de um endereço listado para /admin recebe esta resposta:
A linha Your IP é o endereço do cliente que o firewall comparou com a lista. Uma requisição do mesmo endereço para um caminho fora de /admin passa pela regra. Ela chega à aplicação, que responde como faz para qualquer cliente. Para a resposta que um cliente negado recebe, consulte Deny (403 Forbidden).
O operador starts with corresponde a todo caminho que começa com o argumento dele. Por isso, o argumento /admin também cobre /admin/users e /administrator. Para escolher o caminho de que um bloqueio precisa, consulte Restrinja um bloqueio ao caminho que precisa dele.
Uma mudança nos itens da lista depois que a regra está em vigor chega ao tráfego mais rápido do que a regra chegou: em 46 segundos a cerca de 100 segundos. Enquanto isso, uma requisição pode refletir os itens antigos e a próxima, os itens atualizados. Envie a requisição novamente até que as respostas coincidam. Para todos os tempos de propagação, consulte Propagação.