Configure uma política de firewall de rede global para ativar o tráfego de entrada

Numa rede da nuvem virtual privada (VPC) personalizada com várias sub-redes, por predefinição, o tráfego de saída é permitido, mas o tráfego de entrada é recusado. Para ativar o tráfego de entrada e permitir que as instâncias de VMs em sub-redes diferentes comuniquem entre si, pode criar uma política de firewall de rede global na firewall de nova geração da nuvem na rede VPC, que permite o tráfego de entrada de um intervalo de endereços IP específico da sub-rede.

Este tutorial descreve como configurar uma política de firewall de rede global para permitir o tráfego interno entre sub-redes de VMs numa rede VPC personalizada.

Objetivos

Este tutorial mostra como concluir as seguintes tarefas:

  • Crie uma rede VPC personalizada com duas sub-redes.
  • Crie duas instâncias de VM Linux (uma VM cliente e uma VM servidor) sem endereços IP externos em sub-redes separadas da rede VPC.
  • Crie um Cloud Router e um gateway do Cloud NAT como prática recomendada para transferir pacotes de software.
  • Instale o servidor Apache na VM do servidor.
  • Crie uma política de firewall de rede global com as seguintes regras:
    • Permitir tráfego de saída para qualquer destino.
    • Ative o registo da firewall.
    • Use o Identity-Aware Proxy (IAP) para permitir a conetividade SSH às VMs.
    • Permitir que a VM do cliente se ligue à VM do servidor que executa o servidor Apache.
  • Teste a ligação.

O diagrama seguinte mostra o fluxo do tráfego entre sub-redes de uma rede VPC personalizada depois de uma política de firewall de rede global permitir o tráfego de entrada interno.

Uma política de firewall de rede global que permite o tráfego de entrada a partir de uma sub-rede numa rede VPC personalizada.
Uma política de firewall de rede global que permite o tráfego de entrada a partir de uma sub-rede numa rede VPC personalizada (clique para aumentar).

Antes de começar

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  5. Verify that billing is enabled for your Google Cloud project.

  6. Ative a API Compute Engine para o seu projeto.
  7. Certifique-se de que tem a função de gestão de identidade e de acesso Administrador de rede de computação (roles/compute.networkAdmin).
  8. Se preferir trabalhar a partir da linha de comandos, instale a CLI do Google Cloud. Para ver informações conceptuais e de instalação sobre a ferramenta, consulte a vista geral da CLI gcloud.

    Nota: se não tiver executado a CLI Google Cloud anteriormente, execute primeiro gcloud init para inicializar o diretório da CLI gcloud.

Crie uma rede VPC personalizada com sub-redes

Nesta secção, cria uma rede VPC no modo personalizado com duas sub-redes IPv4.

Consola

  1. Na Google Cloud consola, aceda à página Redes VPC.

    Aceda a redes de VPC

  2. Clique em Criar rede de VPC.

  3. Em Nome, introduza vpc-fw-rules.

  4. Em Descrição, introduza VPC network for the firewall rules tutorial.

  5. Para o Modo de criação de sub-rede, selecione Personalizado.

  6. Na secção Nova sub-rede, especifique os seguintes parâmetros de configuração para uma sub-rede:

    • Nome: subnet-fw-rules-server
    • Região: us-central1 (Iowa)
    • Intervalo IPv4: 10.0.0.0/24
    • Acesso privado ao Google: ativado
  7. Clique em Concluído.

  8. Clique em Adicionar sub-rede e especifique os seguintes parâmetros de configuração:

    • Nome: subnet-fw-rules-client
    • Região: us-central1 (Iowa)
    • Intervalo IPv4: 192.168.10.0/24
    • Acesso privado ao Google: ativado
  9. Clique em Concluído.

  10. Clique em Criar.

gcloud

  1. Para criar uma rede VPC, execute o seguinte comando:

    gcloud compute networks create vpc-fw-rules \
      --subnet-mode=custom \
      --description="VPC network for the firewall rules tutorial"
    
  2. Opcional: na caixa de diálogo Autorizar Cloud Shell, clique em Autorizar.

  3. Para criar uma sub-rede, execute o seguinte comando:

    gcloud compute networks subnets create subnet-fw-rules-server \
      --network=vpc-fw-rules \
      --region=us-central1 \
      --range=10.0.0.0/24 \
      --enable-private-ip-google-access
    
  4. Para criar outra sub-rede, execute o seguinte comando:

    gcloud compute networks subnets create subnet-fw-rules-client \
      --network=vpc-fw-rules \
      --region=us-central1 \
      --range=192.168.10.0/24 \
      --enable-private-ip-google-access
    

