Configurar uma política de firewall de rede global para permitir o tráfego de entrada


Em uma rede personalizada de nuvem privada virtual (VPC) com várias sub-redes, por padrão, o tráfego de saída é permitido, mas o de entrada é negado. Para ativar o tráfego de entrada e permitir que instâncias de VM em diferentes sub-redes se comuniquem entre si, crie uma política de firewall de rede global no Cloud Firewall de última geração na rede VPC, o que permite o tráfego de entrada de um intervalo de endereços IP específico da sub-rede.

Neste tutorial, descrevemos como configurar uma política de firewall de rede global para permitir o tráfego interno entre sub-redes da VM em uma rede VPC personalizada.

Objetivos

Nesta seção, mostramos como concluir as seguintes tarefas:

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

O diagrama a seguir mostra o fluxo de tráfego entre sub-redes de uma rede VPC personalizada depois que uma política de firewall de rede global permite o tráfego de entrada interna.

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

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.

    Go to project selector

  3. Make sure 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.

    Go to project selector

  5. Make sure that billing is enabled for your Google Cloud project.

  6. Ative a API Compute Engine no projeto.
  7. Verifique se você tem o papel de Administrador de rede do Compute (roles/compute.networkAdmin) e o papel de gerenciamento de identidade e acesso.
  8. Se você preferir trabalhar na linha de comando, instale a Google Cloud CLI. Para informações conceituais e de instalação sobre a ferramenta, consulte visão geral da CLI gcloud.

    Observação: se você ainda não executou a CLI do Google Cloud, primeiro execute gcloud init para inicializar o diretório gcloud.

Criar uma rede VPC personalizada com sub-redes

Nesta seção, você cria uma rede VPC de modo personalizado com duas sub-redes IPv4.

Console

  1. No Console do Google Cloud, acesse a página Redes VPC.

    Acessar redes VPC

  2. Clique em Criar rede VPC.

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

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

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

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

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

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

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

  10. Role para baixo e 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 o Cloud Shell, clique em Autorizar.

  3. Para criar uma sub-rede, execute o comando a seguir.

    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 padrão, a rede VPC tem duas regras IPv4 implícitas:

  • Uma regra de saída allow com destino 0.0.0.0/0 e a menor prioridade possível (65535) que permite que qualquer instância envie tráfego para qualquer destino, exceto o tráfego bloqueado pelo Google Cloud.
  • Uma entrada deny com a origem 0.0.0.0/0 e a menor prioridade possível (65.535) que protege todas as instâncias bloqueando a entrada de conexões.

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

Criar VMs de cliente e servidor

Nesta seção, você criará duas VMs do Linux sem endereços IP externos nas sub-redes da rede VPC criada na seção anterior.

Criar a VM do servidor

Console

Para criar a VM do servidor, siga estas etapas:

  1. No console do Google Cloud, acesse a página Criar uma instância.

    Acesse "Criar uma instância"

  2. Em Nome, insira vm-fw-rules-server.

  3. Em Região, selecione us-central1 (Iowa).

  4. Role para baixo, expanda Opções avançadas e depois expanda Rede.

  5. Na seção Interfaces de rede, especifique os seguintes parâmetros de configuração:

    • Rede: vpc-fw-rules
    • Sub-rede: subnet-fw-rules-server IPv4 (10.0.0.0/24)
    • Endereço IPv4 externo: nenhum
  6. Clique em Concluído.

  7. 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

Criar a VM do cliente

Console

Para criar a VM do cliente, siga estas etapas:

  1. No console do Google Cloud, acesse a página Criar uma instância.

    Acesse "Criar uma instância"

  2. Em Nome, insira vm-fw-rules-client.

  3. Em Região, selecione us-central1 (Iowa).

  4. Role para baixo, expanda Opções avançadas e depois expanda Rede.

  5. Na seção Interfaces de rede, especifique os seguintes parâmetros de configuração:

    • Rede: vpc-fw-rules
    • Sub-rede: subnet-fw-rules-client IPv4 (192.168.10.0/24)
    • Endereço IPv4 externo: nenhum
  6. Clique em Concluído.

  7. Clique em Criar.

gcloud

Para criar a VM, 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

Criar um Cloud Router e um gateway NAT do Cloud

Na seção anterior, você criou duas VMs do Linux sem endereços IPv4 públicos. Para permitir que essas VMs acessem a Internet pública, crie um Cloud Router e um gateway do Cloud NAT.

Console

  1. No Console do Google Cloud, acesse a página do Cloud NAT.

    Acesse o Cloud NAT

  2. Clique em Primeiros passos ou Criar gateway Cloud NAT.

  3. Em Nome do gateway, digite gateway-fw-rules.

  4. Em Tipo de NAT, selecione Public.

  5. Na seção Selecionar o Cloud Router, especifique os seguintes parâmetros de configuração:

    • Rede: vpc-fw-rules
    • Região: us-central1
    • Cloud Router: criar novo roteador.
      1. Em Nome, insira 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 do Cloud NAT, 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
    

Criar uma política de firewall de rede global

Nesta seção, você criará uma política de firewall de rede global com o seguinte:

  • Uma regra de saída com 0.0.0.0./0 como destino.
  • Geração de registros ativada. O recurso de geração de registros de regras de firewall permite auditar, verificar e analisar os efeitos das suas regras de firewall.

Console

  1. No Console do Google Cloud, acesse a página políticas de Firewall.

    Acessar as políticas de firewall

  2. Clique em Criar política de firewall.

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

  4. Em Escopo da implantação, selecione Global e clique em Continuar.

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

    1. Em Prioridade, digite 65534.
    2. Em Direção do tráfego, selecione Saída.
    3. Em Registros, selecione Ativado.
    4. Na seção Destino, em Tipo de destino, selecione Todas as instâncias na rede.
    5. Na seção Destino, em Intervalos de IP, digite 0.0.0.0/0.
    6. Na seção Protocolo e portas, selecione Permitir tudo.
    7. Clique em Criar.
  6. Clique em Continuar.

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

  8. Marque a caixa de seleção 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 registros, 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
    

