我有一个在
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