Tutorial: Criar um gateway de aplicação com a Firewall de Aplicações Web com o portal do Azure

Este tutorial mostra como usar o portal do Azure para criar um Gateway de Aplicativo com um Firewall de Aplicativo Web (WAF). A WAF utiliza regras de OWASP para proteger a sua aplicação. Estas regras incluem a proteção contra ataques, tais como injeção SQL, ataques de scripts entre sites e assunção de controlo de sessão sem autorização. Depois de criar o gateway de aplicativo, teste-o para verificar se ele está funcionando corretamente. Com o Gateway de Aplicativo do Azure, você direciona o tráfego da Web do aplicativo 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 front-end público, um ouvinte básico para hospedar um único site neste gateway de aplicativo, duas máquinas virtuais Linux usadas para o pool de back-end e uma regra básica de roteamento de solicitações.

Neste tutorial, irá aprender a:

  • Criar um gateway de aplicação com a WAF ativada
  • Criar as máquinas virtuais usadas como servidores back-end
  • Criar uma conta de armazenamento e configurar o diagnóstico
  • Testar o gateway de aplicação

Diagrama do exemplo de firewall de aplicativo Web.

Nota

Recomendamos que utilize o módulo Azure Az do PowerShell para interagir com o Azure. Para começar, consulte Instalar o Azure PowerShell. Para saber como migrar para o módulo do Az PowerShell, veja Migrar o Azure PowerShell do AzureRM para o Az.

Pré-requisitos

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

Iniciar sessão no Azure

Inicie sessão no portal do Azure.

Criar um gateway de aplicação

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

  2. Selecione Rede e, em seguida, selecione Gateway de Aplicativo na lista Serviços populares do Azure .

Separador Informações Básicas

  1. Na guia Noções básicas, insira esses 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: digite myAppGateway para o nome do gateway de aplicativo.

    • Nível: selecione WAF V2.

    • Política WAF: Selecione Criar novo, digite um nome para a nova política e selecione OK. Isso cria uma política WAF básica com um CRS (Core Rule set) gerenciado.

      Captura de ecrã do separador Criar novo gateway de aplicação: Noções básicas.

  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ê cria uma nova rede virtual ao mesmo tempo em que cria o gateway de aplicativo. As instâncias do Application Gateway são criadas em sub-redes separadas. Você cria duas sub-redes neste exemplo: uma para o gateway de aplicativo e, posteriormente, adiciona outra para os servidores back-end.

    Em Configurar rede virtual, selecione Criar novo para criar uma nova rede virtual. Na janela Criar rede virtual que se abre, insira os seguintes valores para criar a rede virtual e uma sub-rede:

    • Nome: Digite myVNet para o nome da rede virtual.

    • Espaço de endereço: aceite o intervalo de endereços 10.0.0.0/16 .

    • Nome da sub-rede (sub-rede do Application Gateway): A área Sub-redes mostra uma sub-rede chamada Padrão. Altere o nome desta sub-rede para myAGSubnet e deixe o intervalo de endereços IPv4 padrão de 10.0.0.0/24.
      A sub-rede do gateway de aplicativo pode conter apenas gateways de aplicativo. Não são permitidos outros recursos.

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

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

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

Guia Frontends

  1. Na guia Frontends, verifique se o tipo de endereço IP Frontend está definido como Público.
    Você pode configurar o IP Frontend para ser Público ou Ambos de acordo com seu caso de uso. Neste exemplo, você escolhe um IP de Frontend Público.

    Nota

    Para o SKU do Application Gateway v2, os tipos de endereço IP público e frontend são suportados atualmente. Apenas a configuração de IP de frontend privado não é suportada no momento.

  2. Escolha Adicionar novo para o endereço IP público e digite myAGPublicIPAddress para o nome do endereço IP público e selecione OK.

    Captura de tela de Criar novo gateway de aplicativo: Frontends.

  3. Selecione Next: Backends.

Guia Back-ends

O pool de back-end é usado para rotear solicitações para os servidores de back-end que atendem à solicitação. Os pools de back-end podem ser compostos 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 o Serviço de Aplicativo do Azure. Neste exemplo, você cria um pool de back-end vazio com seu gateway de aplicativo e, posteriormente, adiciona destinos de back-end ao pool de back-end.

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

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

    • Nome: 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 novo gateway de aplicativo: Backends.

  4. Na guia Back-ends, selecione Next: Configuration.

Separador Configuração

Na guia Configuração, você conecta o pool de front-end e back-end criado usando uma regra de roteamento.

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

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

  3. Em 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: digite myListener para o nome do ouvinte.

    • Protocolo IP Frontend: Selecione IPv4 Público para escolher o IP público que você criou para o frontend.

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

    Captura de tela mostrando Criar novo 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 se abre, digite 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 novo 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 à guia Configuração.

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

  8. Selecione Seguinte: Etiquetas e, em seguida, Seguinte: Rever + criar.

Separador Rever + criar

Revise as configurações na guia Revisar + 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 o Azure criar 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 a sub-rede do servidor back-end

  1. Abra a rede virtual myVNet.
  2. Em Definições, selecione Sub-redes.
  3. Selecione + Sub-rede.
  4. Em Name, digite myBackendSubnet.
  5. Em Endereço inicial, digite 10.0.1.0.
  6. Selecione Adicionar para adicionar a sub-rede.

Adicionar destinos de back-end

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

Para fazer isso, você:

  1. Crie duas novas VMs Linux, myVM e myVM2, para serem usadas como servidores back-end.
  2. Instale o 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.
    • Palavra-passe: introduza uma palavra-passe para a palavra-passe de administrador.
    • Portas de entrada públicas: selecione Nenhuma.
  4. Aceite os outros padrões e selecione Avançar: Discos.

  5. Aceite os padrões da guia Discos e selecione Avançar: 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 Avançar: Gerenciamento.

  9. Selecione Next: Monitoring, defina Boot diagnostics como Disable. Aceite os outros padrões e selecione Revisar + criar.

  10. No separador Rever + criar, reveja as definições, corrija quaisquer erros de validação e, em seguida, selecione Criar.

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

Instalar NGINX para teste

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

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

    Captura de tela mostrando o Bash Cloud Shell.

  2. Certifique-se de que a sua sessão bash está definida para a sua subscrição:

    az account set --subscription "<your subscription name>"

  3. 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" }'
    
  4. Crie uma segunda máquina virtual e instale o NGINX usando estas etapas que você concluiu anteriormente. Use myVM2 para o nome da máquina virtual e para a --vm-name configuração do cmdlet.

Adicionar servidores de back-end ao pool de back-end

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

  2. Selecione Pools de back-end no menu à esquerda.

  3. Selecione myBackendPool.

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

  5. Em Destino, selecione a interface de rede associada para myVM na lista suspensa.

  6. Repita para myVM2.

    Adicionar servidores back-end

  7. Selecione Guardar.

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

Testar o gateway de aplicação

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

  1. Encontre o endereço IP público do gateway de aplicativo em sua página Visão geral . Captura de tela do endereço IP público do Application Gateway na página Visão geral.

    Em alternativa, pode selecionar Todos os recursos, introduzir 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ço do browser.

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

    Captura de tela do teste do gateway de aplicativo.

Clean up resources (Limpar recursos)

Quando não precisar mais dos recursos criados 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 seus 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, procure myResourceGroupAG na lista e selecione-a.
  3. Na página Grupo de recursos, selecione Excluir grupo de recursos.
  4. Digite myResourceGroupAG para DIGITE O NOME DO GRUPO DE RECURSOS e selecione Excluir.

Próximos passos