Trazemos para a Internet uma máquina virtual pública QEMU sem placa de rede e tentamos extrair

Há momentos em que um usuário feliz de uma máquina virtual pública pode encontrar o fato de que a máquina virtual não tem acesso à Internet. O usuário recebe um processador, memória, um disco com um sistema operacional, interfaces básicas, uma porta de acesso remoto e isso é tudo.


Nesse caso, o hoster também pode ser entendido, é mais fácil para ele desativar o acesso à Internet hoje para não estragar o cérebro amanhã sobre a atividade do usuário na Internet, já que vários ofendidos e ofendidos pelo usuário começarão a resolver as coisas com o hoster. Por exemplo, em alguns países, a prática de bloqueio pré-teste dos endereços IP do host é generalizada, o que não afeta o usuário mal-intencionado, mas os usuários inocentes.


Novo método da Internet


Anteriormente, para levar uma máquina virtual sem rede à Internet, o cliente só podia encaminhar um dispositivo USB físico que distribui a Internet a partir de seu endereço: modem, adaptador de rede.


Hoje, um usuário pode encaminhar portas para um servidor VPN ou Proxy por analogia com o SSH. Para isso, é necessário que todos os três lados do cliente, host e máquina virtual sejam montados com base no código FlexVDI, ou seja, é necessário reconstruir e instalar pacotes de software usados ​​para acesso remoto por meio do protocolo Spice.


O FlexVDI é uma versão aprimorada do protocolo de acesso remoto aberto SPICE e uma camada adicional de abstração da empresa com o mesmo nome. Todo o código necessário está disponível nos repositórios do github .


Ligação


Para receber um cliente de especiarias do FlexVDI, um usuário do Linux pode compilar o cliente manualmente ou executar várias ações na imagem appImage do cliente:


Primeiro, você precisa baixar a imagem appImage do cliente no site oficial, transformá-lo em um arquivo executável e descompactá-lo usando o comando:


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

Após a execução do comando, os arquivos de imagem serão localizados no diretório squashfs-root no diretório com o arquivo. Estamos interessados ​​no cliente apimentado, mas a execução direta do arquivo falha porque o aplicativo está tentando usar bibliotecas localizadas no sistema e não na imagem. Para executar o picante, crie uma cópia do arquivo AppRun. No arquivo de cópia no final, comente ou exclua a linha:


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

e, em vez disso, adicionamos uma linha do formulário:


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

Aqui você pode configurar a conexão com a porta de acesso remoto via protocolo spice à máquina virtual pública RetroGamer no servidor vpla.umvirt.com e encaminhar a porta 3128 do squid para a máquina virtual com saída de informações de depuração.


Nós salvamos o arquivo, instalamos o servidor proxy Squid e verificamos sua operacionalidade usando um navegador.


Abaixo está uma captura de tela da janela de configurações do servidor proxy para Firefox:



Se o navegador funcionar com o proxy com sucesso, reserve o acesso à máquina virtual e execute o arquivo de inicialização criado com a saída redirecionada para o arquivo, por exemplo:


 ./myApp > spicy.log 

As seguintes mensagens devem aparecer no arquivo de log:


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

e


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

Se a mensagem não aparecer, significa que, no host ou na máquina virtual, o código dos pacotes de especiarias originais não é substituído pelo código Flexvdi.


Em uma máquina virtual:


  1. verificamos o encaminhamento de porta com o comando:
     ss -atnl 
  2. verificamos a falta de uma rede com o comando:
     ip addr 

Nas configurações do navegador, prescrevemos os mesmos parâmetros para o servidor proxy.



Verificando o acesso à rede


Verificamos o endereço IP, por exemplo, em http://umvirt.com/agentinfo



Verificamos a possibilidade de abrir sites, por exemplo, abrir o site de mineração online " Coinhive ".



Como você pode ver, a máquina virtual não apenas ficou on-line a partir do endereço do cliente, mas também permitiu iniciar o processo de mineração.


Um vídeo do processo de conexão está disponível no Youtube .

Source: https://habr.com/ru/post/pt431598/


All Articles