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.
Antes de começar
- 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.
-
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 theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
-
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 theresourcemanager.projects.create
permission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
- Ative a API Compute Engine para o seu projeto.
- 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
). - 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
Na Google Cloud consola, aceda à página Redes VPC.
Clique em Criar rede de VPC.
Em Nome, introduza
vpc-fw-rules
.Em Descrição, introduza
VPC network for the firewall rules tutorial
.Para o Modo de criação de sub-rede, selecione Personalizado.
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
- Nome:
Clique em Concluído.
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
- Nome:
Clique em Concluído.
Clique em Criar.
gcloud
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"
Opcional: na caixa de diálogo Autorizar Cloud Shell, clique em Autorizar.
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
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 destino0.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 origem0.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:
Na Google Cloud consola, aceda à página Criar uma instância.
No painel Configuração da máquina, faça o seguinte:
- Em Nome, introduza
vm-fw-rules-server
. - Para Região, selecione
us-central1 (Iowa)
.
- Em Nome, introduza
No menu de navegação, clique em Rede.
- 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
- Rede:
- Clique em Concluído.
- Na secção Interfaces de rede, clique em
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:
Na Google Cloud consola, aceda à página Criar uma instância.
No painel Configuração da máquina, faça o seguinte:
- Em Nome, introduza
vm-fw-rules-client
. - Para Região, selecione
us-central1 (Iowa)
.
- Em Nome, introduza
No menu de navegação, clique em Rede.
- 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
- Rede:
- Clique em Concluído.
- Na secção Interfaces de rede, clique em
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
Na Google Cloud consola, aceda à página Cloud NAT.
Clique em Começar ou Criar gateway de NAT da nuvem.
Em Nome da gateway, introduza
gateway-fw-rules
.Para Tipo de NAT, selecione Público.
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.
- Em Nome, introduza
router-fw-rules
. - Clique em Criar.
- Em Nome, introduza
- Rede:
Clique em Criar.
gcloud
Para criar um Cloud Router, execute o seguinte comando:
gcloud compute routers create router-fw-rules \ --network=vpc-fw-rules \ --region=us-central1
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
Na Google Cloud consola, aceda à página Políticas de firewall.
Clique em Criar política de firewall.
Na secção Configurar política, em Nome da política, introduza
fw-policy
.Em Âmbito de implementação, selecione Global e clique em Continuar.
Para criar regras para a sua política, na secção Adicionar regras, clique em Adicionar regra.
- Para Prioridade, introduza
65534
. - Em Direção do trânsito, selecione Saída.
- Para Registos, selecione Ativar.
- Na secção Segmentar, para Tipo de segmentação, selecione Todas as instâncias na rede.
- Na secção Destino, para Intervalos de IPs, introduza
0.0.0.0/0
. - Na secção Protocolo e portas, selecione Permitir tudo.
- Clique em Criar.
- Para Prioridade, introduza
Clique em Continuar.
Para associar uma rede VPC à política, na secção Associar política a redes VPC, clique em Associar.
Selecione a caixa de verificação de
vpc-fw-rules
e clique em Associar.Clique em Continuar.
Clique em Criar.
gcloud
Para criar uma política de firewall, execute o seguinte comando:
gcloud compute network-firewall-policies create fw-policy \ --global
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
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 porta3389
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:
Na Google Cloud consola, aceda à página Políticas de firewall.
Na secção Políticas de firewall de rede, clique em
fw-policy
.Clique em Criar regra.
Para Prioridade, introduza
500
.Para Direção do tráfego, selecione Entrada.
Para Registos, selecione Ativar.
Na secção Segmentar, para Tipo de segmentação, selecione Todas as instâncias na rede.
Na secção Origem, para Intervalos IP, introduza
35.235.240.0/20
.Na secção Protocolos e portas, selecione Protocolos e portas especificados.
Selecione a caixa de verificação TCP e, em Portas, introduza
22
e3389
separados por uma vírgula.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.
Na Google Cloud consola, aceda à página Instâncias de VM.
Na coluna Ligar da VM
vm-fw-rules-server
, clique em SSH.Na caixa de diálogo SSH no navegador, clique em Autorizar e aguarde até que a ligação seja estabelecida.
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.
Para verificar se o Apache está em execução, execute o seguinte comando:
sudo systemctl status apache2 --no-pager
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
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.
Na Google Cloud consola, aceda à página Instâncias de VM.
Na coluna IP interno da VM
vm-fw-rules-server
, copie o endereço IP interno da VM.Na coluna Ligar da VM
vm-fw-rules-client
, clique em SSH.Na caixa de diálogo SSH no navegador, clique em Autorizar e aguarde até que a ligação seja estabelecida.
Para validar a associação, execute o seguinte comando:
curl INTERNAL_IP -m 2
Substitua
INTERNAL_IP
pelo endereço IP da VMvm-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.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
Na Google Cloud consola, aceda à página Políticas de firewall.
Na secção Políticas de firewall de rede, clique em
fw-policy
.Clique em Criar regra.
Para Prioridade, introduza
501
.Para Direção do tráfego, selecione Entrada.
Para Registos, selecione Ativar.
Na secção Segmentar, para Tipo de segmentação, selecione Todas as instâncias na rede.
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.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.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.
Na Google Cloud consola, aceda à página Instâncias de VM.
Na coluna IP interno da VM
vm-fw-rules-server
, copie o endereço IP interno da VM.Na coluna Ligar da VM
vm-fw-rules-client
, clique em SSH.Na caixa de diálogo SSH no navegador, clique em Autorizar e aguarde até que a ligação seja estabelecida.
Para validar a associação, execute o seguinte comando:
curl INTERNAL_IP -m 2
Substitua
INTERNAL_IP
pelo endereço IP da VMvm-fw-rules-server
.A mensagem esperada é
<!doctype html><html><body><h1>Hello World!</h1></body></html>
.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
Na Google Cloud consola, aceda à página Políticas de firewall.
Na secção Políticas de firewall de rede, clique no nome
fw-policy
.Clique no separador Associações.
Selecione a caixa de verificação
vpc-fw-rules
e clique em Remover associação.Na caixa de diálogo Remova uma associação de política de firewall, clique em Remover.
Junto ao título
fw-policy
, clique em Eliminar.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
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 CloudElimine a política de firewall.
gcloud compute network-firewall-policies delete fw-policy \ --global
Elimine as VMs
Consola
Na Google Cloud consola, aceda à página Instâncias de VM.
Selecione as caixas de verificação das VMs
vm-fw-rules-client
evm-fw-rules-server
.Clique em Eliminar.
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
Na Google Cloud consola, aceda à página Routers na nuvem.
Selecione a caixa de verificação
router-fw-rules
.Clique em Eliminar.
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
Na Google Cloud consola, aceda à página Redes VPC.
Na coluna Nome, clique em
vpc-fw-rules
.Clique em Eliminar rede de VPC.
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
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.
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.