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

Este tutorial mostra-lhe como utilizar o portal do Azure para criar um Gateway de Aplicação com um Firewall de Aplicações 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 aplicação, teste-o para se certificar de que está a funcionar corretamente. Com Gateway de Aplicação do Azure, direciona o tráfego Web da aplicação para recursos específicos ao atribuir serviços de escuta a portas, criar regras e adicionar recursos a um conjunto de back-end. Por uma questão de simplicidade, este tutorial utiliza uma configuração simples com um IP de front-end público, um serviço de escuta básico para alojar um único site neste gateway de aplicação, duas máquinas virtuais linux utilizadas para o conjunto de back-end e uma regra básica de encaminhamento de pedidos.

Neste tutorial, ficará a saber como:

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

Diagrama do exemplo de firewall de aplicações Web.

Nota

Recomendamos que utilize o módulo do Azure Az PowerShell para interagir com o Azure. Veja Instalar o Azure PowerShell para começar. 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. É apresentada a janela Novo .

  2. Selecione Rede e, em seguida, selecione Gateway de Aplicação na lista Em destaque.

Separador Informações Básicas

  1. No separador Noções básicas , introduza estes valores para as seguintes definições do gateway de aplicação:

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

    • Nome do gateway de aplicação: introduza myAppGateway para o nome do gateway de aplicação.

    • Camada: selecione WAF V2.

    • Política WAF: selecione Criar novo, escreva um nome para a nova política e, em seguida, selecione OK. Esta ação cria uma política WAF básica com um Conjunto de Regras de Núcleo (CRS) gerido.

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

  2. Para o Azure comunicar entre os recursos que cria, precisa de uma rede virtual. Pode criar uma nova rede virtual ou utilizar uma existente. Neste exemplo, irá criar uma nova rede virtual ao mesmo tempo que cria o gateway de aplicação. Gateway de Aplicação instâncias são criadas em sub-redes separadas. Neste exemplo, pode criar duas sub-redes: uma para o gateway de aplicação e outra para os servidores de back-end.

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

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

    • Nome da sub-rede (Gateway de Aplicação sub-rede): a grelha Sub-redes mostrará uma sub-rede chamada Predefinição. Altere o nome desta sub-rede para myAGSubnet.
      A sub-rede do gateway de aplicação só pode conter gateways de aplicação. Não são permitidos outros recursos.

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

    • Intervalo de endereços (sub-rede do servidor de back-end): na segunda linha da Grelha de Sub-redes , introduza 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, introduza 10.21.1.0/24 para o intervalo de endereços de myBackendSubnet.

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

    Captura de ecrã a mostrar Criar novo gateway de aplicação: Criar rede virtual.

  3. No separador Noções Básicas , aceite os valores predefinidos para as outras definições e, em seguida, selecione Seguinte: Front-ends.

Separador Front-ends

  1. No separador Front-ends , verifique se o tipo de endereço IP de Front-end está definido como Público.
    Pode configurar o IP de Front-end para ser Público ou Ambos de acordo com o seu caso de utilização. Neste exemplo, irá escolher um IP de Front-end Público.

    Nota

    Para os tipos de endereços IP Gateway de Aplicação v2, são suportados hoje em dia os tipos de endereços IP Públicos e Front-end. A configuração de IP de front-end privado só não é atualmente suportada.

  2. Selecione Adicionar novo para o endereço IP Público e introduza myAGPublicIPAddress para o nome do endereço IP público e, em seguida, selecione OK.

    Captura de ecrã a mostrar Criar novo gateway de aplicação: Front-ends.

  3. Selecione Seguinte: Back-ends.

Separador Back-ends

O conjunto de back-end é utilizado para encaminhar pedidos para os servidores de back-end que servem o pedido. Os conjuntos de back-end podem ser compostos por NICs, conjuntos de dimensionamento de máquinas virtuais, IPs públicos, IPs internos, nomes de domínio completamente qualificados (FQDN) e back-ends multi-inquilino, como Serviço de Aplicações do Azure. Neste exemplo, irá criar um conjunto de back-end vazio com o gateway de aplicação e, posteriormente, adicionar destinos de back-end ao conjunto de back-end.

  1. No separador Back-ends , selecione Adicionar um conjunto de back-end.

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

    • Nome: introduza myBackendPool para o nome do conjunto de back-end.
    • Adicionar conjunto de back-end sem destinos: selecione Sim para criar um conjunto de back-end sem destinos. Irá adicionar destinos de back-end depois de criar o gateway de aplicação.
  3. Na janela Adicionar um conjunto de back-end , selecione Adicionar para guardar a configuração do conjunto de back-end e voltar ao separador Back-ends .

    Captura de ecrã a mostrar Criar novo gateway de aplicação: Back-ends.

  4. No separador Back-ends , selecione Seguinte: Configuração.

Separador Configuração