Por predefinição, a rede VPC tem duas regras IPv4 implícitas:

  • Uma regra de saída allow com o destino 0.0.0.0/0 e a prioridade mais baixa possível (65535) que permite que qualquer instância envie tráfego para qualquer destino, exceto para o tráfego bloqueado por Google Cloud.
  • Uma entrada deny com origem 0.0.0.0/0 e a prioridade mais baixa possível (65535) que protege todas as instâncias bloqueando as ligações recebidas às mesmas.

Para mais informações, consulte as regras implícitas.

Crie VMs de cliente e servidor

Nesta secção, cria duas VMs Linux sem endereços IP externos nas sub-redes da rede VPC que criou na secção anterior.

Crie a VM do servidor

Consola

Para criar a VM do servidor, siga estes passos:

  1. Na Google Cloud consola, aceda à página Criar uma instância.

    Aceda a Criar uma instância

  2. No painel Configuração da máquina, faça o seguinte:

    1. Em Nome, introduza vm-fw-rules-server.
    2. Para Região, selecione us-central1 (Iowa).
  3. No menu de navegação, clique em Rede.

    1. Na secção Interfaces de rede, clique em default e especifique os seguintes parâmetros de configuração:
      • Rede: vpc-fw-rules
      • Subnetwork: subnet-fw-rules-server IPv4 (10.0.0.0/24)
      • Endereço IPv4 externo: Nenhum
    2. Clique em Concluído.
  4. Clique em Criar.

gcloud

Para criar a VM do servidor, execute o seguinte comando:

gcloud compute instances create vm-fw-rules-server \
    --network=vpc-fw-rules \
    --zone=us-central1-a \
    --subnet=subnet-fw-rules-server \
    --stack-type=IPV4_ONLY \
    --no-address

Crie a VM do cliente

Consola

Para criar a VM do cliente, siga estes passos:

  1. Na Google Cloud consola, aceda à página Criar uma instância.

    Aceda a Criar uma instância

  2. No painel Configuração da máquina, faça o seguinte:

    1. Em Nome, introduza vm-fw-rules-client.
    2. Para Região, selecione us-central1 (Iowa).
  3. No menu de navegação, clique em Rede.

    1. Na secção Interfaces de rede, clique em default e especifique os seguintes parâmetros de configuração:
      • Rede: vpc-fw-rules
      • Subnetwork: subnet-fw-rules-client IPv4 (192.168.10.0/24)
      • Endereço IPv4 externo: Nenhum
    2. Clique em Concluído.
  4. Clique em Criar.

gcloud

Para criar a VM do cliente, execute o seguinte comando:

gcloud compute instances create vm-fw-rules-client \
    --network=vpc-fw-rules \
    --zone=us-central1-a \
    --subnet=subnet-fw-rules-client \
    --stack-type=IPV4_ONLY \
    --no-address

Crie um Cloud Router e um gateway do Cloud NAT

Na secção anterior, criou duas VMs Linux sem endereços IPv4 públicos. Para permitir que essas VMs acedam à Internet pública, crie um Cloud Router e um gateway Cloud NAT.

Consola

  1. Na Google Cloud consola, aceda à página Cloud NAT.

    Aceda ao Cloud NAT

  2. Clique em Começar ou Criar gateway de NAT da nuvem.

  3. Em Nome da gateway, introduza gateway-fw-rules.

  4. Para Tipo de NAT, selecione Público.

  5. Na secção Selecionar router na nuvem, especifique os seguintes parâmetros de configuração:

    • Rede: vpc-fw-rules
    • Região: us-central1
    • Cloud Router: criar novo router.
      1. Em Nome, introduza router-fw-rules.
      2. Clique em Criar.
  6. Clique em Criar.

gcloud

  1. Para criar um Cloud Router, execute o seguinte comando:

    gcloud compute routers create router-fw-rules \
      --network=vpc-fw-rules \
      --region=us-central1
    
  2. Para criar um gateway NAT da Cloud, execute o seguinte comando:

    gcloud compute routers nats create gateway-fw-rules \
      --router=router-fw-rules \
      --region=us-central1 \
      --auto-allocate-nat-external-ips \
      --nat-all-subnet-ip-ranges
    

Crie uma política de firewall de rede global

