Using VMware for Network Security Monitoring
While teaching last week I learned that recent versions of VMware Server (I used 1.0.2) no longer act like a hub. Doing some quick testing this morning with three VMs, I told VM 1 to ping VM 2 while VM 3 watched. I learned VM 3 cannot see VM 1 ping VM 2 when using bridged, host-only, or NAT networking. The host OS can see traffic on the bridged interface, /dev/vmnet1 (host) and /dev/vmnet8 (NAT).
This is important because it means you can't deploy a VMware-only monitoring lab. The only solution appears to be running sensor components on the host OS, watching the bridged interface, /dev/vmnet1 (host) and /dev/vmnet8 (NAT). I noticed that monitoring the physical bridged interface results in double packets, so only watching /dev/vmnet1 or /dev/vmnet8 seem like viable solutions for doing testing with VMs.
Does anyone have an opinion on this? Thank you.
This is important because it means you can't deploy a VMware-only monitoring lab. The only solution appears to be running sensor components on the host OS, watching the bridged interface, /dev/vmnet1 (host) and /dev/vmnet8 (NAT). I noticed that monitoring the physical bridged interface results in double packets, so only watching /dev/vmnet1 or /dev/vmnet8 seem like viable solutions for doing testing with VMs.
Does anyone have an opinion on this? Thank you.
Comments
The recommended way to monitor VMs is the way you described, from the host OS. If you use the non-free ESX Server, you can do more advanced things like configure virtual VLANs, etc.
By the way, have you seen NeuralIQ? They have some interesting concepts on monitoring VMs from the outside.
- Jon
It works for the scenario I have and could work for a inline snort setup as well.
combined with dynamips as cisco router simulator it is possible to build much more complicated and interesting scenarios and networks. Here is an article with some explanation on how to do it http://xgu.ru/wiki/Xenomips/en
The latest Workstation 6 on Windows also behaves the same way.
I don't have a Linux VMware Server box handy at the moment, but I'll post back once I get a chance to try.
I am running VMware server 1.0.4 build-56528 and have two openbsd VMs connected to vmnet1 (host-only) and was not able to see the ping traffic from host to VM1 on VM2.
The following steps fixed this:
1.) stop vmware server
2.) chgrp vmadm /dev/vmnet*
3.) chmod g+rw /dev/vmnet*
The UID which is used to run the VMs needs to be in the group vmadm.
Now the OS in the VMs is able to put the interface into promiscuous mode and see the packets for the other VM on the same vmnet network.