GCP - VPC & Networking

支持 HackTricks

GCP 计算网络概述

VPCs 包含 防火墙 规则以允许传入流量到 VPC。VPC 还包含 子网络,其中 虚拟机 将被 连接。 与 AWS 相比,防火墙AWS 安全组和 NACLs最接近 事物,但在这种情况下,这些是在 VPC 中定义的,而不是在每个实例中。

GCP 中的 VPC、子网络和防火墙

计算实例连接到 子网络,这些子网络是 VPCs 的一部分 (虚拟私有云)。在 GCP 中没有安全组,只有 VPC 防火墙,其规则在此网络级别定义,但应用于每个 VM 实例。

子网络

一个 VPC 可以有 多个子网络。每个 子网络位于 1 个区域

防火墙

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

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

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

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

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

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

如您所见,防火墙规则 对于 内部 IP 地址 通常是 更宽松 的。默认 VPC 允许计算实例之间的所有流量。

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

不幸的是,没有简单的 gcloud 命令可以列出所有在互联网上开放端口的计算实例。您必须将防火墙规则、网络标签、服务账户和实例之间的关系连接起来。

这个过程是通过 这个 python 脚本 自动化的,该脚本将导出以下内容:

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

  • nmap 扫描以针对所有在公共互联网(0.0.0.0/0)上允许的端口的实例

  • masscan 针对允许来自公共互联网(0.0.0.0/0)的所有 TCP 端口的实例的完整 TCP 范围

分层防火墙策略

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

您可以将防火墙策略作为单独的步骤创建和应用。您可以在 资源层次结构组织或文件夹节点 上创建和应用防火墙策略。防火墙策略规则可以 阻止连接、允许连接或将防火墙规则评估推迟 到较低级别的文件夹或在 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