我有一个在
Windows主机下运行的
Linux来宾VM.如果我将网络模式设置为NAT,则访客可以访问Internet(我想要),但也可以访问主机LAN(我不会).
由于各种原因,我无法建立一个单独的网络只是为了为访客提供互联网访问.
我可以使用Windows防火墙或某些路由软件来允许我向访客提供互联网访问权限,但阻止所有其他访问吗?
编辑 – 我从虚拟机论坛获得了解决方案:使用NAT与Windows防火墙来阻止访客.
我的错误是试图在主机上设置规则(program = all,本地IP =来宾IP范围).规则实际应该是(本地IP =全部,程序= virtualBox.exe),因为NAT已经发生在它到达防火墙之前
你说Linux所以我假设你已经安装了IPtables.您只能允许端口80(HTTP),端口443(HTTPS)和出站DNS上的入站/出站流量.由于我没有测试这些规则,因此使用风险自负.此外,确保您在执行此操作时是物理机器.如果您进行远程连接,可能会断开连接并无法返回机器.
#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