VMFusion虚拟机接入GNS3网络

众所周知,GNS3是一个优秀的网络仿真软件。但是其拓扑中自带的终端VPCS的功能是真的弱,完全没有真实的终端操作系统用着舒服。VMWare WorkStation/VMFusion是出名的虚拟机软件,可以运行多种操作系统。那么,我们能否将VMWare WorkStation/VMFusion的虚拟机接入GNS3搭建的仿真拓扑中呢?答案当然是可以的。这样的话虚拟机可玩性就高很多了,你可以通过GNS3搭建一个特别复杂的网络拓扑(各种路由器、交换机、防火墙等),然后再接入虚拟机实现各种渗透操作。

笔者之前使用Windows的时候,把虚拟机接入GNS3是真的方便,拖一个Cloud到拓扑中,然后选择桥接的网卡即可接入虚拟机中,是真的方便,但是自从换到MacOS后,这个功能就一直没有成功过。。。说是什么权限还是啥的花里胡哨的各种问题。

今天在整理PPT的时候,因要完成网络设备攻击相关的实验,又看了下这个VMFusion接入GNS3网络,没想到竟然弄成了。因此专门来记录下,让大家少踩一点坑。

一、VMFusion网段设置

为什么要设置VMFusion的网段呢?因为设置网段后,你可以轻松的直接通过一个IP,就直接确定当前主机所在的网络模式。

一般的话,我习惯这样设置:

  • 192.168.10.0/24(仅主机模式)
  • 192.168.80.0/24(NAT模式)

因为VMFusion中无法直接修改NAT模式和仅主机模式(Host-Only)网卡的IP,因此我们需要通过修改配置文件的方式来修改IP配置。

(1)停止vmnet网络服务

1
sudo /Applications/VMware\ Fusion.app/Contents/Library/vmnet-cli --stop

(2)修改networking配置文件

1
sudo vim /Library/Preferences/VMware\ Fusion/networking
1
2
3
4
#将vmnet1中的IP段修改为192.168.10.0
#将vmnet8中的IP段修改为192.168.80.0
answer VNET_1_HOSTONLY_SUBNET 192.168.10.0  # 修改为 192.168.10.0
answer VNET_8_HOSTONLY_SUBNET 192.168.80.0  # 修改为 192.168.80.0

(3)将根据上述修改的地址段自动修改dhcpd.conf和nat.conf中的IP地址。

1
sudo /Applications/VMware\ Fusion.app/Contents/Library/vmnet-cli --configure

(4)停止并启动vmnet网络服务

1
2
sudo /Applications/VMware\ Fusion.app/Contents/Library/vmnet-cli --stop
sudo /Applications/VMware\ Fusion.app/Contents/Library/vmnet-cli --start

通过命令来查看一些修改效果:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
$ ifconfig
...

#bridge100(vmnet1-仅主机模式)
bridge100: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	options=3<RXCSUM,TXCSUM>
	ether 3e:22:fb:d3:41:64
	inet 192.168.10.1 netmask 0xffffff00 broadcast 192.168.10.255
	inet6 fe80::3c22:fbff:fed3:4164%bridge100 prefixlen 64 scopeid 0x18
	Configuration:
		id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
		maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
		root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
		ipfilter disabled flags 0x0
	member: vmenet0 flags=3<LEARNING,DISCOVER>
	        ifmaxaddr 0 port 23 priority 0 path cost 0
	nd6 options=201<PERFORMNUD,DAD>
	media: autoselect
	status: active

#bridge102(vmnet8-NAT模式)
bridge102: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
	options=3<RXCSUM,TXCSUM>
	ether 3e:22:fb:d3:41:66
	inet 192.168.80.1 netmask 0xffffff00 broadcast 192.168.80.255
	inet6 fe80::3c22:fbff:fed3:4166%bridge102 prefixlen 64 scopeid 0x1c
	Configuration:
		id 0:0:0:0:0:0 priority 0 hellotime 0 fwddelay 0
		maxage 0 holdcnt 0 proto stp maxaddr 100 timeout 1200
		root id 0:0:0:0:0:0 priority 0 ifcost 0 port 0
		ipfilter disabled flags 0x0
	member: vmenet2 flags=3<LEARNING,DISCOVER>
	        ifmaxaddr 0 port 27 priority 0 path cost 0
	member: vmenet3 flags=3<LEARNING,DISCOVER>
	        ifmaxaddr 0 port 29 priority 0 path cost 0
	member: vmenet4 flags=3<LEARNING,DISCOVER>
	        ifmaxaddr 0 port 30 priority 0 path cost 0
	nd6 options=201<PERFORMNUD,DAD>
	media: autoselect
	status: active

这样的话,我们就可以成功的修改好NAT模式和仅主机模式的网卡网段了。

二、GNS3 Cloud设置

接下来,我们需要在GNS3中设置下Cloud。

首先,我们需要给GNS3设置合理的权限,以便可以在不同的网卡上转发流量。

1
2
3
sudo chown root:admin /Applications/GNS3.app/Contents/MacOS/ubridge 

sudo chmod 4750 /Applications/GNS3.app/Contents/MacOS/ubridge

设置好后,打开GNS3新建一个拓扑。点击"所有设备"的页面。

image-20221114163215126

接着,我们选择新建一个模板。

image-20221114163319635

image-20221114163335067

选择"Cloud nodes"。并点击"new"。

image-20221114163425183

起个名称,比如:VMFusionCloud,然后点击"Finsh"完成。

image-20221114163511268

然后,选择刚刚创建的"VMFusionCloud",然后点击"Edit"进行编辑。

image-20221114163614318

选中"Show special Ethernet interfaces"显示所有的接口。

image-20221114163702600

点击下拉列表,选中要添加的网卡,依次点击"add"即可。

image-20221114163819814

添加完成后的效果如下:

image-20221114163853379

需要注意,在选择添加时,只添加bridgeXXX这几个就行了。添加时还会直接出现vmnet0、vmnet1…等网卡,请不要勾选vmnetXXX开头的网卡,因为我这边测试这些网卡都是down的状态,勾选上后期也无法直接使用。

似乎,bridgeXXX都是VMFusion创建的网卡,具体是不是我不是特别确定。

上述,bridgeXXX对应的网卡关系如下:

  • bridge100:vmnet1-仅主机模式
  • bridge101:自己添加的另一个仅主机模式的网卡
  • bridge102:vmnet8-NAT模式

这样的话,这个Cloud就创建好了。

三、网络测试

我们可以拖一个路由器和Cloud出来测试下。

image-20221114164739021

使用bridge102(NAT模式)网卡连接路由器的F0/0接口。

image-20221114164845857

image-20221114164958532

image-20221114165738712

打开路由器设置下F0/0的IP地址为:192.168.80.100(NAT模式网卡的网段)。

image-20221114165459183

当前路由器的F0/0接口已经连接到VMFusion的NAT网卡上了,也就是说所有VMFusion虚拟机中设置NAT网络模式的虚拟机都接入这个GNS3的网络拓扑中了。

下面以处在NAT模式的Kali虚拟机进行测试:

image-20221114165828057

可以看到,Kali已经成功连通这个路由器了。

至此,你就掌握了把VMFusion中各种网卡接入GNS3网络的方法了。

剩下的该怎么折腾仿真的网络环境就看你自己的创意想法了。

updatedupdated2023-04-242023-04-24