No separador Configuração , irá ligar o conjunto de front-end e back-end que criou com uma regra de encaminhamento.

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

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

  3. Em Prioridade, escreva um número de prioridade.

  4. Uma regra de encaminhamento requer um serviço de escuta. No separador Serviço de Escuta na janela Adicionar uma regra de encaminhamento , introduza os seguintes valores para o serviço de escuta:

    • Nome do serviço de escuta: introduza myListener para o nome do serviço de escuta.

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

      Aceite os valores predefinidos para as outras definições no separador Serviço de Escuta e, em seguida, selecione o separador Destinos de back-end para configurar o resto da regra de encaminhamento.

    Captura de ecrã a mostrar Criar novo gateway de aplicação: serviço de escuta.

  5. No separador Destinos de back-end , selecione myBackendPool para o destino de Back-end.

  6. Para as definições de Back-end, selecione Adicionar novo para criar uma nova definição de Back-end. Esta definição determina o comportamento da regra de encaminhamento. Na janela Adicionar definição de Back-end que é aberta, introduza myBackendSetting para o nome das definições de Back-end. Aceite os valores predefinidos das outras definições na janela e, em seguida, selecione Adicionar para regressar à janela Adicionar uma regra de encaminhamento .

    Captura de ecrã a mostrar a definição Criar novo gateway de aplicação, Back-end.

  7. Na janela Adicionar uma regra de encaminhamento , selecione Adicionar para guardar a regra de encaminhamento e regresse ao separador Configuração .

    Captura de ecrã a mostrar Criar novo gateway de aplicação: regra de encaminhamento.

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

Separador Rever + criar

Reveja as definições no separador Rever + criar e, em seguida, selecione Criar para criar a rede virtual, o endereço IP público e o gateway de aplicação. O Azure pode demorar vários minutos a criar o gateway de aplicação.

Aguarde até que a implementação seja concluída com êxito antes de avançar para a secção seguinte.

Adicionar destinos de back-end

Neste exemplo, irá utilizar máquinas virtuais como o back-end de destino. Pode utilizar máquinas virtuais existentes ou criar novas. Vai criar duas máquinas virtuais que o Azure utiliza como servidores de back-end para o gateway de aplicação.

Para tal, irá:

  1. Crie duas novas VMs do Linux, myVM e myVM2, para serem utilizadas como servidores de back-end.
  2. Instale o NGINX nas máquinas virtuais para verificar se o gateway de aplicação foi criado com êxito.
  3. Adicione os servidores de back-end ao conjunto de back-end.

Criar uma máquina virtual

  1. No portal do Azure, selecione Criar um recurso. É apresentada a janela Criar um recurso .

  2. Em Máquina virtual, selecione Criar.

  3. Introduza estes valores no separador Noções Básicas para as seguintes definições de máquina virtual:

    • Grupo de recursos: selecione myResourceGroupAG para o nome do grupo de recursos.
    • Nome da máquina virtual: introduza myVM para o nome da máquina virtual.
    • Imagem: Ubuntu Server 20.04 LTS - Gen2.
    • Tipo de autenticação: Palavra-passe
    • Nome de utilizador: introduza um nome para o nome de utilizador do administrador.
    • Palavra-passe: introduza uma palavra-passe para a palavra-passe de administrador.
    • Portas de entrada públicas: selecione Nenhuma.
  4. Aceite as outras predefinições e, em seguida, selecione Seguinte: Discos.

  5. Aceite as predefinições do separador Discos e, em seguida, selecione Seguinte: Rede.

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

  7. Para IP Público, selecione Nenhum.

  8. Aceite as outras predefinições e, em seguida, selecione Seguinte: Gestão.

  9. Selecione Seguinte: Monitorização, defina Diagnóstico de arranque como Desativar. Aceite as outras predefinições e, em seguida, selecione Rever + criar.

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

  11. Aguarde até que a criação da máquina virtual seja concluída antes de continuar.

Instalar o NGINX para teste

Neste exemplo, vai instalar o NGINX nas máquinas virtuais apenas para verificar se o Azure criou o gateway de aplicação com êxito.

  1. Abra uma Cloud Shell do Bash. Para tal, selecione o ícone de Cloud Shell na barra de navegação superior do portal do Azure e, em seguida, selecione Bash na lista pendente.

    Captura de ecrã a mostrar a 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 com estes passos que concluiu anteriormente. Utilize myVM2 para o nome da máquina virtual e para a definição --vm-name do cmdlet.

Adicionar servidores de back-end ao conjunto de back-end

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

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

  3. Selecione myBackendPool.

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

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

  6. Repita para myVM2.

    Adicionar servidores back-end

  7. Selecione Guardar.

  8. Aguarde até que a implementação seja concluída antes de avançar para o passo seguinte.

Testar o gateway de aplicação

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

  1. Localize o endereço IP público do gateway de aplicação na respetiva página Descrição geral . Captura de ecrã a mostrar Gateway de Aplicação endereço IP público na página Descriçã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 apresenta o endereço IP público na página Descrição geral .

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

  3. Verifique a resposta. Uma resposta válida verifica se o gateway de aplicação foi criado com êxito e pode ligar-se com êxito ao back-end.

    Captura de ecrã a mostrar o teste do gateway de aplicação.

Limpar os recursos

Quando já não precisar dos recursos que criou com o gateway de aplicação, remova o grupo de recursos. Ao remover o grupo de recursos, também remove o gateway de aplicação 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 , procure myResourceGroupAG na lista e, em seguida, selecione-o.
  3. Na página Grupo de recursos, selecione Eliminar grupo de recursos.
  4. Introduza myResourceGroupAG para TIPO O NOME DO GRUPO DE RECURSOS e, em seguida, selecione Eliminar.

Passos seguintes