VCL personalizado para solicitações de bloqueio

Você pode usar o módulo Fastly CDN para o Magento 2 a fim de criar uma ACL do Edge com uma lista de endereços IP que você deseja bloquear. Em seguida, você pode usar essa lista com um trecho VCL para bloquear solicitações recebidas. O código verifica o endereço IP da solicitação recebida. Se ele corresponder a um endereço IP incluído na lista de ACL, o Fastly bloqueará o acesso ao site e retornará um 403 Forbidden error. Todos os outros endereços IP de clientes têm acesso permitido.

Pré-requisitos:

  • Seu ambiente deve ser configurado para usar o Fastly CDN. Consulte Configurar serviços do Fastly.

  • Verifique se você está executando a versão mais recente do módulo CDN Fastly para o Magento 2. Consulte Atualizar o Módulo Fastly.

  • Verifique a configuração do ambiente para o serviço Fastly. Consulte Verificar cache rápido.

  • Você deve ter credenciais de Administrador para acessar os ambientes de Preparo e Produção.

  • Lista de endereços IP de clientes a serem bloqueados

Criar Edge ACL para bloquear endereços IP de clientes

Você cria uma ACL do Edge para definir a lista de endereços IP a serem bloqueados. Depois de criar a ACL, você pode usá-la em um trecho de VCL personalizado para gerenciar o acesso ao site de Preparo ou Produção.

Gerencie o acesso para sites de Preparo e Produção criando a ACL do Edge com o mesmo nome em ambos os ambientes. O código de trecho VCL se aplica a ambos os ambientes.

  1. Faça logon no Administrador.
  2. Navegue até Lojas > Configurações > Configuração > Avançado > Sistema > Cache de Página Inteira > Configuração Rápida.
  3. Expanda a seção Edge ACL.
  4. Clique em Adicionar ACL para criar uma lista. Para este exemplo, nomeie a lista "incluir na lista de bloqueios arquivo".
  5. Insira os valores do endereço IP na lista. Todos os endereços IP de cliente adicionados a esta lista estão bloqueados e não podem acessar o site.
  6. Opcionalmente, marque a caixa de seleção Negado, se necessário.

Você faz referência à ACL do Edge pelo nome em seu código de trecho de VCL.

Incluir na lista de bloqueios Criar o VCL personalizado para o arquivo de pesquisa

NOTE
Este exemplo mostra aos usuários avançados como criar um trecho de código VCL para configurar regras de bloqueio personalizadas para fazer upload no serviço Fastly. Você pode configurar um incluir na lista de bloqueios incluo na lista de permissões de classificação ou de classificação com base no país do administrador da Adobe Commerce usando o recurso Bloqueio disponível no módulo Fastly CDN for Magento 2.

Depois de definir a ACL do Edge, você pode usá-la para criar o trecho VCL para bloquear o acesso aos endereços IP especificados na ACL. Você pode usar o mesmo trecho de VCL em ambientes de Preparo e Produção, mas deve fazer upload do trecho para cada ambiente separadamente.

O seguinte código de trecho de VCL personalizado (formato JSON) mostra a lógica para bloquear solicitações recebidas com um endereço IP de cliente que corresponda a um endereço na ACL de inclui na lista de bloqueios.

{
  "name": "blocklist",
  "dynamic": "0",
  "type": "recv",
  "priority": "5",
  "content": "if ( client.ip ~ blocklist) { error 403 \"Forbidden\"; }"
}

Antes de criar um trecho com base neste exemplo, revise os valores para determinar se você precisa fazer alterações:

  • name: Nome do trecho VCL. Neste exemplo, usamos o nome blocklist.

  • priority: Determina quando o trecho VCL é executado. A prioridade é 5 para executar imediatamente e verificar se uma solicitação de administrador vem de um endereço IP permitido. O trecho é executado antes de qualquer um dos trechos de VCL de Magento padrão (magentomodule_*) ter uma prioridade 50. Defina a prioridade para cada trecho personalizado acima ou abaixo de 50, dependendo de quando você deseja que seu trecho seja executado. Os trechos com números de prioridade mais baixa são executados primeiro.

  • type: Especifica o tipo de trecho de VCL que determina o local do trecho no código de VCL gerado. Neste exemplo, usamos recv, que insere o código de VCL na sub-rotina vcl_recv, abaixo do VCL padrão e acima de qualquer objeto. Consulte a Referência de trecho Fastly VCL para obter a lista de tipos de trecho.

  • content: o trecho de código VCL a ser executado, que verifica o endereço IP do cliente. Se o IP estiver na ACL do Edge, o acesso será bloqueado com um erro 403 Forbidden para todo o site. Todos os outros endereços IP de clientes têm acesso permitido.

Depois de revisar e atualizar o código do seu ambiente, use um dos métodos a seguir para adicionar o trecho de VCL personalizado à configuração do serviço Fastly:

