Tutorial: Criar um gateway de aplicativo com um Firewall do Aplicativo Web usando o portal do Azure

Este tutorial mostra como usar o portal do Azure para criar um Gateway de Aplicativo com um WAF (Firewall do Aplicativo Web). O WAF usa as regras de OWASP para proteger o seu aplicativo. Essas regras incluem proteção contra ataques, como injeção de SQL, ataques de script entre sites e sequestros de sessão. Após criar o gateway de aplicativo, você vai testá-lo para verificar se está funcionando corretamente. Com Gateway de Aplicativo do Azure, você direciona o tráfego de aplicativo Web para recursos específicos, atribuindo ouvintes a portas, criando regras e adicionando recursos a um pool de back-end. Para simplificar, este tutorial usa uma configuração simples com um IP de front-end público, um ouvinte básico para hospedar um site nesse gateway de aplicativo, duas máquinas virtuais Linux usadas para o pool de back-end e uma regra de roteamento de solicitações básica.

Neste tutorial, você aprenderá como:

  • Criar um gateway de aplicativo com o WAF habilitado
  • Criar as máquinas virtuais usadas como servidores de back-end
  • Criar uma conta de armazenamento e configurar diagnósticos
  • Testar o gateway de aplicativo

Diagrama do exemplo do firewall do aplicativo Web.

Observação

Recomendamos que você use o módulo Az PowerShell do Azure para interagir com o Azure. Confira Instalar o Azure PowerShell para começar. Para saber como migrar para o módulo Az PowerShell, confira Migrar o Azure PowerShell do AzureRM para o Az.

Pré-requisitos

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

Entrar no Azure

Entre no portal do Azure.

Criar um Gateway de Aplicativo

  1. Selecione Criar um recurso no menu esquerdo do portal do Azure. A janela Novo é exibida.

  2. Selecione Rede e depois Gateway de Aplicativo na lista em destaque.

Guia Básico

  1. Na página Básico, insira estes valores para as seguintes configurações de gateway de aplicativo:

    • Grupo de recursos: Selecione myResourceGroupAG para o grupo de recursos. Se ele não existir, selecione Criar novo para criá-lo.

    • Nome do gateway de aplicativo: Insira myAppGateway para o nome do gateway de aplicativo.

    • Camada: selecione WAF V2.

    • Política do WAF: selecione Criar novo, digite um nome para a nova política e selecione OK. Isso cria uma política básica do WAF com um CRS (Conjunto de Regras de Núcleo) gerenciado.

      Captura de tela da guia Criar gateway de aplicativo: Básico.

  2. Para que o Azure se comunique entre os recursos que você cria, ele precisa de uma rede virtual. Você pode criar uma nova rede virtual ou usar uma existente. Neste exemplo, você criará uma rede virtual ao mesmo tempo em que cria o gateway de aplicativo. As instâncias do Gateway de Aplicativo são criadas em sub-redes separadas. Crie duas sub-redes neste exemplo: uma para o gateway de aplicativo e outra para os servidores de back-end.

    Em Configurar rede virtual, selecione Criar para criar uma rede virtual. Na janela Criar rede virtual que é aberta, insira os seguintes valores para criar a rede virtual e duas sub-redes:

    • Name: Insira myVNet para o nome da rede virtual.

    • Nome da sub-rede (sub-rede do Gateway de Aplicativo): A grade Sub-redes mostrará uma sub-rede chamada Padrão. Altere o nome dessa sub-rede para myAGSubnet.
      A sub-rede de gateway de aplicativo pode conter apenas gateways de aplicativo. Nenhum outro recurso é permitido.

    • Nome da sub-rede (sub-rede do servidor de back-end): Na segunda linha da grade Sub-redes, insira myBackendSubnet na coluna Nome da sub-rede.

    • Intervalo de endereços (sub-rede do servidor de back-end): Na segunda linha da grade Sub-redes, insira um intervalo de endereços que não se sobreponha ao intervalo de endereços de myAGSubnet. Por exemplo, se o intervalo de endereços de myAGSubnet for 10.21.0.0/24, digite 10.21.1.0/24 para o intervalo de endereços de myBackendSubnet.

    Selecione OK para fechar a janela Criar rede virtual e salvar as configurações de rede virtual.

    Captura de tela de Criar gateway de aplicativo: Criar rede virtual.

  3. Na guia Básico, aceite os valores padrão para as outras configurações e selecione Avançar: Front-ends.

