虚拟机网络困境
VM Networking Dilemma
一些背景:
我正在尝试为 SANS 560(网络渗透测试和道德黑客)课程设置一个带有少量虚拟机的渗透测试网络,但我遇到了网络配置问题。
绘制网络图(至少它的预期效果):
我家的路由器(连接到互联网,也是网络上所有其他机器的网关)IP是192.168.0.1/24
,网络上的所有其他机器都在[=11] =] 子网
根据课程说明,我应该在 10.10.X.X/16
子网上使用桥接适配器设置我所有的虚拟机 - Linux 机器在 10.10.75.X/16
、10.10.76.X/16
上的 Windows 来宾计算机和 10.10.78.1/16
上的 "host"(也是 VM 运行 Windows)计算机
我的问题:
我如何(假设可能)配置我的主机(使用新 IP 10.10.78.1/16
)以能够与其他来宾机器(虚拟机)通信,同时还能够连接到互联网?
我已经尝试设置静态路由以使用新 IP 作为网关(因为路由器位于不同的子网上):
route ADD 192.168.0.0 MASK 255.255.255.0 10.10.78.1
(192.168.0.0
是目的地,显然掩码是255.255.255.0
,网关是10.10.78.1
) - 它没有用(我得到的只是Destination Host Unreachable
)
我是否需要在这台 Windows 机器上有两个接口(即一个配置为 10.10.78.1/16
以与其他 VM 通信,另一个配置为 192.168.0.X/24
以访问互联网) 使这种配置成为可能?
我知道网络通常不会这样设置,所以如果您需要我澄清或提供更多信息,请告诉我。
有两种解决方案:
- 将 10.10.0.0/16 添加到您的路由器作为辅助 IP 子网 - 如果可能 - 或将 192.168.0.0/24 范围更改为 10.10.0.0/16。
- 使用另一台路由器创建 10.10.0.0/16 子网并通过其接口之一将其连接到 192.168.0.0/24。在您的 Internet 路由器上,添加到 10.10.0.0/16 的静态路由。路由器可以是任何东西,硬件路由器、第 3 层交换机或启用路由的 Windows/Linux 机器。
第三种方法 - 运行 同一第 2 层网段中的两个子网通过单臂路由器连接 - 并没有真正达到目的。
编辑:您问题中的路由是错误的方式 - 假设您的子网间路由器使用 192.168.0.99 和 10.10.78.1,在您的 Internet 路由器上,添加路由 10.10.0.0/16 -> 192.168.0.99 和在新子网上使用 10.10.78.1 作为默认网关。
我找到了一个似乎有效的解决方案。
同样,对于上下文,下面是网络上的机器列表:
Name | Adapter type | IP | Static routes?
============================================================================
Windows VM1 | Bridged | 192.168.0.11/24 | Nil
| Bridged | 10.10.78.1/16 | Yes, see below
-------------|----------------|---------------------|-----------------------
Windows VM2 | Bridged | 10.10.76.1/16 | Yes, see below
-------------|----------------|---------------------|-----------------------
Linux VM3 | Bridged | 10.10.75.1/16 | Nil
静态路由:
VM1 的静态路由:
- 注意:在
192.168.0.11/24
的适配器设置中,我将默认网关设置为我的互联网路由器 (192.168.0.1
) 的 IP,并且网络掩码为 255.255.255.0
- 注意:在
10.10.78.1/16
的适配器设置中,我将默认网关留空(因为它是在添加静态路由时设置的),网络掩码为255.255.0.0
route -P ADD 10.10.0.0 MASK 255.255.0.0 192.168.0.11
(必须使用 -P
以便路由在重新启动之间保持不变)
VM2 的静态路由:
route -P ADD 10.10.0.0 MASK 255.255.0.0 10.10.76.1
(必须使用 -P
以便路由在重新启动之间保持不变)
- 注意:您必须运行
netsh advfirewall set allprofiles state off
允许10.10.0.0/上的其他虚拟机(包括其他Windows机器) 16 个子网与这台机器通信。
此配置允许以下行为:
VM1
可以发起与 VM2
和 VM3
的连接
VM2
和 VM3
都无法发起与 VM1
的连接
VM2
和 VM3
可以相互通信(即可以在任一方向上相互发起连接)
此外,此配置应允许所有 VM 与课程后面为实验室设置的 VPN 通信,因为它们都在 10.10.x.x/16
网络上配置了一个适配器。
一些背景:
我正在尝试为 SANS 560(网络渗透测试和道德黑客)课程设置一个带有少量虚拟机的渗透测试网络,但我遇到了网络配置问题。
绘制网络图(至少它的预期效果):
我家的路由器(连接到互联网,也是网络上所有其他机器的网关)IP是
192.168.0.1/24
,网络上的所有其他机器都在[=11] =] 子网根据课程说明,我应该在
上的 "host"(也是 VM 运行 Windows)计算机10.10.X.X/16
子网上使用桥接适配器设置我所有的虚拟机 - Linux 机器在10.10.75.X/16
、10.10.76.X/16
上的 Windows 来宾计算机和10.10.78.1/16
我的问题:
我如何(假设可能)配置我的主机(使用新 IP 10.10.78.1/16
)以能够与其他来宾机器(虚拟机)通信,同时还能够连接到互联网?
我已经尝试设置静态路由以使用新 IP 作为网关(因为路由器位于不同的子网上):
route ADD 192.168.0.0 MASK 255.255.255.0 10.10.78.1
(192.168.0.0
是目的地,显然掩码是255.255.255.0
,网关是10.10.78.1
) - 它没有用(我得到的只是Destination Host Unreachable
)
我是否需要在这台 Windows 机器上有两个接口(即一个配置为 10.10.78.1/16
以与其他 VM 通信,另一个配置为 192.168.0.X/24
以访问互联网) 使这种配置成为可能?
我知道网络通常不会这样设置,所以如果您需要我澄清或提供更多信息,请告诉我。
有两种解决方案:
- 将 10.10.0.0/16 添加到您的路由器作为辅助 IP 子网 - 如果可能 - 或将 192.168.0.0/24 范围更改为 10.10.0.0/16。
- 使用另一台路由器创建 10.10.0.0/16 子网并通过其接口之一将其连接到 192.168.0.0/24。在您的 Internet 路由器上,添加到 10.10.0.0/16 的静态路由。路由器可以是任何东西,硬件路由器、第 3 层交换机或启用路由的 Windows/Linux 机器。
第三种方法 - 运行 同一第 2 层网段中的两个子网通过单臂路由器连接 - 并没有真正达到目的。
编辑:您问题中的路由是错误的方式 - 假设您的子网间路由器使用 192.168.0.99 和 10.10.78.1,在您的 Internet 路由器上,添加路由 10.10.0.0/16 -> 192.168.0.99 和在新子网上使用 10.10.78.1 作为默认网关。
我找到了一个似乎有效的解决方案。
同样,对于上下文,下面是网络上的机器列表:
Name | Adapter type | IP | Static routes?
============================================================================
Windows VM1 | Bridged | 192.168.0.11/24 | Nil
| Bridged | 10.10.78.1/16 | Yes, see below
-------------|----------------|---------------------|-----------------------
Windows VM2 | Bridged | 10.10.76.1/16 | Yes, see below
-------------|----------------|---------------------|-----------------------
Linux VM3 | Bridged | 10.10.75.1/16 | Nil
静态路由:
VM1 的静态路由:
- 注意:在
192.168.0.11/24
的适配器设置中,我将默认网关设置为我的互联网路由器 (192.168.0.1
) 的 IP,并且网络掩码为255.255.255.0
- 注意:在
10.10.78.1/16
的适配器设置中,我将默认网关留空(因为它是在添加静态路由时设置的),网络掩码为255.255.0.0
route -P ADD 10.10.0.0 MASK 255.255.0.0 192.168.0.11
(必须使用-P
以便路由在重新启动之间保持不变)
VM2 的静态路由:
route -P ADD 10.10.0.0 MASK 255.255.0.0 10.10.76.1
(必须使用-P
以便路由在重新启动之间保持不变)- 注意:您必须运行
netsh advfirewall set allprofiles state off
允许10.10.0.0/上的其他虚拟机(包括其他Windows机器) 16 个子网与这台机器通信。
此配置允许以下行为:
VM1
可以发起与VM2
和VM3
的连接
VM2
和VM3
都无法发起与VM1
的连接
VM2
和VM3
可以相互通信(即可以在任一方向上相互发起连接)
此外,此配置应允许所有 VM 与课程后面为实验室设置的 VPN 通信,因为它们都在 10.10.x.x/16
网络上配置了一个适配器。