场景:1 个具有许多虚拟机的 VirtualBox 主机。不同的仅主机网络针对不同的虚拟机类别进行配置:一些虚拟机是“专用”虚拟机,其他虚拟机是“标准”虚拟机。大多数这些虚拟机,包括一些私有虚拟机,也有一个nat接口,因为它们需要连接到互联网。
防止私有虚拟机通过 nat 接口访问标准虚拟机(反之亦然)的推荐方法是什么?
例子:
- 2 个仅主机网络:
- vboxnet0 (192.168.56.0/24) = “私有”
- vboxnet1 (192.168.57.0/24) = “标准”
- VM #1(可访问 Internet 的专用虚拟机)有 2 个虚拟接口:
- NAT (10.0.2.0/24) 用于互联网访问
- 仅主机网络 vboxnet0
- VM #2(专用虚拟机)的配置与 VM #1 类似。
- VM #3(无法访问 Internet 的专用虚拟机)有 1 个虚拟接口:
- 仅主机网络 vboxnet0
- VM #4(标准虚拟机)有 2 个虚拟接口:
- NAT (10.0.2.0/24) 用于互联网访问
- 仅主机网络 vboxnet1
- VM #5(标准 VM)的配置与 VM #4 类似。
- Internet 访问由虚拟机主机的默认网关提供。
- 虚拟机主机:192.168.0.100
- 网关:192.168.0.1
- 有些虚拟机没有启用防火墙,有些虚拟机不受信任,因此不应在来宾系统中进行任何更改。
- 主机系统在Linux上运行并使用iptables。
VM #3 是隔离的,它无法访问除 192.168.56.0/24 之外的任何内容。此外,虚拟机 #1 和 #2 可以相互通信(如 #4 和 #5),这很好。
但是,专用虚拟机 #1 可以达到标准虚拟机 #4。它还可以与主机的标准 IP 192.168.57.1 及其物理 IP 192.168.0.100 进行通信,绕过旨在阻止专用虚拟机访问主机上的服务的防火墙规则。在这种情况下,具有 Internet 访问权限的专用虚拟机不应能够访问标准子网 (vboxnet1) 或其他虚拟机子网。换句话说,他们的 NAT 接口应该只允许他们访问 192.168.0.1 才能访问 Internet,而不允许访问任何其他(本地)网络。
是否可以这样限制虚拟NAT接口?