Guia Front-ends

  1. Na guia Front-ends, verifique se Tipo de endereço IP do front-end está definido como Público.
    É possível configurar o IP de front-end como Público ou Ambos, de acordo com o caso de uso. Neste exemplo, você escolherá um IP público de front-end.

    Observação

    Para o SKU do Gateway de Aplicativo v2, há suporte para tipos de endereços IP de front-end Públicos e Ambos. Privado, não há suporte para a configuração de IP de front-end.

  2. Selecione Adicionar novo para o Endereço IP público, insira myAGPublicIPAddress para o nome do endereço IP público e clique em OK.

    Captura de tela de Criar gateway de aplicativo: Front-ends.

  3. Selecione Avançar: Back-ends.

Guia Back-ends

O pool de back-end é usado para encaminhar solicitações aos servidores back-end que atendem à solicitação. Os pools de back-end podem ser formados por NICs, conjuntos de dimensionamento de máquinas virtuais, IPs públicos, IPs internos, FQDN (nomes de domínio totalmente qualificados) e back-ends multilocatário como Serviço de Aplicativo do Azure. Neste exemplo, você criará um pool de back-end vazio com o gateway de aplicativo e, posteriormente, adicionará destinos de back-end ao pool de back-end.

  1. Na guia Back-ends, selecione Adicionar um pool de back-end.

  2. Na janela Adicionar um pool de back-end que é aberta, insira os seguintes valores para criar um pool de back-end vazio:

    • Name: Insira myBackendPool para o nome do pool de back-end.
    • Adicionar pool de back-end sem destinos: Selecione Sim para criar um pool de back-end sem destinos. Você adicionará destinos de back-end depois de criar o gateway de aplicativo.
  3. Na janela Adicionar um pool de back-end, selecione Adicionar para salvar a configuração do pool de back-end e retornar à guia Back-ends.

    Captura de tela de Criar gateway de aplicativo: Back-ends.

  4. Na guia Back-ends, selecione Avançar: Configuração.

Guia Configuração

Na guia Configuração, você conectará o front-end e o pool de back-end que você criou usando uma regra de roteamento.

  1. Selecione Adicionar uma regra de roteamento na coluna Regra de roteamento.

  2. Na janela Adicionar uma regra de roteamento que é aberta, insira myRoutingRule para o Nome da regra.

  3. Para Prioridade, digite um número de prioridade.

  4. Uma regra de roteamento requer um ouvinte. Na guia Ouvinte na janela Adicionar uma regra de roteamento, insira os seguintes valores para o ouvinte:

    • Nome do ouvinte: insira myListener para o nome do ouvinte.

    • IP de front-end: selecione Público para escolher o IP público que você criou para o front-end.

      Aceite os valores padrão para as outras configurações na guia Ouvinte e, em seguida, selecione a guia Destinos de back-end para configurar o restante da regra de roteamento.

    Captura de tela mostrando Criar gateway de aplicativo: ouvinte.

  5. Na guia Destinos de back-end, selecione myBackendPool para o Destino de back-end.

  6. Para as configurações de back-end, selecione Adicionar novo para criar uma nova configuração de back-end. Essa configuração determina o comportamento da regra de roteamento. Na janela Adicionar configuração de back-end que é aberta, insira myBackendSetting para o nome das configurações de back-end. Aceite os valores padrão para as outras configurações na janela e selecione Adicionar para retornar à janela Adicionar uma regra de roteamento.

    Captura de tela mostrando Criar gateway de aplicativo, configuração de back-end.

  7. Na janela Adicionar uma regra de roteamento, selecione Adicionar para salvar a regra de roteamento e retornar para a guia Configuração.

    Captura de tela mostrando Criar gateway de aplicativo: regra de roteamento.

  8. Selecione Avançar: Marcas e, em seguida, Avançar: Revisar + criar.

Guia Examinar + criar

Examine as configurações na guia Examinar + criar e selecione Criar para criar a rede virtual, o endereço IP público e o gateway de aplicativo. Pode levar vários minutos para que o Azure crie o gateway de aplicativo.

Aguarde até que a implantação seja concluída com êxito antes de passar para a próxima seção.

Adicionar destinos de back-end

Neste exemplo, você usará máquinas virtuais como o back-end de destino. Você pode criar máquinas virtuais ou usar as existentes. Você criará duas máquinas virtuais que o Azure usa como servidores de back-end para o gateway de aplicativo.

Para fazer isso, você precisará:

  1. Criar duas VMs Linux, myVM e myVM2, para serem usadas como servidores back-end.
  2. Instale NGINX nas máquinas virtuais para verificar se o gateway de aplicativo foi criado com êxito.
  3. Adicione os servidores back-end ao pool de back-end.

