I've solved this problem, but in a completely different environment: Windows, running inside VirtualBox, on a Linux host. My Windows installation can access the Internet, but can't see or access the host, or any of the other machines on my LAN, for that matter. So I can't give you step-by-step instructions, but I can point you in the right direction.
I set up a second virtual machine on my host, in which I installed the Open Source firewall / router pfSense http://www.pfsense.org/ . The WAN-side of my pfSense router is connected to the standard (default) VirtualBox networking, and can see everything on my LAN, including my Internet gateway router. The LAN-side of pfSense is connected to a new, virtual LAN, as is the network interface for the Windows installation. The result is that all network access from the Windows guest goes through the pfSense firewall. I've got rules in pfSense to block IP routing to the physical LAN from the Windows guest.
I use a third virtual network interface to allow browser access from the Linux host to the pfSense administration pages. Another pfSense ruleset blocks the Windows guest from this LAN, too.
It's complicated, but it works. I hope this helps you.