Pull to refresh

Выводим в Интернет публичную виртуальную машину QEMU без сетевой карты и пробуем майнить

Reading time3 min
Views6.9K

Бывают случаи когда счастливый пользователь публичной виртуальной машины может столкнуться с тем что виртуальная машина не имеет выхода в сеть Интернет. Пользователю предоставляется процессор, память, диск с операционной системой, базовые интерфейсы, порт удаленного доступа и всё.


Хостера в таком случае тоже можно понять, ему проще отключить доступ в Интернет сегодня чтобы не ломать голову завтра по поводу активности пользователя в сети Интернет так как различные обиженые и оскорбленые пользователем первым делом начнут выяснять отношения именно с хостером. Например, в некоторых странах распространена практика досудебной блокировки IP-адресов хостера от чего страдают не пользователь-злоумышленик, а невиновные пользователи.


Новый метод выхода в Интернет


Раньше, чтобы вывести виртуальную машину без сети в Интернет, клиент мог только пробросить физическое USB-устройство, раздающее Интернет c его адреса: модем, сетевой адаптер.


Сегодня пользователь может пробросить порты к VPN или Proxy-серверу по аналогии c SSH. Для этого необходимо чтобы все три стороны клиент, хост и виртуальная машина были собраны на основе кода FlexVDI т.е необходимо пересобрать и установить пакеты программ которые используются для осуществления удаленного доступа по протоколу Spice.


FlexVDI — это улучшенная версия открытого протокола удаленного доступа SPICE и дополнительный слой абстракции от одноименной компании. Весь необходимый код доступен в репозиториях на гитхабе.


Подключение


Для того чтобы получить spice-клиента от FlexVDI, Linux-пользователь может скомпилировать клиента вручную либо выполнить несколько действий над appImage-образом клиента:


Для начала нужно загрузить appImage-образ клиента с официального сайта, сделать его исполняемым файлом и распаковать с помощью команды:


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

После выполнения команды в каталоге squashfs-root в директории с файлом будут находится файлы образа. Нас интересует клиент spicy, однако прямое исполнение файла завершается с ошибкой так как приложение пробует использовать библиотеки расположенные в системе, а не в образе. Чтобы запустить spicy создаем копию файла AppRun. В файле копии в конце комментируем или удадаляем строку:


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

и вместо неё добавляем строку вида:


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

Здесь настраивается подключение к порту удаленного доступа по spice-протоколу к публичной виртуальной машине RetroGamer на сервере vpla.umvirt.com и пробрасываем в виртуальную машину порт 3128 от squid с выводом отладочной информации.


Сохраняем файл, устанавливаем Proxy-сервер Squid и проверяем его работоспособность с помощью браузера.


Ниже приведен скриншот окна настроек Proxy-сервера для 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

Если сообщение не появилось значит либо на хосте либо в виртуальной машине код оригинальных spice пакетов не заменен на код Flexvdi.


В виртуальной машине:


  1. проверяем проброс порта командой:
    ss -atnl 
  2. проверяем отсутствие сети командой:
    ip addr

В настройках браузера прописываем аналогичные параметры Proxy-сервера.



Проверяем выход в сеть


Проверяем IP-адрес, например на странице http://umvirt.com/agentinfo



Проверяем возможность открытия сайтов, например откроем сайт онлайн майнинга "Coinhive".



Как видим виртуальная машина не просто вышла в сеть Интернет с адреса клиента, но также позволила запустить процесс майнинга.


Видео процесса подключения доступно на Youtube.

Tags:
Hubs:
+7
Comments8

Articles

Change theme settings