我们将没有网卡的公共QEMU虚拟机带入Internet,并尝试挖掘

有时,公共虚拟机的满意用户可能会遇到该虚拟机无法访问Internet的事实。 为用户提供了处理器,内存,带操作系统的磁盘,基本接口,远程访问端口等等。


在这种情况下,托管人也可以理解,他今天可以更轻松地关闭对Internet的访问,以免明天明天就在互联网上的用户活动动脑筋,因为首先由用户冒犯和冒犯的各种事情将开始与托管人一起解决。 例如,在某些国家/地区,对主机IP地址进行审判前封锁的做法很普遍,这不会影响恶意用户,但会影响无辜用户。


新的互联网方法


以前,要将没有网络的虚拟机连接到Internet,客户端只能转发从其地址分发Internet的物理USB设备:调制解调器,网络适配器。


如今,用户可以类似于SSH将端口转发到VPN或代理服务器。 为此,必须根据FlexVDI代码组装客户端,主机和虚拟机的所有三个方面,即必须重建和安装用于通过Spice协议进行远程访问的软件包。


FlexVDI是开放式远程访问协议SPICE的改进版本,并且是同名公司的另一个抽象层。 所有必需的代码都可以在github仓库中找到。


连接方式


为了从FlexVDI获取香料客户端,Linux用户可以手动编译客户端,也可以对客户端的appImage图像执行一些操作:


首先,您需要从官方站点下载客户端的appImage图像,使其成为可执行文件,然后使用以下命令将其解压缩:


./flexvdi-linux-client-2.2.15-x86_64.AppImage --appimage-extract 

执行该命令后,映像文件将位于该文件所在目录的squashfs-root目录中。 我们对辛辣的客户端很感兴趣,但是文件的直接执行失败,因为应用程序试图使用系统中而不是映像中的库。 要运行辛辣,请创建AppRun文件的副本。 在最后的复制文件中,注释或删除以下行:


  ./python2.7 ./flexvdi_launcher.pyc "$@" 

而我们添加以下形式的一行:


 ./spicy --uri=spice://vpla.umvirt.com?port=6060 -R 3128:127.0.0.1:3128 --spice-debug 

在这里,您可以通过spice协议配置与远程访问端口的连接,该协议与vpla.umvirt.com服务器上的RetroGamer公共虚拟机,并将端口3128从squid转发到虚拟机,并输出调试信息。


我们保存文件,安装Squid代理服务器,并使用浏览器检查其可操作性。


以下是Firefox的代理服务器设置窗口的屏幕截图:



如果浏览器成功使用代理,请保留对虚拟机的访问权限,并运行创建的启动文件,并将输出重定向到该文件,例如:


 ./myApp > spicy.log 

以下消息应出现在日志文件中:


 (spicy:10702): GSpice-DEBUG: port-forward.c:183 Created new port forwarder 


 (spicy:10702): GSpice-DEBUG: port-forward.c:231 Associate guest (null), port 3128 -> 127.0.0.1 port 3128 

如果未出现该消息,则意味着在主机或虚拟机上,原始香料包的代码不会被Flexvdi代码替换。


在虚拟机中:


  1. 我们使用以下命令检查端口转发:
     ss -atnl 
  2. 使用命令检查是否缺少网络
     ip addr 

在浏览器设置中,我们为代理服务器规定了相同的参数。



检查网络访问


我们检查IP地址,例如,在http://umvirt.com/agentinfo



我们检查是否可以打开网站,例如,打开在线采矿网站“ Coinhive ”。



如您所见,虚拟机不仅可以从客户的地址在线,还可以启动挖掘过程。


Youtube上提供了有关连接过程的视频。

Source: https://habr.com/ru/post/zh-CN431598/


All Articles