Nesta secção, cria uma política de firewall de rede global com o seguinte:

  • Uma regra de saída com 0.0.0.0./0 como destino.
  • Registo ativado. O registo de regras de firewall permite-lhe auditar, validar e analisar os efeitos das suas regras de firewall.

Consola

  1. Na Google Cloud consola, aceda à página Políticas de firewall.

    Aceder a Políticas de firewall

  2. Clique em Criar política de firewall.

  3. Na secção Configurar política, em Nome da política, introduza fw-policy.

  4. Em Âmbito de implementação, selecione Global e clique em Continuar.

  5. Para criar regras para a sua política, na secção Adicionar regras, clique em Adicionar regra.

    1. Para Prioridade, introduza 65534.
    2. Em Direção do trânsito, selecione Saída.
    3. Para Registos, selecione Ativar.
    4. Na secção Segmentar, para Tipo de segmentação, selecione Todas as instâncias na rede.
    5. Na secção Destino, para Intervalos de IPs, introduza 0.0.0.0/0.
    6. Na secção Protocolo e portas, selecione Permitir tudo.
    7. Clique em Criar.
  6. Clique em Continuar.

  7. Para associar uma rede VPC à política, na secção Associar política a redes VPC, clique em Associar.

  8. Selecione a caixa de verificação de vpc-fw-rules e clique em Associar.

  9. Clique em Continuar.

  10. Clique em Criar.

gcloud

  1. Para criar uma política de firewall, execute o seguinte comando:

    gcloud compute network-firewall-policies create fw-policy \
        --global
    
  2. Para criar uma regra de firewall que permita o tráfego para todos os destinos e ative os registos, execute o seguinte comando:

    gcloud compute network-firewall-policies rules create 65534 \
        --firewall-policy=fw-policy \
        --direction=EGRESS \
        --action=ALLOW \
        --dest-ip-ranges=0.0.0.0/0 \
        --layer4-configs=all \
        --global-firewall-policy \
        --enable-logging
    
  3. Para associar a política de firewall à rede VPC, execute o seguinte comando:

    gcloud compute network-firewall-policies associations create \
        --firewall-policy=fw-policy \
        --network=vpc-fw-rules \
        --name=pol-association-fw-rules \
        --global-firewall-policy
    

Adicione uma regra de firewall para o IAP

Na secção anterior, criou VMs Linux sem endereços IP externos. Nesta secção, ativa o Identity-Aware Proxy (IAP) para permitir o acesso administrativo às instâncias de VM que não têm endereços IP externos.

Para permitir que o IAP se ligue às suas instâncias de VM, crie uma regra de firewall que:

  • aplica-se a todas as instâncias de VM às quais quer que seja possível aceder através do IAP.
  • permite o tráfego de entrada do intervalo de IP 35.235.240.0/20. Este intervalo contém todos os endereços IP que o IAP usa para o encaminhamento TCP.

    Para VMs IPv6, use o seguinte intervalo de IP: 2600:2d00:1:7::/64.

  • permite ligações a todas as portas que quer que sejam acessíveis por através do encaminhamento TCP do IAP, por exemplo, a porta 22 para SSH e a porta 3389 para RDP.

Consola

Para permitir o acesso RDP e SSH a todas as instâncias de VM na rede vpc-fw-rules, faça o seguinte:

  1. Na Google Cloud consola, aceda à página Políticas de firewall.

    Aceder a Políticas de firewall

  2. Na secção Políticas de firewall de rede, clique em fw-policy.

  3. Clique em Criar regra.

  4. Para Prioridade, introduza 500.

  5. Para Direção do tráfego, selecione Entrada.

  6. Para Registos, selecione Ativar.

  7. Na secção Segmentar, para Tipo de segmentação, selecione Todas as instâncias na rede.

  8. Na secção Origem, para Intervalos IP, introduza 35.235.240.0/20.

  9. Na secção Protocolos e portas, selecione Protocolos e portas especificados.

  10. Selecione a caixa de verificação TCP e, em Portas, introduza 22 e 3389 separados por uma vírgula.

  11. Clique em Criar.

gcloud

Para permitir o acesso RDP e SSH a todas as instâncias de VM na rede vpc-fw-rules, execute o seguinte comando:

gcloud compute network-firewall-policies rules create 500 \
    --firewall-policy=fw-policy \
    --direction=INGRESS \
    --action=ALLOW \
    --src-ip-ranges=35.235.240.0/20 \
    --global-firewall-policy \
    --layer4-configs tcp:22,tcp:3389 \
    --enable-logging

