GCP - VPC & Networking

支持 HackTricks

GCP Compute Networking 简介

VPCs 包含 Firewall 规则以允许进入 VPC 的流量。VPCs 还包含 subnetworks虚拟机 将连接到这些子网。 与 AWS 相比,Firewall 最接近 AWSSecurity Groups 和 NACLs,但在这种情况下,这些规则是在 VPC 中定义的,而不是在每个实例中。

GCP 中的 VPC、子网和防火墙

Compute Instances 连接到属于 VPCssubnetworks (Virtual Private Clouds)。在 GCP 中没有安全组,有 VPC firewalls,这些规则在网络级别定义,但应用于每个 VM 实例。

子网

一个 VPC 可以有 多个子网。每个 子网在一个区域

防火墙

默认情况下,每个网络有两个 隐含防火墙规则允许出站拒绝入站

当创建一个 GCP 项目时,会创建一个名为 default 的 VPC,并具有以下防火墙规则:

  • default-allow-internal: 允许来自 default 网络中其他实例的所有流量

  • default-allow-ssh: 允许来自任何地方的 22 端口

  • default-allow-rdp: 允许来自任何地方的 3389 端口

  • default-allow-icmp: 允许来自任何地方的 ping

如你所见,防火墙规则内部 IP 地址 更加宽松。默认 VPC 允许 Compute Instances 之间的所有流量。

可以为默认 VPC 或新 VPC 创建更多 防火墙规则防火墙规则 可以通过以下 方法 应用于实例:

不幸的是,没有一个简单的 gcloud 命令可以列出所有在互联网上开放端口的 Compute Instances。你必须将防火墙规则、网络标签、服务账户和实例联系起来。

这个过程已使用 这个 python 脚本 自动化,它将导出以下内容:

  • 显示实例、公共 IP、允许的 TCP、允许的 UDP 的 CSV 文件

  • 针对从公共互联网(0.0.0.0/0)允许入站的所有实例的 nmap 扫描

  • 针对允许所有 TCP 端口从公共互联网(0.0.0.0/0)入站的那些实例的 masscan 扫描

分层防火墙策略

分层防火墙策略 允许你创建并 在整个组织中实施一致的防火墙策略。你可以将 分层防火墙策略分配给整个组织 或单个 文件夹。这些策略包含可以明确拒绝或允许连接的规则。

你可以分开创建和应用防火墙策略。你可以在 组织或文件夹节点资源层次结构 中创建和应用防火墙策略。防火墙策略规则可以 阻止连接、允许连接或将防火墙规则评估 推迟到较低级别的文件夹或 VPC 网络中定义的 VPC 防火墙规则。

默认情况下,所有分层防火墙策略规则适用于与策略关联的组织或文件夹下的所有项目中的所有 VM。但是,你可以通过指定 目标网络或目标服务账户限制哪些 VM 获得特定规则

你可以在这里阅读如何 创建分层防火墙策略

防火墙规则评估

  1. 组织:分配给组织的防火墙策略

  2. 文件夹:分配给文件夹的防火墙策略

  3. VPC:分配给 VPC 的防火墙规则

  4. 全局:可以分配给 VPC 的另一种防火墙规则

  5. 区域:与 VM 的 NIC 和 VM 区域的 VPC 网络相关联的防火墙规则

VPC 网络对等

允许连接两个虚拟私有云 (VPC) 网络,以便 每个网络中的资源可以相互通信。 对等 VPC 网络可以在同一个项目中、同一组织的不同项目中,或 不同组织的不同项目中

这些是所需的权限:

  • compute.networks.addPeering

  • compute.networks.updatePeering

  • compute.networks.removePeering

  • compute.networks.listPeeringRoutes

更多文档

参考资料

支持 HackTricks

Last updated