Adicionar o trecho de VCL personalizado

  1. Faça logon no Administrador.

  2. Clique em Lojas > Configurações > Configuração > Avançado > Sistema.

  3. Expanda Cache de Página Inteira > Configuração Rápida > Trechos de VCL Personalizados.

  4. Clique em Criar trecho personalizado.

  5. Adicione os valores do trecho de VCL:

    • Nomeblocklist

    • Tiporecv

    • Prioridade5

    • Adicionar o conteúdo do trecho VCL:

      code language-conf
      if ( client.ip ~ blocklist) { error 403 "Forbidden"; }
      
  6. Clique em Criar para gerar o arquivo de trecho VCL com o padrão de nome type_priority_name.vcl, por exemplo recv_5_blocklist.vcl

  7. Depois que a página for recarregada, clique em Fazer upload do VCL para o Fastly na seção Configuração do Fastly para adicionar o arquivo à configuração do serviço Fastly.

  8. Após os uploads, atualize o cache de acordo com a notificação na parte superior da página.

O Fastly valida a versão atualizada do código do VCL durante o processo de upload. Se a validação falhar, edite o trecho de VCL personalizado para corrigir o problema. Em seguida, carregue o VCL novamente.

Exemplos adicionais de VCL para solicitações de bloqueio

Os exemplos a seguir mostram como bloquear solicitações usando instruções condition em vez de uma lista ACL.

WARNING
Nesses exemplos, o código do VCL é formatado como uma carga JSON que pode ser salva em um arquivo e enviada em uma solicitação da API Fastly. Você pode enviar o trecho VCL de Admin ou como uma sequência de caracteres JSON usando a API Fastly. Para evitar erros de validação ao usar a API Fastly com uma string JSON, é necessário usar uma barra invertida para escapar caracteres especiais.
NOTE
Se você estiver enviando o trecho de VCL do Administrador, extraia os valores individuais do código de VCL de amostra e insira-os nos campos correspondentes. Por exemplo:
  • Nome: <name of the VCL>
  • Dinâmico: <0/1>
  • Tipo: <type>
  • Prioridade: <priority>
  • Conteúdo: <content>

Consulte Uso de trechos de VCL dinâmicos na documentação do Fastly VCL.

Amostra de código VCL: Bloco por código de país

Este exemplo usa o código de país ISO 3166-1 de dois caracteres para o país associado ao endereço IP.

{
  "name": "blockbycountrycode",
  "dynamic": "0",
  "type": "recv",
  "priority": "5",
  "content": "if ( client.geo.country_code == \"HK\" ) { error 405 \"Not allowed\";}"
}
NOTE
Em vez de usar um trecho de VCL personalizado, você pode usar o recurso Bloqueio do Fastly no Admin do Adobe Commerce na infraestrutura da nuvem para configurar o bloqueio por código de país ou por uma lista de códigos de país.

Amostra de código VCL: cabeçalho de solicitação Bloquear por Agente do Usuário HTTP

{
  "name": "blockbyuseragent",
  "dynamic": "0",
  "type": "recv",
  "priority": "5",
  "content": "if ( req.http.User-Agent ~ \"(UCBrowser|MQQBrowser|LieBaoFast|Mb2345Browser)\" ) {error 405 \"Not allowed\";}"
}
NOTE
Em vez de carregar manualmente trechos de VCL personalizados, você pode adicionar trechos ao diretório $MAGENTO_CLOUD_APP_DIR/var/vcl_snippets_custom em seu ambiente. Os trechos neste diretório são carregados automaticamente quando você clica em carregar VCL para Fastly no Commerce Admin. Consulte Implantação automatizada de trechos de VCL personalizados no módulo Fastly CDN para obter a documentação do Magento 2.

Modificar o trecho de VCL personalizado

  1. Faça logon no Administrador.

  2. Clique em Lojas > Configurações > Configuração > Avançadas > Sistema.

  3. Expanda Cache de Página Inteira > Configuração Rápida > Trechos de VCL Personalizados.

    Gerenciar trechos de VCL personalizados

  4. Na coluna Ação, clique no ícone de configurações ao lado do trecho a ser editado.

  5. Depois que a página for recarregada, clique em Carregar VCL para Fastly na seção Configuração Fastly.

  6. Depois que o upload for concluído, atualize o cache de acordo com a notificação na parte superior da página.

WARNING
A opção Custom VCL snippets UI mostra apenas os trechos adicionados pelo Administrador do Adobe Commerce. Se você adicionar trechos usando a API Fastly, use a API para gerenciá-los.

Excluir o trecho de VCL personalizado

  1. Faça logon no Administrador.

  2. Clique em Lojas > Configurações > Configuração > Avançadas > Sistema.

  3. Expanda Cache de Página Inteira > Configuração Rápida > Trechos de VCL Personalizados.

    Gerenciar trechos de VCL personalizados

  4. Na coluna Ação, clique no ícone de lixeira ao lado do trecho a ser excluído.

  5. Na próxima janela modal, clique em DELETE e ative uma nova versão.

WARNING
A opção Custom VCL snippets UI mostra apenas os trechos adicionados pelo Administrador do Adobe Commerce. Se você adicionar trechos usando a API Fastly, use a API para gerenciá-los.
recommendation-more-help
05f2f56e-ac5d-4931-8cdb-764e60e16f26