Linux 上的 Tap 接口是否容易受到监听攻击

Linux 上的 Tap 接口是否容易受到监听攻击

如果您在 Linux 主机上拥有多个 VM,并且在该主机上使用单击界面,那么该网络是否会像普通以太网一样容易受到欺骗/mac 欺骗攻击,或者其编程方式是否存在某种智能可以防止此类攻击?

如果将来宾虚拟机的网络接口置于混杂模式,它是否会看到到其他来宾虚拟机的流量?

我假设它模拟了真实的以太网网络,因此容易受到此类攻击,并且互不信任的虚拟机因此不应共享相同的分接设备,但我无法确认或拒绝这一点。

答案1

我相信每个 Qemu 实例(例如每个 VM)都需要自己的 Tap 接口。我怀疑是否可以运行多个 VM 并使用单个 Tap 来实现这一点。

无论如何,将虚拟机内部的接口置于混杂模式不会以任何方式影响主机中相应分接头的状态。虚拟机甚至不知道主机中是否存在分接头,或者是否使用了用户模式网络(因此主机中没有相应的接口),或者主机是 Windows(Hyper-V),它有自己的方式将虚拟机连接到网络。虚拟机中的 vNIC 与主机上的“分接头”不同。它们首先存在于不同的计算机中,就像“在不同的领域中”,其中一个是虚拟的。

同样,tap 并不关心它背后是否有虚拟机或者是其他东西,比如 VPN(您可以使用 OpenVPN、tinc 或 openconnect 中的 tap 接口)。

Linux 中的 tap API 只是将以太网 NIC 呈现到系统中并附加软件的一种方式,该软件接收离开该 NIC 的数据包,并且数据包将出现在该软件注入的位置。该软件可能是 Qemu,另一方面,它模拟 VM 的网络和 NIC 的硬件接口,在这种情况下,VM 会看到一些接口并获取主机输出到 NIC 的数据包。Qemu 充当主机中 tap 的软件端和 VM 中虚拟 NIC 的模拟硬件端之间的转换器(“线路”)。从 Qemu 的角度来看,VM NIC 的混杂模式是“模拟硬件端”业务,并且“停留在 VM 内部”,这与“tap 的软件端”业务无关。

还要注意,您通常使用那些被绑定到主机上的网桥的 tap 接口,并且该网桥的行为类似于以太网交换机。它学习 MAC 地址并仅将数据包发送到学习到相应 MAC 的端口,只有在 MAC 未知时才诉诸广播。通常,诸如投毒之类的一般攻击可能会影响网桥行为。例如,如果一个虚拟机克隆了另一个虚拟机的 MAC,它可以将该虚拟机的流量定向到自身,但原始虚拟机不会接收它,从而完全失去任何网络连接。您可以在网桥的表中设置静态 MAC 条目,而不是动态学习,这样就可以缓解这个问题,就像在典型的托管交换机中一样。等等。

相关内容