Instale o servidor Apache

Nesta secção, instala o servidor Apache na VM do servidor.

  1. Na Google Cloud consola, aceda à página Instâncias de VM.

    Aceder às instâncias de VM

  2. Na coluna Ligar da VM vm-fw-rules-server, clique em SSH.

  3. Na caixa de diálogo SSH no navegador, clique em Autorizar e aguarde até que a ligação seja estabelecida.

  4. Para instalar o pacote apache2, na linha de comandos, execute o seguinte comando:

    sudo apt update && sudo apt -y install apache2
    

    Após a instalação do Apache, o sistema operativo inicia automaticamente o servidor Apache.

  5. Para verificar se o Apache está em execução, execute o seguinte comando:

    sudo systemctl status apache2 --no-pager
    
  6. Para substituir a página Web predefinida do servidor Web Apache, execute o seguinte comando:

    echo '<!doctype html><html><body><h1>Hello World!</h1></body></html>' | sudo tee /var/www/html/index.html
    
  7. Feche a caixa de diálogo SSH no navegador.

Teste a ligação

Depois de instalar o servidor Apache na VM do servidor, estabeleça ligação à VM do servidor a partir da VM do cliente através do endereço IP interno da VM do servidor.

  1. Na Google Cloud consola, aceda à página Instâncias de VM.

    Aceder às instâncias de VM

  2. Na coluna IP interno da VM vm-fw-rules-server, copie o endereço IP interno da VM.

  3. Na coluna Ligar da VM vm-fw-rules-client, clique em SSH.

  4. Na caixa de diálogo SSH no navegador, clique em Autorizar e aguarde até que a ligação seja estabelecida.

  5. Para validar a associação, execute o seguinte comando:

    curl INTERNAL_IP -m 2
    

    Substitua INTERNAL_IP pelo endereço IP da VM vm-fw-rules-server.

    A mensagem Connection timed out é esperada porque cada VM cria uma regra de firewall de entrada implícita que nega todo o tráfego. Para permitir o tráfego, adicione uma regra de entrada à política de firewall.

  6. Feche a caixa de diálogo SSH no navegador.

Atualize a política de firewall de rede global para permitir tráfego interno

Nesta secção, atualiza a política de firewall de rede global para permitir o tráfego interno da sub-rede da VM do cliente.

Consola

  1. Na Google Cloud consola, aceda à página Políticas de firewall.

    Aceder a Políticas de firewall

  2. Na secção Políticas de firewall de rede, clique em fw-policy.

  3. Clique em Criar regra.

  4. Para Prioridade, introduza 501.

  5. Para Direção do tráfego, selecione Entrada.

  6. Para Registos, selecione Ativar.

  7. Na secção Segmentar, para Tipo de segmentação, selecione Todas as instâncias na rede.

  8. Na secção Origem, para Intervalos IP, introduza 192.168.10.0/24.

    Lembre-se de que o intervalo de IP 192.168.10.0/24 está atribuído a subnet-fw-rules-client.

  9. Na secção Destino, para Tipo de IP, selecione IPv4. Em Intervalos de IP, especifique 10.0.0.0/24.

    Lembre-se de que o intervalo de IP 10.0.0.0/24 é atribuído a subnet-fw-rules-server.

  10. Clique em Criar.

gcloud

Para atualizar a política de firewall, execute o seguinte comando:

gcloud compute network-firewall-policies rules create 501 \
    --firewall-policy=fw-policy \
    --direction=INGRESS \
    --action=ALLOW \
    --src-ip-ranges=192.168.10.0/24 \
    --dest-ip-ranges=10.0.0.0/24 \
    --layer4-configs=all \
    --global-firewall-policy \
    --enable-logging

Teste a ligação

Depois de criar a política de firewall, estabeleça ligação à VM do servidor a partir da VM do cliente usando o endereço IP interno da VM do servidor.

  1. Na Google Cloud consola, aceda à página Instâncias de VM.

    Aceder às instâncias de VM

  2. Na coluna IP interno da VM vm-fw-rules-server, copie o endereço IP interno da VM.

  3. Na coluna Ligar da VM vm-fw-rules-client, clique em SSH.

  4. Na caixa de diálogo SSH no navegador, clique em Autorizar e aguarde até que a ligação seja estabelecida.

  5. Para validar a associação, execute o seguinte comando:

    curl INTERNAL_IP -m 2
    

    Substitua INTERNAL_IP pelo endereço IP da VM vm-fw-rules-server.

    A mensagem esperada é <!doctype html><html><body><h1>Hello World!</h1></body></html>.

  6. Feche a caixa de diálogo SSH no navegador.

