保护访客虚拟机使其能够访问互联网,但阻止访问主机局域网

我有一个在Windows主机下运行的Linux访客虚拟机。 如果我将networking模式设置为NAT,则访客可以访问互联网(我想要),但也可以访问主机LAN(我不)。

由于各种原因,我不能build立一个单独的networking,只为客人提供互联网接入。

我可以使用Windows防火墙或某些路由软件来允许我访问互联网的访客,但阻止所有其他访问?

编辑 – 我从virtualbox论坛得到的解决scheme:与Windows防火墙使用NAT来阻止来宾。

我的错误是试图在主机上设置规则(程序=全部,本地IP =访客IP范围)。 规则实际上应该是(本地IP =所有,程序= virtualbox.exe),因为NAT已经发生之前,它击中防火墙

你说Linux,所以我假设你已经安装了IPtables。 您只能允许端口80(HTTP),端口443(HTTPS)和出站DNS上的入站/出站stream量。 由于我没有testing过这些规则,所以请自担风险。 另外,当你这样做的时候,确保你是物理机器。 如果您正在远程连接,则可能会断开连接,无法返回机器。

#delete all rules iptables -F #change default policy to drop everything iptables -P INPUT DROP iptables -P FORWARD DROP iptables -P OUTPUT DROP #add rules for port 80 and 443 to only allow this traffic iptables -A OUTPUT -o eth0 -p tcp --dport 443 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 -p tcp --sport 443 -m state --state ESTABLISHED -j ACCEPT iptables -A OUTPUT -o eth0 -p tcp --dport 80 -m state --state NEW,ESTABLISHED -j ACCEPT iptables -A INPUT -i eth0 -p tcp --sport 80 -m state --state ESTABLISHED -j ACCEPT #allow outbound DNS iptables -A OUTPUT -p udp -o eth0 --dport 53 -j ACCEPT iptables -A INPUT -p udp -i eth0 --sport 53 -j ACCEPT #allow loopback iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT 

列表规则:

 iptables -L 

解决方法 – 将防火墙规则添加到主机:块(本地IP =全部,程序= virtualbox.exe,远程IP = {您要阻止的范围})

由于您尚未指定您正在使用的虚拟化平台,所以提供build议非常棘手。 如果您使用的是Virtualbox,则可以将networkingtypes设置为“仅主机适配器”,以允许访问互联网,并访问运行Virtualbox的主机,但不访问networking的其余部分。

我连接了我的连接。 这仍然没有工作,但检查电缆连接盒(在下图中圈出)固定我的networking连接。 我不完全明白为什么。

在这里输入图像说明