Crie regras de firewall no Google Cloud

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

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