Ok, let's see whether this works:
Current configuration:
1 vSwitch with 2 port groups (Management Network, VM Network)
- Login to iLO an open the host's console window
- Login to the ESXi DCUI and change the Management Network settings
- from vmnic0 > vmnic1
- IP and DNS settings from public addresses to private (VPN subnet) settings
At this point you should be able to access the ESXi host's web UI from your VPN subnet, and the VM's are inaccessible from the Internet.
- Login to the ESXi host's Web UI
- Create a new vSwitch with a new virtual machine port group (e.g. "Evil-Internet"), and select vmnic0 as its uplink
- Change the VM's network connections from "VM Network" to "Evil-Internet" for VMs that need to be accessible from the Internet
New configuration:
2 vSwitches, One with the Management Network and "internal" VMs on vmnic1, and one for the Internet VM's on vmnic0
Note: The above steps are just technical steps to change the setup to what you are asking for, and do not take any security concerns into account. I don't know what kind of VMs you have, which need to be accessed from the Internet, but you should think about placing them behind some kind of firewall.
André