Sem as precauções corretas, você corre o risco de expor seus sistemas a novas vulnerabilidades. Portanto, é essencial criar regras de firewall para controlar o tráfego de entrada e saída das instâncias no Google Cloud. Neste codelab, você aprenderá sobre regras de firewall no Google Cloud e como aplicá-las a instâncias de VM do Compute Engine.
O que são regras de firewall?
Com as regras de firewall no Google Cloud, você pode permitir ou negar o tráfego de e para suas instâncias de VM com base em uma configuração especificada por você. As regras de firewall ativadas são sempre aplicadas, protegendo as instâncias com qualquer configuração e sistema operacional, independentemente de serem iniciadas ou não.
Toda rede VPC funciona como um firewall distribuído. As regras de firewall são definidas no nível da rede, mas as conexões são permitidas ou negadas por instância. Pense nas regras de firewall como existentes não apenas entre suas instâncias e outras redes, mas entre instâncias individuais dentro da mesma rede.
O que você vai criar
- Duas instâncias do Compute Engine em sub-redes diferentes
- Um teste de ping de rede
- Regras de firewall usando tags de instância
- A seguinte arquitetura:
O que você aprenderá
- Características das regras de firewall
- Como aplicar regras de firewall a instâncias que usam tags
- Práticas recomendadas para regras de firewall
O que é necessário
- uma Conta do Google
- Duas instâncias do Compute Engine
Configuração de ambiente personalizada
Se você ainda não tem uma Conta do Google, é necessário criar uma. Faça login no Console do Google Cloud e crie um novo projeto:
Lembre-se do ID do projeto, um nome exclusivo em todos os projetos do Google Cloud. Ele será mencionado nesses codelabs como PROJECT_ID.
Em seguida, você precisará ativar o faturamento no Console do Cloud para usar os recursos do Google Cloud.
A execução por este codelab não deve custar mais do que alguns dólares, mas pode ser mais se você decidir usar mais recursos ou se deixá-los em execução (consulte a seção de limpeza no final deste codelab). Novos usuários do Google Cloud estão qualificados para um teste sem custo financeiro de US$ 300.
Inicializar seu ambiente de projeto
Acesse Compute > Compute Engine > Instâncias de VM.
Depois de concluir a ativação da API Compute Engine, você fará a maior parte do trabalho com o Cloud Shell, que permite gerenciar a infraestrutura e os aplicativos na linha de comando em qualquer navegador. A VM baseada em Debian é carregada com todas as ferramentas de desenvolvimento necessárias (ferramenta de linha de comando gcloud
, Git
, entre outras) e oferece um diretório principal permanente de 5 GB. Para abrir o Cloud Shell, clique no ícone na parte superior direita da tela.
Você também pode escolher zonas diferentes. Para mais informações, consulte Regiões e zonas.
Veja as regras de firewall atuais em Rede > rede VPC > regras de firewall.
Observe que apenas as regras de firewall foram criadas para a rede padrão.
É necessário criar regras de firewall para as instâncias atuais do Compute Engine para executar ssh nelas, já que você não especificou nenhuma regra de firewall ao criar custom-network1
.
Em seguida, crie uma regra de firewall que permita o acesso SSH às instâncias marcadas.
Permaneça na página "Regras de firewall". Clique em "Criar regra de firewall".
Adicione as seguintes especificações:
- Nome: allow-ssh
- Rede: custom-network1
- Direção do tráfego: Entrada
- Ação na correspondência: permitir
- Destinos: tags de destino especificadas
- Tags de destino: iperf-access
- Intervalos de IP de origem: 0.0.0.0/0
- Portas e protocolos: protocolos e portas especificados: tcp: 22
Aplique tags às duas instâncias existentes.
Acesse a página da instância do Compute Engine acessando Compute > Compute Engine > instâncias da VM.
Clique em "instance-1" e veja os detalhes da instância de VM. Clique em "Editar".
Role a tela para baixo até a seção de tags de rede e atribua uma tag chamada iperf-access.
Clique em "Salvar" na parte inferior. Volte para a página "Instâncias de VM" e repita a instância para a instância 2. Para isso, clique em "Editar" e adicione iperf-access
novamente como a tag de instância.
iPerf
O iPerf é uma ferramenta de teste de rede muito usada, que cria fluxos de dados TCP/UDP e mede a capacidade de processamento da rede. Você o usará para executar um teste rápido entre suas instâncias em sub-redes diferentes em custom-network1
.
Instale o iPerf
Acesse a página da instância do Compute Engine.
Acesse as duas VMs que você criou no último codelab clicando no botão SSH ao lado de cada listagem de instância.
Você verá duas janelas SSH. Instale o iPerf em ambos com o seguinte comando:
sudo apt-get install iperf
Executar um teste iPerf
Em instance-2
, especifique que é o servidor iPerf digitando o seguinte no terminal SSH da instance-2:
iperf -s
Na janela SSH da instância 1, digite o seguinte comando, incluindo o IP interno de instance-2
:
iperf -c [INSTANCE-2 INTERNAL IP]
Ele travará porque você não implementou outra regra de firewall para permitir a comunicação entre instance-1
e instance-2
. Para encerrar o comando, digite Control+Z (Command+Z no Macintosh).
Desta vez, você criará a regra de firewall com o Cloud Shell.
Verifique se você está no Cloud Shell e não nas sessões SSH da instância. Para criar uma regra de firewall, digite o seguinte:
gcloud compute firewall-rules create iperf-access --allow tcp:5001 \ --source-ranges 0.0.0.0/0 \ --network custom-network1 \ --target-tags=iperf-access
Confirme se ele foi criado com o seguinte:
gcloud compute firewall-rules list NAME NETWORK DIRECTION PRIORITY ALLOW DENY DISABLED allow-ssh custom-network1 INGRESS 1000 tcp:22 False default-allow-icmp default INGRESS 65534 icmp False default-allow-internal default INGRESS 65534 tcp:0-65535,udp:0-65535,icmp False default-allow-rdp default INGRESS 65534 tcp:3389 False default-allow-ssh default INGRESS 65534 tcp:22 False iperf-access custom-network1 INGRESS 1000 tcp:5001 False
Volte para a janela SSH de instance-2
. Sua sessão do iperf ainda estará ativa. Se não estiver, execute o comando a seguir novamente.
iperf -s
Na janela SSH de instance-1
, digite o seguinte comando, incluindo o IP interno de instance-2
:
iperf -c [INSTANCE-2 INTERNAL IP]
O iPerf estabelecerá uma conexão com instance-2
e retornará uma saída do desempenho interno da rede entre instance-1
e instance-2
.
Agora você já conhece os conceitos básicos para criar regras de firewall no Google Cloud.
Conteúdo abordado
- Como as instâncias são afetadas pelas regras de firewall
- Como criar uma regra de firewall usando o Console do Cloud e o Cloud Shell
- aplicar tags a regras de firewall e instâncias;
- Como executar um teste iPerf entre instâncias
Próximas etapas
- Saiba mais sobre as regras de firewall na visão geral de regras de firewall.
Exclua as instâncias do Compute Engine usando os seguintes comandos no Cloud Shell:
gcloud compute instances delete instance-1 --zone us-central1-a The following instances will be deleted. Any attached disks configured to be auto-deleted will be deleted unless they are attached to any other instances or the `--keep-disks` flag is given and specifies them for keeping. Deleting a disk is irreversible and any data on the disk will be lost. - [instance-1] in [us-central1-a] Do you want to continue (Y/n)? y Deleted [https://www.googleapis.com/compute/v1/projects/ypc-demo/zones/us-central1-a/instances/instance-1].
gcloud compute instances delete instance-2 --zone europe-west1-d The following instances will be deleted. Any attached disks configured to be auto-deleted will be deleted unless they are attached to any other instances or the `--keep-disks` flag is given and specifies them for keeping. Deleting a disk is irreversible and any data on the disk will be lost. - [instance-2] in [europe-west1-d] Do you want to continue (Y/n)? y Deleted [https://www.googleapis.com/compute/v1/projects/ypc-demo/zones/europe-west1-d/instances/instance-2].
Exclua as regras de firewall com os seguintes comandos:
gcloud compute firewall-rules delete allow-ssh The following firewalls will be deleted: - [allow-ssh] Do you want to continue (Y/n)? y Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/global/firewalls/allow-ssh].
gcloud compute firewall-rules delete iperf-access The following firewalls will be deleted: - [iperf-access] Do you want to continue (Y/n)? y Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/global/firewalls/iperf-access].
Exclua as sub-redes com os seguintes comandos:
gcloud compute networks subnets delete subnet-us-central-192 --region us-central1 The following subnetworks will be deleted: - [subnet-us-central-192] in [us-central1] Do you want to continue (Y/n)? y Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/regions/us-central1/subnetworks/subnet-us-central-192].
gcloud compute networks subnets delete subnet-europe-west-192 --region europe-west1 The following subnetworks will be deleted: - [subnet-europe-west-192] in [europe-west1] Do you want to continue (Y/n)? y Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/regions/europe-west1/subnetworks/subnet-europe-west-192].
Exclua a VPC personalizada com o seguinte comando:
gcloud compute networks delete custom-network1 The following networks will be deleted: - [custom-network1] Do you want to continue (Y/n)? y Deleted [https://www.googleapis.com/compute/v1/projects/vpc-demo-241520/global/networks/custom-network1].