GCP - VPC & Networking

Support HackTricks

GCP Compute Networking em Resumo

VPCs contém regras de Firewall para permitir tráfego de entrada na VPC. VPCs também contém subredes onde máquinas virtuais vão ser conectadas. Comparando com AWS, Firewall seria a coisa mais próxima de AWS Security Groups e NACLs, mas neste caso estas são definidas na VPC e não em cada instância.

VPC, Subredes & Firewalls no GCP

Instâncias de Computação estão conectadas a subredes que são parte de VPCs (Nuvens Privadas Virtuais). No GCP não existem grupos de segurança, existem firewalls VPC com regras definidas neste nível de rede, mas aplicadas a cada Instância de VM.

Subredes

Uma VPC pode ter várias subredes. Cada subrede está em 1 região.

Firewalls

Por padrão, toda rede tem duas regras de firewall implícitas: permitir saída e negar entrada.

Quando um projeto GCP é criado, uma VPC chamada default também é criada, com as seguintes regras de firewall:

  • default-allow-internal: permite todo tráfego de outras instâncias na rede default

  • default-allow-ssh: permite 22 de qualquer lugar

  • default-allow-rdp: permite 3389 de qualquer lugar

  • default-allow-icmp: permite ping de qualquer lugar

Como você pode ver, as regras de firewall tendem a ser mais permissivas para endereços IP internos. A VPC padrão permite todo tráfego entre Instâncias de Computação.

Mais regras de Firewall podem ser criadas para a VPC padrão ou para novas VPCs. Regras de Firewall podem ser aplicadas a instâncias através dos seguintes métodos:

Infelizmente, não existe um comando gcloud simples para listar todas as Instâncias de Computação com portas abertas na internet. Você precisa conectar os pontos entre regras de firewall, tags de rede, contas de serviço e instâncias.

Esse processo foi automatizado usando este script python que irá exportar o seguinte:

  • Arquivo CSV mostrando instância, IP público, TCP permitido, UDP permitido

  • Escaneamento nmap para direcionar todas as instâncias nas portas de entrada permitidas da internet pública (0.0.0.0/0)

  • masscan para direcionar toda a faixa TCP daquelas instâncias que permitem TODAS as portas TCP da internet pública (0.0.0.0/0)

Políticas de Firewall Hierárquicas

As políticas de firewall hierárquicas permitem que você crie e aplique uma política de firewall consistente em toda a sua organização. Você pode atribuir políticas de firewall hierárquicas à organização como um todo ou a pastas individuais. Essas políticas contêm regras que podem explicitamente negar ou permitir conexões.

Você cria e aplica políticas de firewall como etapas separadas. Você pode criar e aplicar políticas de firewall nos nós de organização ou pasta da hierarquia de recursos. Uma regra de política de firewall pode bloquear conexões, permitir conexões ou adiar a avaliação da regra de firewall para pastas de nível inferior ou regras de firewall VPC definidas em redes VPC.

Por padrão, todas as regras de política de firewall hierárquica se aplicam a todas as VMs em todos os projetos sob a organização ou pasta onde a política está associada. No entanto, você pode restringir quais VMs recebem uma determinada regra especificando redes de destino ou contas de serviço de destino.

Você pode ler aqui como criar uma Política de Firewall Hierárquica.

Avaliação de Regras de Firewall

  1. Org: Políticas de firewall atribuídas à Organização

  2. Pasta: Políticas de firewall atribuídas à Pasta

  3. VPC: Regras de firewall atribuídas à VPC

  4. Global: Outro tipo de regras de firewall que podem ser atribuídas a VPCs

  5. Regional: Regras de firewall associadas à rede VPC do NIC da VM e região da VM.

Peering de Rede VPC

Permite conectar duas redes de Nuvem Privada Virtual (VPC) para que recursos em cada rede possam se comunicar entre si. Redes VPC conectadas podem estar no mesmo projeto, em projetos diferentes da mesma organização, ou em projetos diferentes de organizações diferentes.

Estas são as permissões necessárias:

  • compute.networks.addPeering

  • compute.networks.updatePeering

  • compute.networks.removePeering

  • compute.networks.listPeeringRoutes

Mais na documentação.

Referências

Support HackTricks

Last updated