(内部)在 Google Cloud VPC 网络中捕获数据包?

(内部)在 Google Cloud VPC 网络中捕获数据包?

我在 Google Cloud 中设置了一个 VPC 网络,其中运行着几个实例。其中一个实例用作 VPN 机器,允许我从互联网与这些实例进行交互。

我想捕获流量:

  1. 从互联网到 VPC 网络。为此,我只需在 vpn 机器上使用 tcpdump。
  2. 在内部,即实例之间的数据包。我不知道该怎么做。我不能依赖我的实例(在我的情况下,直接在其中使用 tcpdump 不是一个选择)。相反,因为在 VPC 中没有“真正的”网络第 2 层,因为它是虚拟化的,所以我希望能够以某种方式接入云路由器并从那里捕获所有数据包,但这似乎是不可能的。还是真的?

有人知道我在这里能做什么吗?非常感谢。谢谢!

答案1

假设您正在使用来自 Google 的 Debian 映像,您可以安装并使用 tcpdump 来捕获流量。

$ sudo apt update
$ sudo apt install -y tcpdump
$ sudo tcpdump -i eth0

答案2

您可以启用VPC 流日志。这会记录每个虚拟机的 TCP 和 UDP 流,包括入站和出站。这些流可以位于同一 VPC 中的虚拟机和另一个虚拟机之间。您还需要考虑限制生成的日志数量以减少您的 stackdriver 成本。

答案3

这真是太麻烦了,我之所以描述它只是因为有些组织确实使用这种方式:

总结通过另一个专用 VPC 路由所有内容。

创建“左” VPC,创建“安全” VPC,创建“右” VPC。

建立路由以便数据包传输:

  • 左 -> 安全 -> 右
  • 右 -> 安全 -> 左

建立 VPC 对等(否则您无法进行这样的路由)。

在“安全”内创建一个实例(实际上,最好在内部 TCP 负载平衡器后面有一对实例)并tcpdump在那里运行。或者snort,或类似的东西。甚至是虚拟机上的防火墙。两个网卡都应该有“启用 IP 转发”= 是。

将捕获左侧和右侧之间的数据包,但不会捕获从左到左或从右到右的流量。

顺便说一下,VPN实例也可以移动到“安全”VPC。

相关内容