Adicionar uma regra de firewall para o IAP

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

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

  • aplica-se a todas as instâncias da VM que você quer que sejam acessíveis usando o IAP.
  • permite o tráfego de entrada do intervalo de IP 35.235.240.0/20. Esse intervalo contém todos os endereços IP que o IAP usa para o encaminhamento de TCP.
  • permite conexões com todas as portas que você quer que sejam acessíveis usando o encaminhamento IAP para TCP, por exemplo, porta 22 para SSH e porta 3389 para RDP.

Console

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

  1. No Console do Google Cloud, acesse a página políticas de Firewall.

    Acessar as políticas de firewall

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

  3. Clique em Criar regra.

  4. Em Prioridade, digite 500.

  5. Em Direção de tráfego, selecione Entrada.

  6. Em Registros, selecione Ativado.

  7. Na seção Destino, em Tipo de destino, selecione Todas as instâncias na rede.

  8. Na seção Origem, em Intervalos de IP, insira 35.235.240.0/20.

  9. Na seção Protocolos e portas, selecione Portas e protocolos especificados.

  10. Marque a caixa de seleção TCP e, em Portas, insira 22 e 3389 separados por 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

Instalar o servidor Apache

Nesta seção, você instalará o servidor Apache na VM do servidor.

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

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

  3. Na caixa de diálogo SSH no navegador, clique em Autorizar e aguarde a conexão ser estabelecida.

  4. Para instalar o pacote apache2, execute o seguinte comando no prompt de comando:

    sudo apt update && sudo apt -y install apache2
    

    Depois da instalação do Apache, o sistema operacional 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 da Web padrão do servidor da 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.

Testar a conexão

Depois de instalar o servidor Apache na VM do servidor, conecte-se à VM do servidor pela VM do cliente usando o endereço IP interno da VM do servidor.

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar 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 Conectar da VM vm-fw-rules-client, clique em SSH.

  4. Na caixa de diálogo SSH no navegador, clique em Autorizar e aguarde a conexão ser estabelecida.

  5. Para verificar a conexã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.

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

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

Console

  1. No Console do Google Cloud, acesse a página políticas de Firewall.

    Acessar as políticas de firewall

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

  3. Clique em Criar regra.

  4. Em Prioridade, digite 501.

  5. Em Direção de tráfego, selecione Entrada.

  6. Em Registros, selecione Ativado.

  7. Na seção Destino, em Tipo de destino, selecione Todas as instâncias na rede.

  8. Na seção Origem, em Intervalos de IP, insira 192.168.10.0/24.

    O intervalo de IP 192.168.10.0/24 foi atribuído a subnet-fw-rules-client.

  9. Na seção Destino, em 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 foi 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

Testar a conexão

Depois de criar a política de firewall, conecte-se à VM do servidor pela VM do cliente usando o endereço IP interno da VM do servidor.

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar 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 Conectar da VM vm-fw-rules-client, clique em SSH.

  4. Na caixa de diálogo SSH no navegador, clique em Autorizar e aguarde a conexão ser estabelecida.

  5. Para verificar a conexã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 registros de firewall, consulte Ver registros.

Limpar

Para evitar cobranças na sua conta do Google Cloud pelos recursos usados no tutorial, exclua o projeto que os contém ou mantenha o projeto e exclua os recursos individuais.

Nesta seção, você vai excluir os recursos criados neste tutorial.

Excluir a política de firewall

Console

  1. No Console do Google Cloud, acesse a página políticas de Firewall.

    Acessar as políticas de firewall

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

  3. Clique na guia Associações.

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

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

  6. Ao lado do título fw-policy, clique em Excluir.

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

    Depois que uma política é excluída, o console do Google Cloud mostra a página Políticas de firewall.

gcloud

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

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

    Se você configurar a associação entre a política de firewall e a rede VPC pelo console do Google Cloud, não use o comando da CLI gcloud para remover a associação. Se você não se lembra de como criou a associação ou se recebeu o erro The network firewall policy does not have an association with pol-association-fw-rules. ao executar o comando, use o console do Google Cloud para remover a associação.

  2. Exclua a política de firewall.

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

Excluir as VMs

Console

  1. No console do Google Cloud, acesse a página Instâncias de VMs.

    Acessar instâncias de VM

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

  3. Clique em Excluir.

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

gcloud

Para excluir as 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 solicitado, pressione Y para confirmar e depois Enter.

Excluir o gateway do Cloud NAT e o Cloud Router

Console

  1. No Console do Google Cloud, acesse a página do Cloud Routers.

    Acesse o Cloud Routers

  2. Marque a caixa de seleção router-fw-rules

  3. Clique em Excluir.

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

Quando você exclui um Cloud Router, o gateway do Cloud NAT associado também é excluído.

gcloud

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

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

Quando solicitado, pressione Y para confirmar e depois Enter.

Quando você exclui um Cloud Router, o gateway do Cloud NAT associado também é excluído.

Excluir a rede VPC e as sub-redes dela

Console

  1. No Console do Google Cloud, acesse a página Redes VPC.

    Acessar redes VPC

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

  3. Clique em Excluir rede VPC.

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

Quando você exclui uma VPC, as sub-redes dela também são excluídas.

gcloud

  1. Para excluir 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 solicitado, pressione Y para confirmar e pressione Enter.

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

    gcloud compute networks delete vpc-fw-rules
    

    Quando solicitado, pressione Y para confirmar e depois Enter.