Ho una configurazione simile in esecuzione. Non hai menzionato la tua distribuzione Linux, ma sto usando Ubuntu Linux 11.10. Qualsiasi altra distribuzione dovrebbe funzionare in modo abbastanza simile.
Per quanto ne so, il modo in cui lo sto facendo è ancora documentato in qualche modo da VirtualBox, ma non è più il loro metodo predefinito per connettere la rete di VirtualBox all'host. Fondamentalmente, è necessario installare uml-utilities
(parte di User-mode Linux). Quindi, aggiungi un'interfaccia a /etc/network/interfaces
, qualcosa del genere:
auto vbox1
iface vbox1 inet static
address 192.168.1.1
netmask 255.255.255.0
tunctl_user virtualbox
Dopo aver visualizzato questa interfaccia, puoi quindi collegare VirtualBox ad essa. Non vuoi collegare questa interfaccia a nient'altro (come eth0
), altrimenti la tua VM avrebbe di nuovo pieno accesso alla rete. Invece, vuoi instradare il traffico tra questa rete e qualsiasi altra risorsa consentita - e in questo caso, negare l'accesso alla tua rete VPN. Nota che questo net.ipv4.ip_forward=1
deve essere specificato in qualcosa del genere /etc/sysctl.conf
.
Queste sono le parti specifiche della mia iptables
configurazione relative alla rete con restrizioni VirtualBox. Potresti voler modificare questo in base alle tue esigenze specifiche, ma questo dovrebbe darti un buon inizio:
# Must be able to access DNS running on the host itself (everything else is denied elsewhere).
iptables -A INPUT -i vbox1 -p udp --dport 53 -j ACCEPT
iptables -A INPUT -i vbox1 -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -i vbox1 -m state --state ESTABLISHED,RELATED -j ACCEPT
# Allow access out to the Internet.
iptables -A FORWARD -i vbox1 -o $WAN_IF -j ACCEPT
Se imposti la WAN_IF
tua connessione Internet (e aggiungi regole simili per altre interfacce o indirizzi consentiti), ma non aggiungi un percorso consentito alla tua VPN, ciò dovrebbe soddisfare i tuoi requisiti.