作者:dabaisuv,原文链接:https://dabaisuv.github.io/2024/02/28/使用virtualbox和iptables进行虚拟机内网隔离
背景 - 在虚拟机中使用某些工具时,有后门风险。
方案 - 组建一个虚拟机内网,利用网关虚拟机来进行完全的进出网流量控制。
- 在virtualbox虚拟机设置中,给每个虚拟机分配一个内部网络网卡(内网),名称随意但要相同。
- 在virtualbox虚拟机设置中,给网关虚拟机分配一个NAT网卡(外网)。
配置如下:
不可信虚拟机1(linux)
网卡1ip:192.168.8.2(内网)
不可信虚拟机2(linux)
网卡1ip:192.168.8.3(内网)
不可信虚拟机3(linux)
网卡1ip:192.168.8.4(内网)
网关虚拟机(linux)
网卡1_ip:192.168.8.1(内网)
网卡2_ip:192.168.1.1(外网)
在网关虚拟机执行:
- 在这里假设允许放行的目标ip是:1.1.1.1 ,且放行的dns服务器是:114.114.114.114.
- 先使用nmtui将网卡1的ip设置为静态ip,ip地址为192.168.8.1,其他不用动,保存后重连。
1 | sudo echo 1 > /proc/sys/net/ipv4/ip_forward #开启ip转发 |
- 基本上网关虚拟机就配置好了,后续根据自己的需要添加,删除或者更改目标。
- 上面的命令是实时生效的,但是重启就会丢失,可以使用以下命令保存和恢复iptables配置
1
2sudo iptables-save -f /etc/iptables.conf #这个保存地址可以更改为自己喜欢的
sudo iptables-restore < /etc/iptables.conf #从之前保存的配置文件中恢复
在不可信虚拟机执行(这里拿不可信虚拟机1举例,大同小异):
- 先使用nmtui将网卡1的ip设置为静态ip,ip地址为192.168.8.2,其他不用动,保存后重连。
1 | sudo route add default gw 192.168.8.1 #设置默认路由为网关虚拟机 |