Criar uma máquina virtual

  1. No portal do Azure, selecione Criar um recurso. A janela Criar um recurso é exibida.

  2. Em Máquina virtual, selecione Criar.

  3. Insira esses valores na guia Noções básicas para as seguintes configurações de máquina virtual:

    • Grupo de recursos: Selecione myResourceGroupAG para o nome do grupo de recursos.
    • Nome da máquina virtual: Insira myVM para o nome da máquina virtual.
    • Imagem: Ubuntu Server 20.04 LTS – Gen2.
    • Tipo de autenticação: senha
    • Nome de usuário: insira um nome para o nome de usuário do administrador.
    • Senha: insira uma senha para a senha do administrador.
    • Portas de entrada públicas: selecione Nenhum.
  4. Aceite os outros padrões e selecione Próximo: Discos.

  5. Aceite os padrões na guia Discos e selecione Próximo: Rede.

  6. Na guia Rede, verifique se myVNet está selecionado para a Rede virtual e se a Sub-rede está definida como myBackendSubnet.

  7. Em IP Público, selecione Nenhum.

  8. Aceite os outros padrões e selecione Próximo: Gerenciamento.

  9. Selecione Avançar: Monitoramento, defina Diagnóstico de inicialização como Desabilitar. Aceite os outros padrões e selecione Revisar + criar.

  10. Na guia Revisar + criar, examine as configurações, corrija os erros de validação e selecione Criar.

  11. Aguarde a criação da máquina virtual concluir antes de continuar.

Instalar o NGINX para teste

Neste exemplo, você instala NGINX nas máquinas virtuais apenas para verificar se o Azure criou o gateway de aplicativo com êxito.

  1. Abra um Cloud Shell do Bash. Para fazer isso, selecione o ícone do Cloud Shell na barra de navegação superior do portal do Azure e selecione Bash na lista suspensa.

    Captura de tela mostrando o Cloud Shell do Bash.

  2. Execute o seguinte comando para instalar o NGINX na máquina virtual:

     az vm extension set \
     --publisher Microsoft.Azure.Extensions \
     --version 2.0 \
     --name CustomScript \
     --resource-group myResourceGroupAG \
     --vm-name myVM \
     --settings '{ "fileUris": ["https://raw.githubusercontent.com/Azure/azure-docs-powershell-samples/master/application-gateway/iis/install_nginx.sh"], "commandToExecute": "./install_nginx.sh" }'
    
  3. Crie uma segunda máquina virtual e instale o NGINX usando as etapas que você concluiu anteriormente. Use myVM2 para o nome da máquina virtual e a configuração --vm-name do cmdlet.

Adicionar servidores back-end ao pool de back-end

  1. Selecione Todos os recursos e, em seguida, myAppGateway.

  2. Selecione Pools de back-end no menu esquerdo.

  3. Selecione myBackendPool.

  4. Em Tipo de destino, selecione Máquina virtual na lista suspensa.

  5. Em Destino, selecione o adaptador de rede associado em myVM na lista suspensa.

  6. Repita essa etapa para a myVM2.

    Adicionar servidores de back-end

  7. Clique em Salvar.

  8. Aguarde a conclusão da implantação antes de prosseguir para a próxima etapa.

Testar o gateway de aplicativo

Embora o NGINX não seja necessário para criar o gateway de aplicativo, você o instalou para verificar se o Azure criou o gateway de aplicativo com êxito. Use o serviço Web para testar o gateway de aplicativo:

  1. Localize o endereço IP público para o gateway de aplicativo na página Visão geral. Captura de tela do endereço IP público do Gateway de Aplicativo na página Visão geral.

    Ou você pode selecionar Todos os recursos, inserir myAGPublicIPAddress na caixa de pesquisa e, em seguida, selecioná-lo nos resultados da pesquisa. O Azure exibe o endereço IP público na página Visão geral.

  2. Copie o endereço IP público e cole-o na barra de endereços do seu navegador.

  3. Verifique a resposta. Uma resposta válida verifica se o gateway de aplicativo foi criado com êxito e é capaz de conectar-se com êxito ao back-end.

    Captura de tela de teste do gateway de aplicativo.

Limpar os recursos

Quando não precisar mais dos recursos que você criou com o gateway de aplicativo, remova o grupo de recursos. Ao remover o grupo de recursos, você também remove o gateway de aplicativo e todos os recursos relacionados.

Para remover o grupo de recursos:

  1. No menu esquerdo do portal do Azure, selecione Grupos de recursos.
  2. Na página Grupos de recursos, pesquise por myResourceGroupAG na lista e, em seguida, selecione.
  3. Na página Grupo de recursos, selecione Excluir grupo de recursos.
  4. Insira myResourceGroupAG para DIGITAR O NOME DO GRUPO DE RECURSOS e selecione Excluir.

Próximas etapas