Para ver os registos da firewall, consulte o artigo Ver registos.

Limpar

Para evitar incorrer em custos na sua conta do Google Cloud pelos recursos usados neste tutorial, elimine o projeto que contém os recursos ou mantenha o projeto e elimine os recursos individuais.

Nesta secção, elimina os recursos criados neste tutorial.

Elimine a política de firewall

Consola

  1. Na Google Cloud consola, aceda à página Políticas de firewall.

    Aceder a Políticas de firewall

  2. Na secção Políticas de firewall de rede, clique no nome fw-policy.

  3. Clique no separador Associações.

  4. Selecione a caixa de verificação vpc-fw-rules e clique em Remover associação.

  5. Na caixa de diálogo Remova uma associação de política de firewall, clique em Remover.

  6. Junto ao título fw-policy, clique em Eliminar.

  7. Na caixa de diálogo Eliminar uma política de firewall, clique em Eliminar.

    Depois de uma política ser eliminada, a Google Cloud consola apresenta a página Políticas de firewall.

gcloud

  1. Remova a associação entre a política de firewall e a rede de VPC.

    gcloud compute network-firewall-policies associations delete \
      --name=pol-association-fw-rules \
      --firewall-policy=fw-policy \
      --global-firewall-policy
    

    Se configurar a associação entre a política de firewall e a rede VPC através da Google Cloud consola, não use o comando da CLI gcloud para remover a associação. Se não se lembrar de como criou a associação ou receber o erro The network firewall policy does not have an association with pol-association-fw-rules. quando executar o comando, use a consola para remover a associação. Google Cloud

  2. Elimine a política de firewall.

    gcloud compute network-firewall-policies delete fw-policy \
        --global
    

Elimine as VMs

Consola

  1. Na Google Cloud consola, aceda à página Instâncias de VM.

    Aceder às instâncias de VM

  2. Selecione as caixas de verificação das VMs vm-fw-rules-client e vm-fw-rules-server.

  3. Clique em Eliminar.

  4. Na caixa de diálogo Eliminar 2 instâncias?, clique em Eliminar.

gcloud

Para eliminar VMs vm-fw-rules-client e vm-fw-rules-server, execute o seguinte comando:

gcloud compute instances delete vm-fw-rules-client vm-fw-rules-server \
    --zone=us-central1-a

Quando lhe for pedido, prima Y para confirmar e, em seguida, prima Enter.

Elimine a gateway do Cloud NAT e o Cloud Router

Consola

  1. Na Google Cloud consola, aceda à página Routers na nuvem.

    Aceda a Cloud Routers

  2. Selecione a caixa de verificação router-fw-rules.

  3. Clique em Eliminar.

  4. Na caixa de diálogo Delete router-fw-rules, clique em Delete.

Quando elimina um Cloud Router, o gateway Cloud NAT associado também é eliminado.

gcloud

Para eliminar o Cloud Router router-fw-rules, execute o seguinte comando:

gcloud compute routers delete router-fw-rules \
    --region=us-central1

Quando lhe for pedido, prima Y para confirmar e, em seguida, prima Enter.

Quando elimina um Cloud Router, o gateway Cloud NAT associado também é eliminado.

Elimine a rede de VPC e as respetivas sub-redes

Consola

  1. Na Google Cloud consola, aceda à página Redes VPC.

    Aceda a redes de VPC

  2. Na coluna Nome, clique em vpc-fw-rules.

  3. Clique em Eliminar rede de VPC.

  4. Na caixa de diálogo Eliminar uma rede, clique em Eliminar.

Quando elimina uma VPC, as respetivas sub-redes também são eliminadas.

gcloud

  1. Para eliminar as sub-redes da rede VPC vpc-fw-rules, execute o seguinte comando:

    gcloud compute networks subnets delete subnet-fw-rules-client subnet-fw-rules-server \
        --region=us-central1
    

    Quando lhe for pedido, prima Y para confirmar e prima Enter.

  2. Para eliminar a rede VPC vpc-fw-rules, execute o seguinte comando:

    gcloud compute networks delete vpc-fw-rules
    

    Quando lhe for pedido, prima Y para confirmar e, em seguida, prima Enter.