我想确保主机无法访问互联网。虽然互联网流量可以自由往返于虚拟机客户机,但更重要的是,我想确保互联网流量无法到达主机操作系统。我猜我这里的主要问题是需要哪些 iptables 规则来实现这一点?
目前,每当我连接到互联网时,我都会启动到主机硬盘上的另一个分区。我卸载数据分区并关闭许多服务。为了方便起见,我想在这里用虚拟机做同样的事情。
是否可以将主机操作系统与往返于虚拟机客户端的互联网流量完全隔离?或者我最好继续使用当前的做法,即在需要上网时重新启动到其他分区。
答案1
阻止主机访问网络(或 Internet):
- 在您的虚拟机配置中启用
Bridged adapter
。这将允许您的客户端独立于主机连接到网络。 iptables
使用以下配置在主机上启动:
:INPUT DROP [0:0]
:FORWARD DROP [0:0]
:OUTPUT DROP [0:0]
-A INPUT -i lo -j ACCEPT
- 为了仅阻止 Internet 访问,同时保留本地网络(假设
192.168.0.0/24
),请使用以下命令扩展iptables
规则:
-A INPUT -i {your-adapter} -s 192.168.0.0/24 -j ACCEPT
-A OUTPUT -o {your-adapter} -d 192.168.0.0/24 -j ACCEPT
- 确保
iptables
在主机上启用了服务。例如,您可以使用包iptables-persistent
为您提供可在systemd
/中启用的服务脚本initscripts
。
将主机与发往来宾的互联网流量隔离:
由于Bridged adapter
流量在用户空间中被隔离,因此也不会经过主机iptables
。但是,Guest 仍在主机操作系统内部运行。具有 root 访问权限的攻击者将始终能够监视和欺骗 Guest 发送或接收的数据。VirtualBox 没有完全隔离。